Bird
Raised Fist0
iOS Swiftmobile~20 mins

Optionals and unwrapping in iOS Swift - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Swift Optionals Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
📝 Syntax
intermediate
2:00remaining
What is the output of this Swift code with optional binding?
Consider this Swift code snippet that uses optional binding to unwrap an optional string. What will be printed?
iOS Swift
let optionalName: String? = "Alice"
if let name = optionalName {
  print("Hello, \(name)!")
} else {
  print("No name found.")
}
ANo name found.
BHello, Alice!
COptional("Alice")
DCompilation error
Attempts:
2 left
💡 Hint
Optional binding safely unwraps the optional if it contains a value.
❓ ui_behavior
intermediate
2:00remaining
What happens when force unwrapping a nil optional?
Given this Swift code, what will happen when it runs?
iOS Swift
let optionalNumber: Int? = nil
let number = optionalNumber!
print(number)
ARuntime crash with fatal error: unexpectedly found nil while unwrapping an Optional value
BPrints nil
CPrints 0
DCompilation error
Attempts:
2 left
💡 Hint
Force unwrapping nil optionals causes a runtime crash.
🧠 Conceptual
advanced
2:00remaining
What is the value of 'result' after this optional chaining?
Analyze this Swift code using optional chaining. What is the value of 'result' after execution?
iOS Swift
class Person {
  var pet: Pet?
}
class Pet {
  var name: String
  init(name: String) { self.name = name }
}

let person = Person()
let result = person.pet?.name ?? "No pet"
AEmpty string ""
Bnil
C"No pet"
DCompilation error
Attempts:
2 left
💡 Hint
Optional chaining returns nil if any link in the chain is nil, then the nil-coalescing operator provides a default.
❓ lifecycle
advanced
2:00remaining
Which option correctly unwraps and uses an optional in SwiftUI view?
In SwiftUI, you have an optional string 'username: String?'. Which code snippet safely unwraps and displays it in a Text view?
Aif let name = username { Text(name) } else { Text("Guest") }
BText(String(describing: username))
CText(username!)
DText(username ?? "Guest")
Attempts:
2 left
💡 Hint
Use nil-coalescing operator to provide a default value in UI.
🔧 Debug
expert
2:00remaining
What error does this Swift code produce?
Examine this Swift code snippet. What error will it cause when compiled or run?
iOS Swift
var optionalInt: Int? = 5
let forcedInt: Int = optionalInt
print(forcedInt)
AType mismatch error: Cannot assign 'Int?' to 'Int'
BRuntime crash due to nil unwrapping
CPrints 5
DCompilation error: Missing '!' for force unwrap
Attempts:
2 left
💡 Hint
You cannot assign an optional directly to a non-optional variable without unwrapping.

Practice

(1/5)
1. What does an Optional in Swift represent?
var name: String?
easy
A. A special type of function.
B. A variable that must always have a value.
C. A constant that cannot be changed.
D. A variable that can hold a value or no value (nil).

Solution

  1. Step 1: Understand Optional meaning

    An Optional type means the variable can hold a value or be nil (no value).
  2. Step 2: Analyze the example

    The declaration var name: String? means name can be a String or nil.
  3. Final Answer:

    A variable that can hold a value or no value (nil). -> Option D
  4. Quick Check:

    Optional = value or nil [OK]
Hint: Optionals always mean value or nil, never guaranteed value [OK]
Common Mistakes:
  • Thinking Optional always has a value
  • Confusing Optional with constant
  • Assuming Optional is a function
2. Which of the following is the correct syntax to safely unwrap an Optional age: Int? using if let?
easy
A. if let unwrappedAge = age { print(unwrappedAge) }
B. if age != nil { print(age) }
C. if let age = age? { print(age) }
D. if age = nil { print(age) }

Solution

  1. Step 1: Recall safe unwrapping syntax

    Safe unwrapping uses if let to bind the Optional value if it exists.
  2. Step 2: Check each option

    if let unwrappedAge = age { print(unwrappedAge) } correctly unwraps with if let unwrappedAge = age. if age != nil { print(age) } checks nil but does not unwrap. if let age = age? { print(age) } has invalid syntax with age?. if age = nil { print(age) } wrongly assigns nil in condition.
  3. Final Answer:

    if let unwrappedAge = age { print(unwrappedAge) } -> Option A
  4. Quick Check:

    Safe unwrap = if let variable = optional [OK]
Hint: Use if let variable = optional to unwrap safely [OK]
Common Mistakes:
  • Using assignment (=) instead of comparison (==)
  • Trying to unwrap with question mark in condition
  • Not binding the unwrapped value
3. What will be printed by this Swift code?
var score: Int? = 85
if let safeScore = score {
  print("Score is \(safeScore)")
} else {
  print("No score")
}
medium
A. Score is 85
B. No score
C. Optional(85)
D. Error: score is Optional

Solution

  1. Step 1: Understand Optional value

    Variable score holds Optional Int with value 85.
  2. Step 2: Analyze if let unwrapping

    The if let safeScore = score unwraps the value 85 successfully, so the print inside if runs.
  3. Final Answer:

    Score is 85 -> Option A
  4. Quick Check:

    Unwrapped Optional prints value, not nil or error [OK]
Hint: If Optional has value, if let unwrap runs [OK]
Common Mistakes:
  • Expecting Optional(...) string output
  • Confusing else block execution
  • Thinking unwrapping causes error
4. Identify the error in this code snippet:
var text: String? = nil
print(text!)
medium
A. Variable text should not be Optional.
B. Missing semicolon at the end of print statement.
C. Force unwrapping a nil Optional causes a runtime crash.
D. print() cannot print Optional values.

Solution

  1. Step 1: Understand force unwrapping

    Using ! on an Optional forces unwrap but crashes if nil.
  2. Step 2: Analyze given code

    Variable text is nil, so text! causes runtime crash.
  3. Final Answer:

    Force unwrapping a nil Optional causes a runtime crash. -> Option C
  4. Quick Check:

    Force unwrap nil = crash [OK]
Hint: Never force unwrap Optional if it might be nil [OK]
Common Mistakes:
  • Ignoring possibility of nil before force unwrap
  • Thinking print needs semicolon
  • Believing print cannot handle Optionals
5. Given var input: String? = nil, which code safely prints the input or "No input" if nil using nil-coalescing?
hard
A. print(input!)
B. print(input ?? "No input")
C. if let input = input { print(input) } else { print("No input") }
D. print(input ? "No input" : input)

Solution

  1. Step 1: Understand nil-coalescing operator

    The operator ?? provides a default value if Optional is nil.
  2. Step 2: Analyze options

    print(input ?? "No input") uses input ?? "No input" to print input or default. print(input!) force unwraps and crashes if nil. if let input = input { print(input) } else { print("No input") } uses if let but is longer. print(input ? "No input" : input) has invalid syntax.
  3. Final Answer:

    print(input ?? "No input") -> Option B
  4. Quick Check:

    Nil-coalescing = optional ?? default [OK]
Hint: Use ?? to provide default for nil Optionals [OK]
Common Mistakes:
  • Force unwrapping nil causing crash
  • Using ternary operator incorrectly
  • Not providing default value
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard