Обработка обратных вызовов
У меня есть метод в классе Objective-C. Он имеет 2 функции обратного вызова, написанные на C. Указатель класса, т.е.self
передается этим функциям какvoid *
, В функциях C я создаю указатель типа class и назначаюvoid *
параметр. Первая функция обратного вызова выполняется успешно. Ноvoid *
указатель становитсяnil
во 2-й функции обратного вызова. Обратите внимание, что я не настроил указатель в первом обратном вызове, но все равно получаюnil
во втором обратном вызове.
Есть идеи, что может пойти не так?
Например:
kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
matchingDict, RawDeviceAdded, NULL,
&gRawAddedIter);
RawDeviceAdded(NULL, gRawAddedIter, self);
Это отлично работает. Но ниже функция получаетself
какnil
.
kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
matchingDict, BulkTestDeviceAdded, NULL,
&gBulkTestAddedIter);
BulkTestDeviceAdded(NULL, gBulkTestAddedIter, self);