我需要访问源自用户相机胶卷/照片库的用户提交照片的GPS坐标。为了现代性,我实现了PHAsset而不是ALAsset。
我知道位置服务已启用,因为我可以打印出用户的当前位置并添加了" NSLocationAlwaysUsageDescription"," NSLocationWhenInUseDescription"和"隐私 - 位置使用说明"我的info.plist文件的密钥。我在我的ViewController的.h文件中导入了CoreLocation,MobileCoreServices和Photos。
我在didFinishPickingMediaWithInfo委托方法中的当前代码如下:
NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];
PHFetchResult *res = [PHAsset fetchAssetsWithALAssetURLs:[NSArray arrayWithObject:url] options:nil];
PHAsset *thisPhoto = [res objectAtIndex: 0];
CLLocation *photoLocation = [thisPhoto location];
NSLog(@"%@", photoLocation);
由于某种原因,这总是输出(null)。有什么我错过了阻止我访问PHAsset位置数据的东西吗?我知道正在正确分配PHAsset,因为[PHAsset creationDate]适用于我选择的任何照片。
谢谢!
答案 0 :(得分:2)
您可以访问PHAsset位置数据(前提是它可用)。用户可能已经选择不允许相机应用程序访问位置服务,从而导致没有位置数据的照片。