Lin*_*äck 6 objective-c ios swift ios8 phasset
由于某种原因location,a上的属性PHAsset仅在Objective-c中公开,而不在Swift中公开.
为了解决这个问题,我想我可以创建一个Objective-C类,其唯一目的是提取位置并将其导入Swift.
LocationGetter.h
@interface LocationGetter : NSObject
+ (CLLocation *)locationForAsset:(PHAsset *) asset;
@end
Run Code Online (Sandbox Code Playgroud)
LocationGetter.m
@implementation LocationGetter
+ (CLLocation *)locationForAsset:(PHAsset *) asset {
return [asset location];
}
@end
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都那么好,但是当我尝试在Swift中使用它时:
LocationGetter.locationForAsset(ass)
Run Code Online (Sandbox Code Playgroud)
'LocationGetter.Type'没有名为'locationForAsset'的成员
奖金问题:为什么苹果公司没有location迅速曝光?
事实证明,答案其实很简单。问题是 Swift 文件不知道 aCLLocation是什么,因此拒绝导入该函数。导入CoreLocation解决了这个问题。
import CoreLocation
LocationGetter.locationForAsset(ass)
Run Code Online (Sandbox Code Playgroud)
编辑: Apple 此后已将其.location作为 getter 包含在PHAsset. 现在获取位置就像 一样简单asset.location。
| 归档时间: |
|
| 查看次数: |
3524 次 |
| 最近记录: |