Bird
Raised Fist0
iOS Swiftmobile~10 mins

Optionals and unwrapping in iOS Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare an optional String variable named name.

iOS Swift
var name: [1]
Drag options to blanks, or click blank then click option'
AOptional
BString
CString?
DOptional<String>
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting the question mark and declaring it as a normal String.
Using the word Optional without the generic type.
2fill in blank
medium

Complete the code to safely unwrap the optional variable name using if let.

iOS Swift
if let unwrappedName = [1] {
  print("Hello, \(unwrappedName)!")
}
Drag options to blanks, or click blank then click option'
AunwrappedName
Bname
Cname!
DOptional(name)
Attempts:
3 left
💡 Hint
Common Mistakes
Using the unwrapped variable name inside the if let condition.
Forcing unwrap with exclamation mark instead of safe unwrapping.
3fill in blank
hard

Fix the error in force unwrapping the optional age variable.

iOS Swift
let age: Int? = 25
let unwrappedAge = [1]
Drag options to blanks, or click blank then click option'
Aage!
Bage
COptional(age)
Dage?
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting the exclamation mark and causing a type mismatch.
Using optional chaining instead of force unwrapping.
4fill in blank
hard

Fill both blanks to unwrap optional email and provide a default value if nil.

iOS Swift
let email: String? = nil
let userEmail = [1] ?? [2]
Drag options to blanks, or click blank then click option'
Aemail
B"noemail@example.com"
Cemail!
Dnil
Attempts:
3 left
💡 Hint
Common Mistakes
Using force unwrap instead of nil-coalescing operator.
Providing nil as the default value.
5fill in blank
hard

Fill all three blanks to unwrap optional number safely and multiply by 2.

iOS Swift
let number: Int? = 10
if let [1] = [2] {
  let result = [3] * 2
  print(result)
}
Drag options to blanks, or click blank then click option'
AsafeNumber
Bnumber
Dnumber!
Attempts:
3 left
💡 Hint
Common Mistakes
Using the same variable name for unwrapped and optional variables.
Forcing unwrap inside if let instead of safe 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