requestImageForAsset всегда возвращает nil-даже после проверки на nil

Итак, у меня странная (и разочаровывающая) проблема.
Я циклически перебираю массив ресурсов, возвращаемых средством выбора изображений:

let manager = PHImageManager.defaultManager()
let options = PHImageRequestOptions()
for asset in assets {
    var image = UIImageView?
    manager.requestImageForAsset(asset, targetSize: CGSize(width: asset.pixelWidth, height: asset.pixelHeight), contentMode: .AspectFit, options: option, resultHandler: { (result, info) -> Void in
        if result == nil {
            print("Nil alert!")
            return
        }
        print("not nil")
        image!.image = result

    }
}

В консоли я получаю ожидаемые сообщения:

not nil

сразу после этого сообщения:

fatal error: unexpectedly found nil while unwrapping an Optional value

Я возился с этим в течение нескольких часов, и я не могу понять, в чем именно заключается проблема. Если я попытаюсь напечатать resultнапрямую, он скажет что-то вроде <UIImage: 0x12f780a20>, {45, 60}

Любая помощь будет приветствоваться 🙂

1 ответ

  1. Вы ничего не устанавливаете imageпосле его определения, поэтому он будет nilздесь:

     var image = UIImageView?
    

    Когда вы силой развернуть его с !Здесь, вы попали в ошибку времени выполнения:

     image!.image = result