ios - 错误: Cannot assign a value of type 'AnyObject?' to a value of type 'NSURL'

标签 ios iphone swift

出现错误:无法分配“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/

相关文章:

ios - 我是否需要在 AFNetworking Reachability block 中引用 self with weak

ios - 在ios中对textField设置多重验证

ios - 跨设备同步核心数据

swift - 如何在 Swift 中流式传输 mp3 url (iOS)?

ios - Apple Watch 上的推送通知

ios - 当allowLoginUI为“NO”时,openActiveSessionWithReadPermissions不回调

iphone - iOS 中的 LocationManager 在调用委托(delegate)之前重新分配

iphone - iOS 6.0 Storyboard : Set static cell selected

iphone - 更改数据编码

ios - 同一单元格中 TextView 和 ImageView 的动态单元格大小