AVCaptureVideoPreviewLayer(session: captureSession)
всегда возвращает объект типа AVCaptureVideoPreviewLayer
, а не типа AVCaptureVideoPreviewLayer?
(т. Е. Возвращаемый объект не является необязательным и поэтому не может иметь значение nil).
Когда вы делаете if let
, Swift ожидает необязательный тип. Поскольку необязательный тип не создается, возникает ошибка.
Я предлагаю удалить часть if
и просто иметь
let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.bounds = imageView.bounds
previewLayer.position = CGPoint(x: 140, y: 140)
previewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
imageView.layer.addSublayer(previewLayer)
view.addSubview(imageView)
Надеюсь, это поможет!