Структура контактов вызывает исключение при чтении imageData

Я пытаюсь получить imageData после повторной загрузки CNContact с помощью unifiedContactWithIdentifier:keysToFetch:error: и CNContactImageDataKey в Objective-C.

Я использую сборку Xcode 7.0 на iPhone 6 Plus с iOS 9.0.2.

Во время выполнения у меня всегда есть одно и то же исключение CNPropertyNotFetchedException даже при повторной загрузке контакта и проверке imageData вызова imageDataAvailable‌.

Вот код:

if([currentNativeContact isKeyAvailable:CNContactImageDataKey] &&
    currentNativeContact.imageDataAvailable) {
    previewImage = [UIImage imageWithData:currentNativeContact.thumbnailImageData];
}  else {
    NSError *error;
    currentNativeContact = [self.contactsStore unifiedContactWithIdentifier:currentNativeContact.identifier keysToFetch:@[CNContactImageDataKey] error:&error];
    if(!error && currentNativeContact.imageDataAvailable)
        previewImage = [UIImage imageWithData:currentNativeContact.thumbnailImageData];                            
}

person mikthebig    schedule 14.10.2015    source источник


Ответы (2)


Вам нужно добавить ключи CNContactImageDataAvailableKey, CNContactImageDataKey и CNContactThumbnailImageDataKey к keysToFetch.

person Eric    schedule 05.11.2015

@ Эрик ответ частично правильный. Нам нужно добавить CNContactImageDataKey в keysToFetch. В противном случае приложение получит сбой на imageData.

person Sri..    schedule 15.06.2017