Gen*_*ure 18 objective-c ios cncontact
我的iOS应用程序会不时检查联系人并将新内容导入到自己的数据库中.
我通过identifier字段检查该联系人是否已存在,通常由UUID填充:
CNContactStore *store = [CNContactStore new];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError *error) {
if (granted) {
NSArray *keys = @[CNContactNamePrefixKey,
CNContactGivenNameKey,
CNContactMiddleNameKey,
CNContactFamilyNameKey,
CNContactInstantMessageAddressesKey];
NSString *containerId = store.defaultContainerIdentifier;
NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&err];
for (CNContact *contact in cnContacts) {
...
NSString *contactId = [contact identifier];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"uuid == %@", contactId]];
...
}
Run Code Online (Sandbox Code Playgroud)
有时标识符除了UUID包含:ABPerson字符串(例如9326A125-3C0A-494F-9E50-BBFCF1140EF0:ABPerson),并且此类联系仅出现一次.下次出现相同的联系,但与另一个UUID和没有:ABPerson.
因此,我的联系人导入器认为他们是2个不同的联系人并保存2次.
:ABPersonCNContact标识符中的字符串是什么?
我知道带有类的AddressBook框架ABPerson,但是我使用Contacts框架来处理设备联系人,为什么会:ABPerson出现在这里?
我可以在标识符中过滤或检查此字符串以防止联系人重复吗?标识符中
是否还包含其他字符串CNContact?
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |