首页 > 解决方案 > 使用 Swift 代码制作识别应用程序的问题

问题描述

**大家好...我正在尝试进行应用程序识别,只是我有一个图像视图,文本视图和按钮,代码如下..我的第一个问题是我的图像视图在选择图片后没有改变!..我的第二个问题是它告诉我“参数标签 image1 不匹配任何可用的重载”有什么帮助吗?

import UIKit
import CoreImage

class  ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate{

    @IBOutlet var myimage: UIImageView!
    @IBOutlet var info: UITextView!

    @IBAction func Import(_ sender: Any) {
        // create image picker
        let imagepicker = UIImagePickerController()
        imagepicker.delegate=self
        imagepicker.sourceType=UIImagePickerControllerSourceType.photoLibrary
        self.present(imagepicker ,animated: true, completion: nil)   
    }

      func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        if let Image1 = info[UIImagePickerControllerOriginalImage] as? UIImage {
            myimage.image = Image1   
        }
        self.dismiss(animated: true, completion: nil)
    }

    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        self.dismiss(animated: true, completion: nil)
    }

    // detect function
    func detect(){
        let image2 = CIImage (Image1:myimage.image!)! 

       // issue is here it says 
       "Arguments label image1 do not match any available overloads "
    }
}

标签: iosswiftcore-image

解决方案


第一个问题:看起来您的委托方法声明与协议中的声明不匹配,因此它被视为单独的方法。Xcode 甚至给出警告:

实例方法 'imagePickerController(picker:didFinishPickingMediaWithInfo:)' 几乎匹配协议 'UIImagePickerControllerDelegate' 的可选要求 'imagePickerController(_:didFinishPickingMediaWithInfo:)'

尝试更改此行:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

到:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])

UPD:还请阅读下面@dfd 关于如何避免这种(相当常见的)混淆类型的评论。


第二个问题:正如其他人已经提到的,您应该正确地将参数作为初始化程序传递。只需对您的代码进行最少的更改,它将是:

let image2 = CIImage (image: myimage.image!)! 

但是,感叹号(即强制展开)越少越好;有关这方面的更多信息,请查看Optional Chaining as a Alternative to Forced Unwrapping


推荐阅读