如何确定CNContact是最受欢迎的?

时间:2016-09-12 06:26:48

标签: ios cocoa-touch contacts favorites 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类有一些值意味着联系人在设备上的收藏夹中(在电话应用程序中)?我在CNContact键中找不到这样的键。

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

1 个答案:

答案 0 :(得分:2)

Filip Radelic回答了question

  

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

     

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