我有一段代码,它发出黄色警告。我想不出怎么对它进行编码,所以黄色警告就消失了。在从Swift-2 -> 3 -> 4转换后,试图清理我的代码。
if let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) as? AVCaptureVideoPreviewLayer {
previewLayer.bounds = imageView.bounds
previewLayer.position = CGPoint(x: 140, y: 140)
previewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
imageView.layer.addSublayer(previewLayer)
view.addSubview(imageView)
}
删除as? AVCaptureVideoPreviewLayer
显示一个错误:
条件绑定的初始化程序必须具有可选类型,而不是“AVCaptureVideoPreviewLayer”
发布于 2018-09-01 17:24:32
AVCaptureVideoPreviewLayer(session: captureSession)
总是返回AVCaptureVideoPreviewLayer
类型的对象,而不是AVCaptureVideoPreviewLayer?
类型的对象(即返回的对象不是可选的,因此不能为零)。
当您执行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)
希望这能有所帮助!
https://stackoverflow.com/questions/52130429
复制相似问题