2015-02-26 6 views
0

Я знаю, почему эта ошибка возникает, но у меня возникли проблемы с поиском решения здесь. В основном я пытаюсь получить эскиз какого-то аватара из адресной книги. Я получаю данные, а затем нужно проверить, что данные не ноль (другими словами, мы успешно получили изображение). Если у нас есть это, я верну его как UIImage. Код хорошо работает в объективе-с. Портированный код выходит из строя с ошибкой found nil while unwrapping an optional value на data = ABPerson....Swift: Найден нуль при развертывании необязательного значения

var data :NSData? = NSData() 

    var ref :ABRecordRef? = delegate.localContacts.objectForKey(email) 

    if ref != nil { 
     data = ABPersonCopyImageDataWithFormat(ref, kABPersonImageFormatThumbnail).takeRetainedValue() 
    } 

    if data?.length > 0 { 
      return UIImage(data: data!)! 
    } 

ответ

2

ABPersonCopyImageDataWithFormat возвращает небезопасный указатель типа Unmanaged<CFData>!. Вы должны проверить это.

if let ref = ref { 
    let img = ABPersonCopyImageDataWithFormat(ref, kABPersonImageFormatThumbnail) 
    if img != nil { 
     data = img.takeRetainedValue() 
    } 
} 
+0

Работал отлично, спасибо! –

Смежные вопросы

 Смежные вопросы