Я запланировал HIDManager в главном потоке (runLoop), используя IOHIDManagerScheduleWithRunLoop.Итак, я получаю обратные вызовы для сопоставления и удаления устройства в главном потоке.
Но я запланировал устройство IOHIDDeviceScheduleWithRunLoop в другом потоке, скажем Thread-1.Согласно документации, когда я устанавливаю отчет, я должен получить обратный вызов в Run-цикле Thread-1.
IOHIDDeviceScheduleWithRunLoop (inIOHIDDeviceRef, CFRunLoopGetCurrent (), kCFRunLoopDefaultMode);
Но я получаю обратный вызов HIDReport в главном потоке.Любая помощь?
ОБНОВЛЕНИЕ:
Я вижу, что вызывается обратный вызов отчета, даже если я удалил IOHIDDeviceScheduleWithRunLoop.Обратный вызов отчета должен вызываться на устройстве RunLoop.
В соответствии с документацией IOHIDManagerScheduleWithRunLoop: «Это формально связывает HID Manager с циклом выполнения клиента. Это расписание будет распространяться на все устройства HID, перечисленные в данный момент.и новым устройствам HID, поскольку они сопоставляются с помощью диспетчера HID "
Это следует использовать только для сопоставления и удаления, но я получаю и входные отчеты.