Vì một lý do nào đó, thuộc tính location
trên PHAsset
chỉ được hiển thị trong Mục tiêu-c chứ không phải trong Swift.Nhận vị trí của một PHAsset trong Swift
Documentation: PHAsset.location
Để làm việc xung quanh nó, tôi figured tôi có thể tạo ra một lớp Objective-C với mục đích duy nhất là để trích xuất các địa điểm và nhập nó vào Swift.
LocationGetter.h
@interface LocationGetter : NSObject
+ (CLLocation *)locationForAsset:(PHAsset *) asset;
@end
LocationGetter.m
@implementation LocationGetter
+ (CLLocation *)locationForAsset:(PHAsset *) asset {
return [asset location];
}
@end
Cho đến nay rất tốt, nhưng khi tôi cố gắng sử dụng nó trong Swift:
LocationGetter.locationForAsset(ass)
'LocationGetter .Type 'không có thành viên có tên' locationForAsset '
Câu hỏi bổ sung: Tại sao trái đất không Apple phơi bày location
nhanh chóng?
Bạn có thể chia sẻ mã hơn xin vui lòng? Vì lý do nào đó, sự cố này đã gây ra cho tôi. Không phải tất cả tài sản của tôi đều có một vị trí, có lẽ đó là lý do, nhưng tôi không biết cách xử lý điều này trong hàm c mục tiêu mà bạn cung cấp, trợ giúp sẽ được đánh giá cao. – alexsalo
@alexsalo Dường như Apple đã sửa bộ truy cập 'location' trong Swift. Bạn sẽ có thể chỉ cần 'ass.location' để có được vị trí. 'ass' là PHAset của bạn. [Tài liệu: PHAsset.location] (https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html#//apple_ref/occ/instp/PHAsset/location) –
Có , bạn hoàn toàn đúng, tôi đã có một vấn đề với unwrapping sau đó. Cảm ơn một lần nữa! – alexsalo