错误:“使用未解析的标识符”

时间:2016-11-29 09:56:24

标签: ios swift xcode

我正在制作一个人脸检测应用。我已经编写了一些用于检测的代码,但是我收到了一个错误。请建议我另一种解决方案。 这是代码,错误在第3行。

import UIKit
import CoreImage

class ViewController: UIViewController ,UIAlertViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate  {

    @IBOutlet var imageView: UIImageView!
    @IBAction func Moodify(_ sender: UIButton) {

        let picker = UIImagePickerController()
        picker.delegate = self
        picker.allowsEditing = true
        picker.sourceType = .camera
        self.present(picker, animated: true, completion: { _ in })


        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [AnyHashable: Any]) {
            let chosenImage = info[UIImagePickerControllerEditedImage]
            self.imageView!.image = chosenImage as? UIImage
            picker.dismiss(animated: true, completion: { _ in })
        }

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

    }

    func detect() {

        guard let personciImage = CIImage(image: personPic.image!) else {
            return
        }

        let accuracy = [CIDetectorAccuracy: CIDetectorAccuracyHigh]
        let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: accuracy)
        let faces = faceDetector.featuresInImage(personciImage)

        for face in faces as! [CIFaceFeature] {

            print("Found bounds are \(face.bounds)")

            let faceBox = UIView(frame: face.bounds)

            faceBox.layer.borderWidth = 3
            faceBox.layer.borderColor = UIColor.redColor().CGColor
            faceBox.backgroundColor = UIColor.clearColor()
            personPic.addSubview(faceBox)

            if face.hasLeftEyePosition {
                print("Left eye bounds are \(face.leftEyePosition)")
            }

            if face.hasRightEyePosition {
                print("Right eye bounds are \(face.rightEyePosition)")
            }
        }
    }    

    override func viewDidLoad() {

        let alert = UIAlertController(title: "Error", message: "Device has no camera", preferredStyle: UIAlertControllerStyle.alert)
        alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.default, handler: nil))
        self.present(alert, animated: true, completion: nil)


    /*    if !UIImagePickerController.isSourceTypeAvailable(.camera) {
            let myAlertView = UIAlertView (title: "Error", message: "Device has no camera", delegate: nil, cancelButtonTitle: "OK", otherButtonTitles: "")
            myAlertView.show()
        }  */

        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

SEE ERROR IN THIS IMAGE

1 个答案:

答案 0 :(得分:1)

您需要声明它并连接到故事板中的UIImageView。

@IBOutlet weak var personPic: UIImageView!

这是编程的基础。你怎么能用你尚未宣布的东西,对吧?祝你的项目好运。