Photos Framework - Как получить CLLocation изображения из PHAsset?

Я могу успешно получить изображение из PHFetchResults и красиво загрузить его в UIImage, но когда я пытаюсь получить местоположение изображения, я получаю сообщение об ошибке:

  • «Неустранимая ошибка: неожиданно найдено nil при развертывании необязательного значения» в инструкции NSLog во время выполнения.
var imageAsset:PHAsset = self.photosAssetFetchResult[self.index] as PHAsset
NSLog("Location is %@", imageAsset.location)

Если я заменю приведенный выше оператор NSLog следующим оператором, чтобы получить описание (или любые другие свойства, такие как длина, размер пикселя и т. д., NSLog возвращает его правильно), он не выдает ошибку.

NSLog("Description is %@", imageAsset.Description)

Я попытался использовать PHImageManger.requestImageDataForAsset и т. д. Я получаю много других свойств, как показано ниже, но Location.

[{Exif}: {
    ColorSpace = 1;
    ComponentsConfiguration =     (
        1,
        2,
        3,
        0
    );
    ExifVersion =     (
        2,
        2,
        1
    );
    FlashPixVersion =     (
        1,
        0
    );
    PixelXDimension = 1280;
    PixelYDimension = 960;
    SceneCaptureType = 0;
}, ColorModel: RGB, DPIWidth: 72, Depth: 8, Orientation: 1, DPIHeight: 72, PixelHeight: 960, PixelWidth: 1280, {TIFF}: {
    Orientation = 1;
    ResolutionUnit = 2;
    XResolution = 72;
    YResolution = 72;
}]

Пожалуйста, порекомендуйте.


person Programmer    schedule 08.11.2014    source источник


Ответы (1)


Это была настоящая ошибка. Активы, которые я использовал, не имели местоположения. Точно такой же код прекрасно работает с фотографиями, сделанными iPhone 4 и iPhone 6.

person Programmer    schedule 06.05.2015