gpt4 book ai didi

ios - CNContactStore executeSaveRequest 失败(CNErrorDomain 错误 2。)

转载 作者:行者123 更新时间:2023-12-01 15:23:33 24 4
gpt4 key购买 nike

我正在尝试删除我的应用程序的 URL 冗余。如果单个联系人有多个 URL,这很有效。但是如果有链接的联系人,通常保存操作会失败并显示消息
“操作无法完成。(CNErrorDomain 错误 2。)”

任何建议如何解决这个问题?它不适用于统一联系吗?如果应该在单个非统一项目上单独删除 URL,有没有办法从统一项目中获取这些内容?

这是代码的摘录:

CNSaveRequest *saveRequest = [[CNSaveRequest alloc] init];

NSArray* keys = @[CNContactUrlAddressesKey];
NSPredicate *predicate = [CNContact predicateForContactsWithIdentifiers:identifiers];
NSError *error;
NSArray <CNContact *> *contacts = [_contactStore unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];

for (CNContact *contact in contacts) {
// here we'll collect non-ambigous URLs
NSMutableArray<CNLabeledValue<NSString *> *> *copyOfURLs = [NSMutableArray array];
// just a marker for the moment if a URL with specific prefix was already found
NSString *baseURL = nil;
for (CNLabeledValue<NSString *> *labeledValue in contact.urlAddresses) {
NSString *url = labeledValue.value;
if ([url hasPrefix:APP_IDENTITY_URL_SCHEME]) {
if (baseURL == nil)
baseURL = url;
else
continue;
}
[copyOfURLs addObject:labeledValue];
}
CNMutableContact *updatedContact = [contact mutableCopy];
updatedContact.urlAddresses = copyOfURLs;
[saveRequest updateContact:updatedContact];
}
NSError *saveError;
if (![_contactStore executeSaveRequest:saveRequest error:&saveError]) {
NSLog(@"Saving error: %@", saveError.localizedDescription);
}

最佳答案

我知道现在回答为时已晚,但我遇到了同样的问题,即 CNContactStore executeSaveRequest 因(CNErrorDomain 错误 2.)而失败,并遇到了这个悬而未决的问题。我解决了同样的问题,我正在使用零字节数组设置 imageData。
我找到了这个问题的根本原因。如果上面的数组没有任何值,即 0 元素数组,则此行会导致问题。

updatedContact.urlAddresses = copyOfURLs;
如果 copyOfURLs 中没有任何元素,甚至不要将 updatedContact.urlAddresses 设置为空(0 元素)数组。
将上面的行替换为
if ([copyOfURLs length] > 0) {
updatedContact.urlAddresses = copyOfURLs;
}

关于ios - CNContactStore executeSaveRequest 失败(CNErrorDomain 错误 2。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33033163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com