Handling Callbacks
Ich habe eine Methode in einer Objective-C-Klasse. Es hat 2 Rückruffunktionen, die in C geschrieben sind. Der Klassenzeiger, d. H.self
wird an diese Funktionen als @ übergebvoid *
. In den C-Funktionen erstelle ich einen Zeiger der Typklasse und ordne dasvoid *
Parameter. Die erste Rückruffunktion wird erfolgreich ausgeführt. Aber dievoid *
Zeiger wird zunil
in der 2. Rückruffunktion. Beachten Sie, dass ich den Zeiger im ersten Rückruf nicht optimiert habe, aber trotzdem @ erhaltnil
im 2. Rückruf.
Irgendwelche Ideen was könnte schief gehen?
Beispielsweise
kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
matchingDict, RawDeviceAdded, NULL,
&gRawAddedIter);
RawDeviceAdded(NULL, gRawAddedIter, self);
Dies funktioniert gut. Aber unten Funktion erhältself
wienil
.
kr = IOServiceAddMatchingNotification(gNotifyPort, kIOFirstMatchNotification,
matchingDict, BulkTestDeviceAdded, NULL,
&gBulkTestAddedIter);
BulkTestDeviceAdded(NULL, gBulkTestAddedIter, self);