Objective-C;Mac OS 10.10 или более поздняя версия В моем проекте библиотеки XCode Mac я следовал функции RawDeviceAdded из кода библиотеки разработчика Apple, приведенного ниже по ссылке, для обработки необработанных USB-устройств различных Pids, как добавлено в. https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/USBBook/USBDeviceInterfaces/USBDevInterfaces.html
При довольно быстрой вставке устройств одно за другим проект падает с такой текстовой строкой: thread 1 exc_bad_access (code = exc_i386_gpflt) .отображается в этой строке:
result = (*plugInInterface)->QueryInterface(plugInInterface,
CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID),
(LPVOID *)&dev);
, но последняя выполненная строка - printf строка ниже:
if ((vendor != kOurVendorID) || (product != kOurProductID1) || (product != kOurProductID2) )
{
printf("Found unwanted device (vendor = %d, product = %d)\n",
vendor, product);
(void) (*dev)->Release(dev);
continue;
}
Когда я вставляю устройства медленнее или добавляю спящий режим вэта функция, кажется, работает без сбоев, но я бы хотел исправить это правильно.Что происходит и как правильно с этим справиться?.