我希望以编程方式创建一个新的联系人存储并将联系人保存到Swift中。
尝试保存联系人并使用toContainerWithIdentifier:
时,我已将字符串值传递给容器标识符,但是我收到以下错误:
线程1:致命错误:“尝试!”表达式意外引发错误: 错误域= CNErrorDomain代码= 200“不存在更新的记录” UserInfo = {CNInvalidRecordIdentifiers =( Local),NSLocalizedDescription =更新记录不存在,NSLocalizedFailureReason =保存请求失败,因为它更新了 记录不存在或已被删除。}
如果我使用此代码toContainerWithIdentifier:nil
,则联系人可以正确地保存在默认存储中,因此我知道我的保存代码没有问题。
这是链接到按钮的相当基本的测试。如果我在toContainerWithIdentifier
中使用了nil
以外的其他任何内容,则会收到错误消息。
@IBAction func testAdd(_ sender: UIButton) {
contact.givenName = "John"
contact.familyName = "Appleseed"
let store = CNContactStore()
let saveRequest = CNSaveRequest()
saveRequest.add(contact, toContainerWithIdentifier:nil)
try! store.execute(saveRequest)
}
答案 0 :(得分:1)
创建新的联系人存储
您不能。整个概念没有任何意义。这就是为什么它失败了。您可以保存到的任何商店必须已经存在。除了默认存储nil之外,您没有其他理由使用任何标识符。