我想从我的应用程序中删除来自手机联系人的联系人,因为在i os 9中不推荐使用此ABAddressBookRemoveRecord方法。所以现在我该如何删除联系人。 联系人框架中是否有任何方法?
谢谢大家!
答案 0 :(得分:2)
在iOS9中不推荐使用完整的AddressBook Framework,您应该查看Contacts Framework: Contacts Framework
一个很好的教程,解释删除记录here。
本教程涵盖了Swift,但同样的原则也适用于Objective-C。
答案 1 :(得分:1)
如果您想使用CNContacts
一次删除所有联系人,请输入以下代码- (void) deleteAllContacts {
CNContactStore *contactStore = [[CNContactStore alloc] init];
[contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted == YES) {
NSArray *keys = @[CNContactPhoneNumbersKey];
NSString *containerId = contactStore.defaultContainerIdentifier;
NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
NSError *error;
NSArray *cnContacts = [contactStore unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];
if (error) {
NSLog(@"error fetching contacts %@", error);
} else {
CNSaveRequest *saveRequest = [[CNSaveRequest alloc] init];
for (CNContact *contact in cnContacts) {
[saveRequest deleteContact:[contact mutableCopy]];
}
[contactStore executeSaveRequest:saveRequest error:nil];
DDLogVerbose(@"Deleted contacts %lu", cnContacts.count);
}
}
}];
}