【发布时间】:2014-10-24 06:25:50
【问题描述】:
由于某种原因,PHAsset 上的 location 属性仅在 Objective-c 中公开,而不在 Swift 中公开。
Documentation: PHAsset.location
为了解决这个问题,我想我可以创建一个 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”的成员
额外问题:为什么 Apple 没有迅速公开 location?
【问题讨论】:
-
你能分享更多代码吗?出于某种原因,这对我来说崩溃了。并非我所有的资产都有一个位置,也许这就是原因,但我不知道如何在你提供的目标 c 函数中处理这个问题,非常感谢帮助。
-
@alexsalo Apple 似乎已经修复了 Swift 中的
location访问器。您应该可以通过ass.location获取位置。ass是您的 PHAsset。 Documentation: PHAsset.location -
是的,你说的很对,当时我在展开时遇到了问题。再次感谢!
标签: ios objective-c swift ios8 phasset