视图控制器没有初始化程序

B.T*_*ter 1 initialization swift

class ViewController3: UIViewController {

let session = AVCaptureSession()
var camera : AVCaptureDevice?
var cameraPreviewLayer : AVCaptureVideoPreviewLayer?
var cameraCaptureOutput : AVCapturePhotoOutput
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为我在不同的相机应用程序中使用了完全相同的代码,但无论出于何种原因,我收到错误,说viewcontroller没有初始化器.我该如何修复错误?

And*_*ini 5

问题出在这里:

var cameraCaptureOutput : AVCapturePhotoOutput
Run Code Online (Sandbox Code Playgroud)

既然不是可选的,必须初始化:

在创建该类或结构的实例时,类和结构必须将其所有存储的属性设置为适当的初始值.存储的属性不能保留在不确定的状态.

您可以在初始化程序中为存储的属性设置初始值,也可以通过将默认属性值指定为属性定义的一部分来设置初始值.

要解决此问题,您可以将此属性定义为可选:

class ViewController3: UIViewController {
    let session = AVCaptureSession()
    var camera : AVCaptureDevice?
    var cameraPreviewLayer : AVCaptureVideoPreviewLayer?
    var cameraCaptureOutput : AVCapturePhotoOutput?
}
Run Code Online (Sandbox Code Playgroud)