出现错误:无法分配“AnyObject”类型的值?为“NSURL”类型的值
我的代码:
var videoPlayer = MPMoviePlayerController()
var mediaUI = UIImagePickerController()
var videoURL = NSURL()
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]){
// error in below first line
self.videoURL = info[UIImagePickerControllerMediaURL]
mediaUI.dismissViewControllerAnimated(true, completion: nil)
self.videoPlayer = MPMoviePlayerController()
self.videoPlayer.contentURL = videoURL
self.videoPlayer.view.frame = CGRectMake(0,0,self.view.frame.size.width,460)
self.view.addSubview(self.videoPlayer.view)
self.videoPlayer.play()
}
如何更改该代码来解决我的错误。
最佳答案
info[UIImagePickerControllerMediaURL]
的类型为 AnyObject?
,但 self.videoURL
的类型为 NSURL
。
将结果安全地转换为 NSURL:
if let vURL = info[UIImagePickerControllerMediaURL] as? NSURL {
self.videoURL = vURL
}
这是您已修复的代码:
var videoPlayer = MPMoviePlayerController()
var mediaUI = UIImagePickerController()
var videoURL = NSURL()
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let vURL = info[UIImagePickerControllerMediaURL] as? NSURL {
self.videoURL = vURL
} else {
print("oops, no url")
}
mediaUI.dismissViewControllerAnimated(true, completion: nil)
self.videoPlayer = MPMoviePlayerController()
self.videoPlayer.contentURL = videoURL
self.videoPlayer.view.frame = CGRectMake(0,0,self.view.frame.size.width,460)
self.view.addSubview(self.videoPlayer.view)
self.videoPlayer.play()
}
关于ios - 错误: Cannot assign a value of type 'AnyObject?' to a value of type 'NSURL' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33826205/