How to pass an error pointer in the Swift language?

Solution 1:

You just pass a reference like so:

var error: NSError?
var results = context.executeFetchRequest(request, error: &error)

if error != nil {
    println("Error executing request for entity \(entity)")
}

Two important points here:

  1. NSError? is an optional (and initialized to nil)
  2. you pass by reference using the & operator (e.g., &error)

See: Using swift with cocoa and objective-c

Solution 2:

This suggestion is up for discussion, but some engineers would prefer to use the golden path syntax:

var maybeError: NSError?
if let results = context.executeFetchRequest(request, error: &maybeError) {
    // Work with results
} else if let error = maybeError {
    // Handle the error
}