我怎样才能确定CNContact是最受欢迎的?

我的iOS应用程序使用代码从设备获取联系人

[[CNContactStore new] requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError *error) { if (granted) { NSArray *keys = @[CNContactNamePrefixKey, CNContactGivenNameKey, CNContactMiddleNameKey, CNContactFamilyNameKey, // ... NSString *containerId = store.defaultContainerIdentifier; NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId]; NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error]; for (CNContact *contact in cnContacts) { // contacts fetching } } }]; 

CNContact类有一些值意味着联系人在设备上的collections夹中(在电话应用程序中)? 我没有在CNContact键中找到这样的键。

或者谓词包含我需要的键?

Filip Radelic回答了同样的问题 :

collections夹存储在Phone.app中,而不是存储在地址簿数据库本身中。 你不能在非越狱的iPhone上访问其他应用程序的沙盒,所以不幸的是答案是否定的。

此外,如果任何应用程序可以看到您最喜欢的联系人,那将是非常糟糕的隐私。 在不问你的情况下它可以访问整个地址簿已经很糟糕了。