gpt4 book ai didi

ios8 - iOS 8 : Access contacts/AddressBook error

转载 作者:行者123 更新时间:2023-12-04 22:47:47 25 4
gpt4 key购买 nike

我正在尝试在我的 iOS 8 应用程序中以编程方式访问联系人/地址簿。

这是我的代码:

ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
//populate
}
});
} else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
//populate
}
else {
// Alert telling user to change privacy setting
}

此代码在 ios 7 上运行良好。但在 ios 8 上,它让我退出应用程序,然后我需要在模拟器上重新运行该应用程序,然后就可以正常运行了。这是在 iOS 8 上尝试访问通讯录或地址簿的应用程序的正常行为吗?

请指导我如何解决这个问题。

最佳答案

我在 iOS 8 更新后遇到了同样的问题。问题是地址簿框架在 iOS 8 中发生了变化,您现在应该使用 AddessBookUI 并使用 ABPeoplePickerNavigationController和他的代表访问地址簿。

如果您需要按照我发现的方式以编程方式访问联系人

ABPeoplePickerNavigationController* peoplePicker = [[ABPeoplePickerNavigationController alloc] init];

[self presentViewController:peoplePicker animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];

ABAddressBookRef addressBook = [peoplePicker addressBook];
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );

我不知道这样做是否正确,但这是一种可行的方法。

希望对你有帮助。

关于ios8 - iOS 8 : Access contacts/AddressBook error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26077683/

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