Вы можете иметь - [MyClass startAsynchronousCode] вызвать обратный вызов:
typedef void(*DoneCallback)(void *);
-(void) startAsynchronousCode {
// Lots of stuff
if (finishedCallback) {
finishedCallback(self);
}
}
, а затем создать экземпляр MyClass следующим образом:
MyClass *myClass = [[MyClass alloc] initWith: myCallback];
myCallback может выглядеть так:
void myCallback(void *userInfo) {
MyClass *thing = (MyClass *)userInfo;
// Do stuff
[thing release];
}