我如何 "unregister" 一个 IOKit.HID 回调?

How do I "unregister" an IOKit.HID callback?

我在使用 HID 设备时使用 IOHIDDeviceRegisterInputReportCallback 来收听传入的报告。在我与设备断开连接时(在软件中,而不是物理上),我想注销此回调。但是,我在 Apple 的文档中没有看到任何方法来解除我的回调。我确定我只是错过了一些东西。谁能告诉我从设备上取下钩子的正确方法?如果我不应该直接取消回调,那么从 HID 设备断开我的软件的正确方法是什么?

我在 Swift 中做这个项目,但 Objective-C 或 C++ 中的答案也应该没问题。

问完不久,我在Apple's documentation中找到了答案。他们说:

Note: There is no function to unregister IOHID callback routines. They are unregistered by calling the register function and passing NULL for the pointer to the callback routine.

所以,答案是传递一个null/nil指向回调注册函数的指针。