我尝试检索PHAsset,但是iOS 8中不推荐使用PHAsset.fetchAssets(withALAssetURLs:options :),那么如何才能正确检索PHAsset?
答案 0 :(得分:11)
我遇到了同样的问题,首先检查权限并请求访问权限:
inputModule <- function(input, output, session){
reactive(
list(
text1 = input$text1,
text2 = input$text2
)
)
}
outputModule <- function(input, output, session, ImProxy){
output$txt <- renderPrint({
paste(ImProxy()$text1, "&", ImProxy()$text2)
})
}
shinyApp(ui, server)
只需将其连接到UIImagePickerController的任何触发器即可。委托调用现在应该在userInfo中包含PHAsset。
let status = PHPhotoLibrary.authorizationStatus()
if status == .notDetermined {
PHPhotoLibrary.requestAuthorization({status in
})
}
答案 1 :(得分:1)
除非用户授权,否则PHAsset不会出现在didFinishPickingMediaWithInfo: info
结果中,这对我来说只是通过展示选择器就不会发生。我在协调器init()中添加了它:
let status = PHPhotoLibrary.authorizationStatus()
if status == .notDetermined {
PHPhotoLibrary.requestAuthorization({status in
})
}
答案 2 :(得分:0)
我不确定你想要什么。
您是否尝试定位iOS 8?
这是我获取照片的方式,它适用于 iOS(8.0及更高版本),macOS(10.11及更高版本),tvOS(10.0及更高版本)。 代码被评论可能会令人困惑
第二个函数实际上会获取它们
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
}
根据OP的澄清进行编辑
您需要设置委托 UIImagePickerControllerDelegate
然后实现以下功能
var image : UIImage = info[UIImagePickerControllerEditedImage] as! UIImage
在所述方法中,得到如下图像:
{{1}}
答案 3 :(得分:0)
这是我的解决方法:
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
}
}
}