照片框架 - 如何从 PHAsset 获取图像的 CLLocation?
Posted
技术标签:
【中文标题】照片框架 - 如何从 PHAsset 获取图像的 CLLocation?【英文标题】:Photos Framework - How to obtain CLLocation of image from PHAsset? 【发布时间】:2014-11-08 05:40:07 【问题描述】:我能够从 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 等。我得到了许多其他属性,如下所示,但位置。
[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;
]
请指教。
【问题讨论】:
【参考方案1】:这是一个真正的错误。我使用的资产没有位置。完全相同的代码适用于 iPhone 4 和 iPhone 6 拍摄的照片。
【讨论】:
以上是关于照片框架 - 如何从 PHAsset 获取图像的 CLLocation?的主要内容,如果未能解决你的问题,请参考以下文章