Swift2 无法指定类型为';[任何对象]';设置为类型为';[字符串]';斯威夫特2

Swift2 无法指定类型为';[任何对象]';设置为类型为';[字符串]';斯威夫特2,swift2,Swift2,我试图将我的项目从Swift更新为Swift 2,但我收到以下代码错误: let PhotoController = UIImagePickerController() PhotoController.delegate = self PhotoController.sourceType = UIImagePickerControllerSourceType.Camera let mediaTypes:[AnyObject] = [kUTTyp

我试图将我的项目从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)
在以下行:

PhotoController.mediaTypes = mediaTypes
编译器将指示此错误:

无法将“[AnyObject]”类型的值分配给“[String]”类型的值

你能帮我吗?
非常感谢

只是我的猜测,但根据文档判断

尽管mediaTypes在他们的例子中是[AnyObject]苹果公司的家伙,将它转换为[String](在Obj-c上的例子!)


因此,如果您确定数组的类型为
[String]
,那么我将强制转换为String

,您可以进行强制转换:

PhotoController.mediaTypes = mediaTypes as! [String]
否则,我建议使用flatMap和每个对象的单独可选投射:

PhotoController.mediaTypes = mediaTypes.flatMap{ $0 as? String }
PhotoController.mediaTypes = mediaTypes.flatMap{ $0 as? String }