Ios 我在iPhone中安装了应用程序it';没关系。应用程序没有bug,但它没有';我不能做QR阅读器

Ios 我在iPhone中安装了应用程序it';没关系。应用程序没有bug,但它没有';我不能做QR阅读器,ios,swift,Ios,Swift,替换 import UIKit import AVFoundation class ViewController: UIViewController , AVCaptureMetadataOutputObjectsDelegate { @IBOutlet weak var border: UIImageView! var video = AVCaptureVideoPreviewLayer() override func viewDidLoad() {

替换

import UIKit
import AVFoundation

class ViewController: UIViewController , AVCaptureMetadataOutputObjectsDelegate {
    @IBOutlet weak var border: UIImageView!
    var video = AVCaptureVideoPreviewLayer()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let session = AVCaptureSession()
        //creat capture device
        let capturedevice =  AVCaptureDevice.default(for:AVMediaType.video) //////////ممکنه مشکل از این باشه

        do {
            let input = try AVCaptureDeviceInput (device:capturedevice!)
            session.addInput(input)
        }
        catch{
            print ("error baby !!!")
        }
        let output = AVCaptureMetadataOutput()
        session.addOutput(output)
        output.setMetadataObjectsDelegate(self, queue:DispatchQueue.main)
        output.metadataObjectTypes = [AVMetadataObject.ObjectType.qr]//////////////////ممکنه مشکل از این باشه

        video = AVCaptureVideoPreviewLayer(session:session)
        video.frame = view.layer.bounds
        view.layer.addSublayer(video)
        self.view.bringSubviewToFront(border)
        session.startRunning()/////////////good good
    }
    func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!){
        if metadataObjects != nil && metadataObjects.count != 0
        {
            if let object = metadataObjects[0] as? AVMetadataMachineReadableCodeObject
            {
                if object.type == AVMetadataObject.ObjectType.qr
                {
                    let alert = UIAlertController(title:"QRScanner", message:object.stringValue, preferredStyle: .alert)
                    alert.addAction(UIAlertAction(title: "retake", style: .default, handler: nil))
                    alert.addAction(UIAlertAction(title: "copy", style: .default, handler: {(nil)in
                        UIPasteboard.general.string = object.stringValue

                    }))
                        present (alert,animated: true , completion: nil)
                }
            }
        }

    }

    }
使用正确的委托方法

func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!){

点击这个链接。希望你能得到错误
func metadataOutput(_ output: AVCaptureMetadataOutput, didOutput metadataObjects: [AVMetadataObject], from connection: AVCaptureConnection) {