我正在尝试使用 DiskArbitration 并安装第一个回调函数,即 DADiskAppearedCallback,但我被困在 DARegisterDiskAppearedCallback 语句中,出现以下错误:
'DeviceManager' 不能转换为 'UnsafeMutablePointer<()>'
我需要将 DeviceManager 实例传递给回调,以便在其中填充数组...
这是我的代码:
class DeviceManager {
var devices = [Device]()
func diskAppearedCallback(disk: DADisk!, context: UnsafeMutablePointer<()>) {
NSLog("Disk: \(DADiskGetBSDName(disk))")
// Create and Add a device here...
}
var callback = CFunctionPointer<(DADisk!, UnsafeMutablePointer<()>) -> Void>()
init() {
var session = DASessionCreate(kCFAllocatorDefault).takeRetainedValue()
DARegisterDiskAppearedCallback(session, kDADiskDescriptionMatchVolumeMountable, callback, self)
...
}
}
提前感谢您的帮助。