0

我正在尝试使用 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) 

    ...      

  }
}

提前感谢您的帮助。

4

0 回答 0