CNContactStore 保存错误

CNContactStore Save Error

CNContactStore 的 executeSaveRequest(_:) 方法根据文档抛出错误。

我正试图在 do/catch 中捕获此错误,但我不知道我需要捕获什么错误。

do{
  try store.executeSaveRequest(saveRequest)
} catch *???* {
  //alert the user
}

应该用什么替换上面代码中的 ????

实际上你有几个选择。

在不知道错误的情况下捕获任何错误

catch {...}

  1. 使用特定错误消息捕获任何错误

catch let error { // Use error }

  1. 使用 使用 CNErrorCode 枚举处理特定错误。

    enum CNErrorCode : Int {
    
        case CommunicationError
        case DataAccessError
    
        case AuthorizationDenied
    
        case RecordDoesNotExist
        case InsertedRecordAlreadyExists
        case ContainmentCycle
        case ContainmentScope
        case ParentRecordDoesNotExist
    
        case ValidationMultipleErrors
        case ValidationTypeMismatch
        case ValidationConfigurationError
    
        case PredicateInvalid
    
        case PolicyViolation
    }