Error handler for HomeKit app
I don't really like having using switch code!, it seems clumsy like
  I'm missing something in unwrapping.


Yes, that will crash if the function is called with an error code
that does not correspond to one of the HMErrorCode enumeration values.
Better use optional binding with if let ...:

class func handleError(error: NSError) -&gt; Bool
{
    if let code = HMErrorCode(rawValue: error.code) {
        switch code {
        case HMErrorCode.FireDateInPast:
            showAlertWithTitle("Invalid date", body: "Date must be in the future")
        case HMErrorCode.AccessDenied:
            showAlertWithTitle("Access Denied", body: "You don't have permission to access the specified item")
        // Other cases ...
        default:
            NSLog("Couldn't handle error with code \(error.code)")
            showAlertWithTitle("Error", body: "Couldn't successfully complete action")
            return false
        }
    } else {
        NSLog("Unknown error with code \(error.code)")
        showAlertWithTitle("Error", body: "Unknown error \(error.code)")
        return false
    }
    return true
}


It is also not obvious from your code why the function has a (boolean) return
value, as the caller ignores it.