Can';无法在iOS中显示联系人组
无论我尝试什么,iOS都告诉我我有0个组。我已经尝试了ABGroup和CNGroup API。娜达。如果我进入iPad上的Contacts应用程序并点击Groups,我会看到它列出了五个不同的群组(正如预期的那样)。但是[CNContactStore GroupsMatchingPreditate:error:]和ABAddressBookCopyArrayFallGroups()都返回了0元素数组 以下是我的代码:Can';无法在iOS中显示联系人组,ios,Ios,无论我尝试什么,iOS都告诉我我有0个组。我已经尝试了ABGroup和CNGroup API。娜达。如果我进入iPad上的Contacts应用程序并点击Groups,我会看到它列出了五个不同的群组(正如预期的那样)。但是[CNContactStore GroupsMatchingPreditate:error:]和ABAddressBookCopyArrayFallGroups()都返回了0元素数组 以下是我的代码: CNContactStore *store = [[CNContactS
CNContactStore *store = [[CNContactStore alloc] init];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted == YES) {
NSError *error;
NSArray *cnGroups = [store groupsMatchingPredicate:nil error:&error];
for( CNGroup *group in cnGroups ) {
AWLogInfo(@"JMS CN Group: %@", group.name);
}
}
}];
CFArrayRef allGroups = ABAddressBookCopyArrayOfAllGroups(addressBook);
for( int iGroup = 0; iGroup < CFArrayGetCount(allGroups); iGroup++ ) {
ABRecordRef groupRef = CFArrayGetValueAtIndex(allGroups, iGroup);
NSString *groupName = (__bridge_transfer NSString*)ABRecordCopyValue(groupRef, kABGroupNameProperty);
AWLogInfo(@"JMS Group %ld: %@", (long) iGroup, groupName);
}
CNContactStore*store=[[CNContactStore alloc]init];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL已授予,n错误*\u可为空错误){
如果(已授予==是){
n错误*错误;
NSArray*cnGroups=[storegroupsmatchingpredicate:nil错误:&error];
用于(CNGroup*CNGroup中的组){
AWLogInfo(@“JMS CN Group:%@”,Group.name);
}
}
}];
CFArrayRef allGroups=abAddressBookCopyArrayFallGroups(addressBook);
对于(int-iGroup=0;iGroup
(请注意,我没有请求AddressBook权限,因为这已经在我的应用程序的其他地方完成了。我可以很好地访问联系人——事实上,在这段代码片段之后,有一些代码可以遍历所有联系人记录,这没有问题。)
有什么好处?我错过了什么
编辑:请注意,我可以看到我创建的组,但看不到其他应用创建的组。我可以看到这些团体中的联系人,但看不到团体本身。这是预期的行为吗?我把群体和来源混淆了。如果你列出所有来源,你会得到其他应用程序创建的东西 这就是说,iOS在给你一个有用的源代码名方面似乎相当糟糕,所以这仍然不是我想要的