无法将类型'[AnyObject]'的值赋给类型'[String]'Swift 2的值

Man*_*our 2 swift2

我尝试将我的项目从Swift更新为Swift 2,但是我收到以下代码的错误:

let PhotoController = UIImagePickerController() 
        PhotoController.delegate = self
        PhotoController.sourceType = UIImagePickerControllerSourceType.Camera 

        let mediaTypes:[AnyObject] = [kUTTypeImage] 

        PhotoController.mediaTypes = mediaTypes 

        PhotoController.allowsEditing  = false

        self.presentViewController(PhotoController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

在以下行:

PhotoController.mediaTypes = mediaTypes
Run Code Online (Sandbox Code Playgroud)

编译器指出此错误:

不能将类型'[AnyObject]'的值赋给类型'[String]'的值

你能帮我吗 ?非常感谢 !

Qby*_*yte 7

如果您确定数组是类型[String],则可以进行强制转换:

PhotoController.mediaTypes = mediaTypes as! [String]
Run Code Online (Sandbox Code Playgroud)

否则我建议使用flatMap和每个对象的单独可选演员:

PhotoController.mediaTypes = mediaTypes.flatMap{ $0 as? String }
Run Code Online (Sandbox Code Playgroud)