(PHAsset位置)即使启用了位置服务,也会为“相机胶卷”照片返回(null)

时间:2015-05-21 21:28:56

标签: ios objective-c iphone location phasset

我需要访问源自用户相机胶卷/照片库的用户提交照片的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]适用于我选择的任何照片。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以访问PHAsset位置数据(前提是它可用)。用户可能已经选择不允许相机应用程序访问位置服务,从而导致没有位置数据的照片。