我正在尝试检索一个PHAsset,但是iOS 8不推荐使用PHAsset.fetchAssets(带有withALAssetURLs:options:),那么我如何正确检索PHAsset呢?
发布于 2017-10-04 09:50:07
我也有同样的问题,首先检查权限并请求访问:
let status = PHPhotoLibrary.authorizationStatus()
if status == .notDetermined {
PHPhotoLibrary.requestAuthorization({status in
})
}只要把它连接到触发你的UIImagePickerController的任何东西上。委托调用现在应该在userInfo中包含PHAsset。
guard let asset = info[UIImagePickerControllerPHAsset] as? PHAsset发布于 2018-12-05 14:19:25
以下是我的解决方案:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if #available(iOS 11.0, *) {
let asset = info[UIImagePickerControllerPHAsset]
} else {
if let assetURL = info[UIImagePickerControllerReferenceURL] as? URL {
let result = PHAsset.fetchAssets(withALAssetURLs: [assetURL], options: nil)
let asset = result.firstObject
}
}
}发布于 2020-04-07 04:21:55
除非用户已经授权,否则PHAsset不会出现在didFinishPickingMediaWithInfo: info结果中,这并不是我仅仅通过显示选择器就可以实现的。我在协调器init()中添加了以下内容:
let status = PHPhotoLibrary.authorizationStatus()
if status == .notDetermined {
PHPhotoLibrary.requestAuthorization({status in
})
}https://stackoverflow.com/questions/44977292
复制相似问题