在 swift 2.0 中构建自定义相机应用程序时出错

Errors while building a custom camera App in swift 2.0

我正在构建一个带有自定义相机视图的自定义相机应用程序。在 ViewWillAppear 部分添加以下代码后,我在添加星星的区域出现以下错误: 二元运算符“!=”不能应用于 'Bool' 和 'NilLiteralConvertible'

类型的操作数

非常感谢任何帮助。

captureSession = AVCaptureSession()
        captureSession.sessionPreset = AVCaptureSessionPreset1920x1080

        let backCamera = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)

        var error : NSError?
        var input: AVCaptureDeviceInput!

        do {
            input = try AVCaptureDeviceInput(device: backCamera)
        } catch let error1 as NSError {
            error = error1
            input = nil
        }

if error == nil && captureSession.canAddInput(input) != nil { *********

                captureSession.addInput(input)

                stillImageOutPut = AVCaptureStillImageOutput()
                stillImageOutPut.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]

                if (captureSession.canAddOutput(stillImageOutPut) != nil){
                    captureSession.addOutput(stillImageOutPut)

                    previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
                    previewLayer.videoGravity = AVLayerVideoGravityResizeAspect
                    previewLayer.connection.videoOrientation = AVCaptureVideoOrientation.Portrait
                    cameraView.layer.addSublayer(previewLayer)
                    captureSession.startRunning()

                }


            }

captureSession.canAddInput(input)returns一个Bool,所以不用查!= nil。你的 if 语句可以变成:

if error == nil && captureSession.canAddInput(input) {

此外,您将 input 声明为 AVCaptureDeviceInput!! 意味着它永远不应该为 nil,但是如果出现错误,则将 nil 分配给它。如果出现错误,这将崩溃。您应该将 input 声明为 AVCaptureDeviceInput? 并在必要时展开 input