Прежде всего я хочу сообщить вам, что Apple не разрешает изменять настройки конфиденциальности с помощью любого разрешенного авторизованным способом Apple программным способом ........ Поэтому, если вы хотите справиться с этой проблемой, вы можете проверить разрешение, если оно предоставлено или нет ..... Тогда вы можете обрабатывать ваши события a/c этим .... Этот метод будет вызывать предупреждение из родной ОС, запрашивая доступ ....
//Ask user to grant the permission to access contacts
- (void)requestPermissionForContactsAccessAndFetchWithCompletion
{
ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus();
if (status != kABAuthorizationStatusAuthorized && status != kABAuthorizationStatusNotDetermined) {
// tell user to enable contacts in privacy settings
NSLog(@"You previously denied access: You must enable access to contacts in settings");
}
CFErrorRef error = NULL;
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);
if (error)
{
if (addressBook) CFRelease(addressBook);
}
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
if (error) {
NSLog(@"ABAddressBookRequestAccessWithCompletion error: %@", CFBridgingRelease(error));
}
if (granted) {
//Get all contact if access is granted--This will call when access granted
[self getContactsFromAddressBook:addressBook];
}else{
}
});
}
Дайте мне знать, если вам нужна дополнительная помощь ....
Спасибо @Prasanna ... –