This is as far as I have got with ImageCaptureCore - attempting the simplest possible case to detect the card - running on an iPhone from Xcode it crashes. I have also tried with the ICDeviceBrowserDelegate directly on the DeviceProbe class but get the same result.
import Foundation
import ImageCaptureCore
@objcMembers
final class CameraBrowserDelegate: NSObject, ICDeviceBrowserDelegate {
func deviceBrowser(_ browser: ICDeviceBrowser,
didAdd device: ICDevice,
moreComing: Bool) {
print("Did add device: \(device)")
}
func deviceBrowser(_ browser: ICDeviceBrowser,
didRemove device: ICDevice,
moreGoing: Bool) {
print("Did remove device: \(device)")
}
}
final class DeviceProbe: NSObject {
private let browser = ICDeviceBrowser()
private let delegate = CameraBrowserDelegate()
override init() {
super.init()
browser.delegate = delegate
browser.browsedDeviceTypeMask = ICDeviceTypeMask(
rawValue: ICDeviceTypeMask.camera.rawValue
)!
print("Starting device browser...")
browser.start() // <-- crash occurs here
}
}