Chapter 5. Swift 3.0, Xcode 8, and Interface Builder

In this chapter, we are going to have a look at some of the updates to Swift (Swift 3.0), Xcode, and Interface Builder. We will start with Swift and some of the really exciting features that have been added to it since you read the last edition of this cookbook.

5.1 Handling Errors in Swift

Problem

You want to know how to throw and handle exceptions in Swift.

Note

The terms error and exception are used interchangeably throughout this book. When an error occurs in our app, we usually catch it, as you will soon see, and handle it in a way that is pleasant and understandable to the user.

Solution

To throw an exception, use the throw syntax. To catch exceptions, use the do, try, catch syntax.

Discussion

Let’s say that you want to create a method that takes in a first name and last name as two arguments and returns a full name. The first name and the last name have to each at least be one character long for this method to work. If one or both have 0 lengths, we are going to want to throw an exception.

The first thing that we have to do is define our errors of type Error:

enum Errors : Error{
  case emptyFirstName
  case emptyLastName
}
            

And then we are going to define our method to take in a first and last name and join them together with a space in between:

func fullNameFromFirstName(_ firstName: String,
  lastName: String) throws -> String{
  
  if firstName.characters.count == 0{
    throw Errors.emptyFirstName
  }
  
  if lastName.characters ...

Get iOS 10 Swift Programming Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.