Optional strings might contain a string like “Hello” or they might be nil – nothing at all.
Consider this optional string:
var name: String? = nil
What happens if we use name.count
? A real string has a count
property that stores how many letters it has, but this is nil
– it’s empty memory, not a string, so it doesn’t have a count
.
Because of this, trying to read name.count
is unsafe and Swift won’t allow it. Instead, we must look inside the optional and see what’s there – a process known as unwrapping.
A common way of unwrapping optionals is with if let
syntax, which unwraps with a condition. If there was a value inside the optional then you can use it, but if there wasn’t the condition fails.
For example:
if let unwrapped = name {
print("\(unwrapped.count) letters")
} else {
print("Missing name.")
}
If name
holds a string, it will be put inside unwrapped
as a regular String
and we can read its count
property inside the condition. Alternatively, if name
is empty, the else
code will be run.
SPONSORED Play is the first native iOS design tool created for designers and engineers. You can install Play for iOS and iPad today and sign up to check out the Beta of our macOS app with SwiftUI code export. We're also hiring engineers!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.