尝试使用 Photos Framework [Swift 2.0] 从 imagepickercontroller 检索 NSURL
Posted
技术标签:
【中文标题】尝试使用 Photos Framework [Swift 2.0] 从 imagepickercontroller 检索 NSURL【英文标题】:Trying to retrieve NSURL from imagepickercontroller with Photos Framework [Swift 2.0] 【发布时间】:2016-06-06 20:43:01 【问题描述】:当用户使用照片框架通过图像选择器控制器选择图像或视频时,我试图从图像或视频中获取 NSURL
import Photos
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
let url: NSURL = (info["UIImagePickerControllerReferenceURL"] as! NSURL)
mediaUploadView.image = info[UIImagePickerControllerOriginalImage]as? UIImage
print(url)
self.dismissViewControllerAnimated(true, completion: nil)
return UIImagePickerControllerReferenceURL
我收到错误“在 void 函数中出现意外的非 void 返回值”。
最终目标是使用 NSURL 将图像/视频/gif 上传到 Firebase 数据库。
老实说,我不确定我的逻辑是否正确,我还是编码新手。非常感谢任何帮助!
【问题讨论】:
【参考方案1】:在swift中,你必须在函数末尾的开头“”之前说返回值是什么,如果你不这样做,那么它被认为是一个void函数。 void 函数意味着它不返回任何值。所以,告诉它它会返回一个 NSURL,试试这个:
import Photos
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) -> NSURL
let url: NSURL = (info[UIImagePickerControllerReferenceURL] as! NSURL)
mediaUploadView.image = info[UIImagePickerControllerOriginalImage]as? UIImage
print(url)
self.dismissViewControllerAnimated(true, completion: nil)
return url
只需复制并粘贴这个,唯一的区别是它告诉函数返回值是什么,并且不再返回那个错误。我还建议删除周围的“”
(info[UIImagePickerControllerReferenceURL] as! NSURL)
这将返回一个 NSURL。
【讨论】:
以上是关于尝试使用 Photos Framework [Swift 2.0] 从 imagepickercontroller 检索 NSURL的主要内容,如果未能解决你的问题,请参考以下文章
text PHPhotoLibrary + SaveImage - 使用Photos Framework swift 3保存图像
分分钟教你学习一个新的框架--Photos FrameWork
使用 Swift (iOS) 和 Photos 框架保存自定义图像的元数据