在Swift中获取PHAsset的位置
出于某种原因, PHAsset
的location
属性只在Objective-c中显示,而不在Swift中显示。
文档:PHAsset.location
为了解决它,我想我可以创build一个Objective-C类,其唯一目的是提取位置并将其导入到Swift中。
LocationGetter.h
@interface LocationGetter : NSObject + (CLLocation *)locationForAsset:(PHAsset *) asset; @end
LocationGetter.m
@implementation LocationGetter + (CLLocation *)locationForAsset:(PHAsset *) asset { return [asset location]; } @end
到目前为止这么好,但是当我尝试在Swift中使用它时:
LocationGetter.locationForAsset(ass)
“LocationGetter.Type”没有名为“locationForAsset”的成员
奖金问题:为什么地球上没有苹果迅速曝光location
?
事实certificate,答案非常简单。 问题是Swift文件不知道CLLocation
是什么,因此拒绝导入该函数。 导入CoreLocation
解决了这个问题。
import CoreLocation LocationGetter.locationForAsset(ass)
编辑:苹果已经包括。 .location
作为一个吸气剂在PHAsset
。 获取位置现在与asset.location
一样简单。
对于那些想要打印每个照片的位置,这里是:
var allAssets = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: nil) allAssets.enumerateObjectsUsingBlock({asset, index, stop in if let ass = asset as? PHAsset{ println(ass.location) } }