Weekly Swift articles, podcasts and tips by John Sundell.

Converting Swift errors to NSError

Published on 25 Oct 2017
Basics article available: Error Handling

You can turn any Swift Error into an NSError, which is super useful when pattern matching with a code. Also, switching on optionals is pretty cool!

let task = urlSession.dataTask(with: url) { data, _, error in
    switch error {
    case .some(let error as NSError) where error.code == NSURLErrorNotConnectedToInternet:
        presenter.showOfflineView()
    case .some(let error):
        presenter.showGenericErrorView()
    case .none:
        presenter.renderContent(from: data)
    }
}

task.resume()