По какой-то причине свойство location
на PHAsset
отображается только в Objective-c, а не в Swift.Получение местоположения PHAsset в 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
в swift?
Вы можете разделить больше кода, пожалуйста? По какой-то причине это падает для меня. Не все из моих активов имеют место, может быть, это и есть причина, но я не знаю, как справиться с этим в объективной функции c, которую вы предоставили, помощь будет высоко оценена. – alexsalo
@alexsalo Кажется, что Apple установила «местоположение» в Swift. Вы должны иметь возможность просто «ass.location», чтобы получить местоположение. 'ass' - ваш PHAsset. [Документация: PHAsset.location] (https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html#//apple_ref/occ/instp/PHAsset/location) –
Да , вы совершенно правы, тогда у меня была проблема с разворачиванием. Еще раз спасибо! – alexsalo