diff --git a/QRCode/Source/QRCode.swift b/QRCode/Source/QRCode.swift index d278d12..b328609 100644 --- a/QRCode/Source/QRCode.swift +++ b/QRCode/Source/QRCode.swift @@ -100,7 +100,7 @@ open class QRCode: NSObject, AVCaptureMetadataOutputObjectsDelegate { colorFilter.setValue(backColor, forKey: "inputColor1") let transform = CGAffineTransform(scaleX: 10, y: 10) - let transformedImage = qrFilter.outputImage!.applying(transform) + let transformedImage = qrFilter.outputImage!.transformed(by: transform) let image = UIImage(ciImage: transformedImage) @@ -179,7 +179,7 @@ open class QRCode: NSObject, AVCaptureMetadataOutputObjectsDelegate { return } - if !session.canAddInput(videoInput) { + if !session.canAddInput(videoInput!) { print("can not add input device") return } @@ -189,7 +189,7 @@ open class QRCode: NSObject, AVCaptureMetadataOutputObjectsDelegate { return } - session.addInput(videoInput) + session.addInput(videoInput!) session.addOutput(dataOutput) dataOutput.metadataObjectTypes = dataOutput.availableMetadataObjectTypes; @@ -210,7 +210,7 @@ open class QRCode: NSObject, AVCaptureMetadataOutputObjectsDelegate { if currentDetectedCount > maxDetectedCount { session.stopRunning() - completedCallBack!(codeObject.stringValue) + completedCallBack!(codeObject.stringValue!) if autoRemoveSubLayers { removeAllLayers() @@ -274,8 +274,8 @@ open class QRCode: NSObject, AVCaptureMetadataOutputObjectsDelegate { /// previewLayer lazy var previewLayer: AVCaptureVideoPreviewLayer = { let layer = AVCaptureVideoPreviewLayer(session: self.session) - layer?.videoGravity = AVLayerVideoGravityResizeAspectFill - return layer! + layer.videoGravity = AVLayerVideoGravity.resizeAspectFill + return layer }() /// drawLayer @@ -285,7 +285,7 @@ open class QRCode: NSObject, AVCaptureMetadataOutputObjectsDelegate { /// input lazy var videoInput: AVCaptureDeviceInput? = { - if let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) { + if let device = AVCaptureDevice.default(for: AVMediaType.video) { return try? AVCaptureDeviceInput(device: device) } return nil