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);

Antworten auf die Frage(6)

Ihre Antwort auf die Frage