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