Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 类型';绳子';没有成员';照片';_Ios_Swift - Fatal编程技术网

Ios 类型';绳子';没有成员';照片';

Ios 类型';绳子';没有成员';照片';,ios,swift,Ios,Swift,我正在关注Youtube上关于CoreML的教程:机器学习的实时摄像机目标检测——Brian先生的Swift 4 captureSession.sessionPreset = .photo 在这一行中,错误显示: 类型“String”没有成员“photo” 另一个错误是“自我”部分。错误是: 无法将“ViewController”类型的值转换为预期的参数类型“AVCaptureVideoDataOutputSampleBufferDelegate!” 以下是全部代码: import UIKit

我正在关注Youtube上关于CoreML的教程:机器学习的实时摄像机目标检测——Brian先生的Swift 4

captureSession.sessionPreset = .photo
在这一行中,错误显示:

类型“String”没有成员“photo”

另一个错误是“自我”部分。错误是:

无法将“ViewController”类型的值转换为预期的参数类型“AVCaptureVideoDataOutputSampleBufferDelegate!”

以下是全部代码:

import UIKit
import AVFoundation
import AVKit
import Vision

class ViewController: UIViewController,         AVCaptureAudioDataOutputSampleBufferDelegate {
    override func viewDidLoad() {
        super.viewDidLoad()

        // here is where we start up the camera
        let captureSession = AVCaptureSession()
        captureSession.sessionPreset = .photo

        guard let captureDevice =
            AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) else { return }

        guard let input = try? AVCaptureDeviceInput(device:
            captureDevice) else { return }
        captureSession.addInput(input)

        captureSession.startRunning()

        let previewLayer = AVCaptureVideoPreviewLayer(session:
            captureSession)
        view.layer.addSublayer(previewLayer!)
        previewLayer!.frame = view.frame

        let dataOutput = AVCaptureVideoDataOutput()
        dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
        captureSession.addOutput(dataOutput)

我想你已经得到了第二个错误的答案,第一个错误用下面的替换错误行

SWIFT 3

captureSession.sessionPreset = AVCaptureSessionPresetPhoto
SWIFT 4

captureSession.sessionPreset = AVCaptureSession.Preset.photo

AVCaptureAudioDataOutputSampleBufferDelegate
更改为
AVCaptureVideoDataOutputSampleBufferDelegate
。谢谢。现在可以了。第一个错误如何?首先,请查看
AVCaptureSession
sessionPreset
属性的文档。请在回答中的两行之间切换,上面是swift 4
captureSession.sessionPreset = AVCaptureSession.Preset.photo