1

おそらくばかげた質問ですが、どうすれば機能するのかわかりません。スキャンでスキャンボタンを押すと機能しますIKScannerDeviceViewが、そのデリゲートは呼び出されません。ブレークポイントをオンラインに設定しました

print("Did scan to: \(url.path)")

スキャン ファイルは問題なく選択したフォルダに表示されますが、ブレークポイントで停止することはありません。何か不足していますか?完全を期すために、私はmacOS 11.0.1でXcode 12.2を使用しています

これが私のコードです:


import Cocoa
import ImageCaptureCore
import Quartz

class ViewController: NSViewController {
    @IBOutlet weak var scannerView: IKScannerDeviceView!
    var deviceBrowser:ICDeviceBrowser!

    override func viewDidLoad() {
        super.viewDidLoad()
        self.scannerView.delegate = self
        self.scannerView.mode = .advanced
        self.scannerView.transferMode = .fileBased

        self.deviceBrowser = ICDeviceBrowser()
        self.deviceBrowser.delegate = self
        self.deviceBrowser.browsedDeviceTypeMask = ICDeviceTypeMask(rawValue:
                                                                        ICDeviceLocationTypeMask.local.rawValue |
                                                                        ICDeviceLocationTypeMask.shared.rawValue |
                                                                        ICDeviceLocationTypeMask.bonjour.rawValue |
                                                                        ICDeviceLocationTypeMask.remote.rawValue |
                                                                        ICDeviceLocationTypeMask.bluetooth.rawValue |
                                                                        ICDeviceTypeMask.scanner.rawValue)!
        self.deviceBrowser.start()
    }
}

extension ViewController : IKScannerDeviceViewDelegate {
    func scannerDeviceView(_ scannerDeviceView: IKScannerDeviceView!, didScanTo url: URL!, error: Error!) {
        print("Did scan to: \(url.path)")
    }
}

extension ViewController: ICDeviceBrowserDelegate {
    func deviceBrowser(_ browser: ICDeviceBrowser, didAdd device: ICDevice, moreComing: Bool) {

        if (device.type.rawValue & ICDeviceTypeMask.scanner.rawValue) == ICDeviceType.scanner.rawValue {
            self.scannerView.scannerDevice = (device as! ICScannerDevice)
        }
    }

    func deviceBrowser(_ browser: ICDeviceBrowser, didRemove device: ICDevice, moreGoing: Bool) {
        device.requestCloseSession()
    }

    func didRemoveDevice(device: ICDevice) {
        device.requestCloseSession()
    }

    func device(device: ICDevice, didEncounterError error: NSError?) {
        print("Error")
        print(error?.description ?? "----")
    }
}
4

1 に答える 1