Book Image

Mastering Swift

By : Jon Hoffman
Book Image

Mastering Swift

By: Jon Hoffman

Overview of this book

Table of Contents (22 chapters)
Mastering Swift
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Introducing optionals


When we declare variables in Swift, they are, by default, nonoptional, which means that they must contain a valid, non-nil value. If we try to set a nonoptional to nil, it will result in a Type '{type}' does not conform to protocol 'NilLiteralConvertible' error, where {type} is the type of the variable. For example, the following code will throw a Type 'String' does not conform to protocol 'NilLiteralConvertible' error when we attempt to set the message variable to nil because message is a non-optional type:

var message: String = "My String"
message = nil

It is very important to understand that nil in Swift is very different from nil in Objective-C. In Objective-C, nil is a pointer to nonexistent objects; however, in Swift, nil is the absence of a value. This concept is very important to fully understand optionals in Swift.

A variable defined as an optional can contain a valid value, or it can indicate an absence of a value. We indicate an absence of a value by assigning...