@@ -12,7 +12,7 @@ import UIKit
12
12
@available ( macCatalyst 14 . 0 , * )
13
13
extension CodeScannerView {
14
14
15
- public class ScannerViewController : UIViewController , UINavigationControllerDelegate {
15
+ public final class ScannerViewController : UIViewController , UINavigationControllerDelegate {
16
16
private let photoOutput = AVCapturePhotoOutput ( )
17
17
private var isCapturing = false
18
18
private var handler : ( ( UIImage ? ) -> Void ) ?
@@ -174,7 +174,7 @@ extension CodeScannerView {
174
174
}
175
175
176
176
private func setupSession( ) {
177
- guard let captureSession = captureSession else {
177
+ guard let captureSession else {
178
178
return
179
179
}
180
180
@@ -436,9 +436,12 @@ extension CodeScannerView {
436
436
extension CodeScannerView . ScannerViewController : AVCaptureMetadataOutputObjectsDelegate {
437
437
public func metadataOutput( _ output: AVCaptureMetadataOutput , didOutput metadataObjects: [ AVMetadataObject ] , from connection: AVCaptureConnection ) {
438
438
if let metadataObject = metadataObjects. first {
439
- guard let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject else { return }
440
- guard let stringValue = readableObject. stringValue else { return }
441
- guard !didFinishScanning && !isCapturing else { return }
439
+ guard !parentView. isPaused && !didFinishScanning && !isCapturing,
440
+ let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject ,
441
+ let stringValue = readableObject. stringValue
442
+ else {
443
+ return
444
+ }
442
445
443
446
handler = { [ self ] image in
444
447
let result = ScanResult ( string: stringValue, type: readableObject. type, image: image, corners: readableObject. corners)
0 commit comments