imagePickerController:didFinishPickingMediaWithInfo与协议'UIImagePickerControllerDelegate'中的可选需求方法冲突

Big*_*337 10 uiimagepickercontroller ios swift ios8 xcode7

这是完整的错误:

Objective-C方法'imagePickerController:didFinishPickingMediaWithInfo:'由方法'imagePickerController(_:didFinishPickingMediaWithInfo :)提供'与协议'UIImagePickerControllerDelegate'中的可选需求方法'imagePickerController(_:didFinishPickingMediaWithInfo :)'冲突

它出现在我的ViewController.swift文件中的第一个函数上:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]){
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        ImageView.contentMode = .ScaleAspectFit
        ImageView.image = pickedImage
    }

    dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试按照本教程:http://www.codingexplorer.com/choosing-images-with-uiimagepickercontroller-in-swift/

从错误方法,我收集有一个方法didFinishPickingMediaWithInfo,它是从imagePickerController基类得到的,它不喜欢我试图覆盖它.但这就是我所知道的.我在网上找到的所有imagePickerController函数都是这样的.我究竟做错了什么?

我正在使用Xcode 7,如果这有所作为.]

截图1

luk*_*302 22

正确的功能头是:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    <#code#>
}
Run Code Online (Sandbox Code Playgroud)

请注意String而不是NSObject在信息字典的声明中.

我不确定为什么文档说你必须写NSObject,但是String是正确的.

如果您实现任何协议方法,我建议使用Xcode的自动完成,以确保您不会遇到这样的问题.

在此输入图像描述

我不确定Xcode从哪里获得自动完成,但它似乎始终与实际的编译器同步,这最终是你必须担心的一件事而不是一些在线苹果文档!特别是在框架不断变化甚至语言本身正在发展的时代.