0

我有以下代码:

NSMutableArray *contacts = [[NSMutableArray alloc]init];
CFErrorRef *error = nil;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error);
if (error)
}
NSArray *arrayOfPeople = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook);

它可以在模拟器上运行并给我预期的结果 - 但是在设备上的联系人数量为 0 并且没有错误(该应用程序奇怪地没有要求我访问通讯簿的权限 - 我什至删除并重新安装了该应用程序) 有任何想法吗 ?

提前致谢

4

1 回答 1

2

在 ios 6 上,您需要访问地址簿。打电话ABAddressBookRequestAccessWithCompletion()获得许可。看到这个AddressHelper

CFErrorRef error = nil;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
    if (error) {
        NSLog(@"error %@", error);
    }else if (granted){
        // Do what you want with the Address Book

    }else{
        NSLog(@"permission denied");
    }

    CFRelease(addressBook);
});
于 2013-07-01T09:10:39.210 回答