gpt4 book ai didi

iphone - ABAddressBookGetGroupCount 没有给出正确的计数

转载 作者:可可西里 更新时间:2023-11-01 06:10:42 26 4
gpt4 key购买 nike

我需要返回特定组的所有联系人。所以一直在尝试做一些提取所有联系人的示例代码。首先需要在电话簿中找到所有组。当我打开电话簿时,我发现已经创建了 2 个组,因为我在设置->邮件、联系人、日历即 中设置了 2 个帐户。 iCloud 和 Yahoo 帐户。

以下是我为获取所有组名而编写的代码

ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error)
{
// First time access has been granted, add the contact
// NSLog(@" given access..asked first time");
[self getContacts:addressBookRef];
});
}
else
[self getContacts:addressBookRef];
}

-(void) getContacts:(ABAddressBookRef) addressBookRef
{
NSString* groupName;
CFArrayRef groups = ABAddressBookCopyArrayOfAllGroups(addressBookRef);
CFIndex count = ABAddressBookGetGroupCount(addressBookRef);
for (int i=0; i<count;i++) {
ABRecordRef record = CFArrayGetValueAtIndex(groups, i);
groupName = ( NSString *)ABRecordCopyCompositeName(record);
NSLog(@"Group %d : %@",i+1,groupName);
}
}

现在我应该得到 2 的计数,而我得到的是 0。任何人都可以建议我在这里做错了什么吗?

最佳答案

ABAddressBookGetAuthorizationStatus() 是否可能返回 kABAuthorizationStatusRestricted 或 kABAuthorizationStatusDenied?根据您提供的代码片段,kABAuthorizationStatusRestricted 或 kABAuthorizationStatusDenied 的返回值会使您在没有适当的地址簿授权的情况下进入 getContacts 方法。

关于iphone - ABAddressBookGetGroupCount 没有给出正确的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15265007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com