Я страдаю в течение нескольких дней, пытаясь получить доступ к телефонной книге имен и номеров, и все не удалось. Я использую следующий код, который успешно работает в тестовом приложении, но когда я добавляю его в работу над проектом, он не работает. Постоянная переменная «предоставляется» имеет значение «false», и я получаю сообщение об ошибке «Access Failure». Несмотря на это, в настройках конфиденциальности, не отображается ползунок, чтобы доступ ... у меня долго не мог найти ответ на довольно странное поведение ...Приложение не может получить доступ к телефонной книге
Я был бы признателен за любую помощь! `
CNContactStore *store = [[CNContactStore alloc] init];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted == YES) {
NSMutableArray *contacts = [NSMutableArray array];
NSArray *keys = @[CNContactFamilyNameKey, CNContactGivenNameKey, CNContactPhoneNumbersKey, CNContactImageDataKey];
NSString *containerId = store.defaultContainerIdentifier;
NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
NSError *error;
NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];
if (error) {
NSLog(@"error fetching contacts %@", error);
} else {
for (CNContact *contact in cnContacts) {
TSContact *newContact = [[TSContact alloc] init];
newContact.firstName = contact.givenName;
newContact.lastName = contact.familyName;
UIImage *image = [UIImage imageWithData:contact.imageData];
newContact.image = image;
for (CNLabeledValue *label in contact.phoneNumbers) {
NSString *phone = [label.value stringValue];
if ([phone length] > 0) {
[contacts addObject:phone];
}
}
}
}
} else {
NSLog(@"Error = %@", error.localizedDescription);
}
}];
Какова цель развертывания вашего приложения (целевая версия iOS версии 6.0)? – theFool
Вы добавили ключ 'Privacy - Contacts Usage Description' в свой info.plist? Он поддерживается в iOS 6.0 и более поздних версиях. –
Я попробовал iOS ios 8 и 9 все еще не работает –