Если ваш объект выполняет фоновую работу, рекомендуется сохранить его в течение этого времени.Таким образом, вам не нужно беспокоиться о том, что его освободят, пока это не будет сделано.Ваш метод function
может безопасно освободить его после начала действия, но он не будет освобожден до тех пор, пока не будет готов.
AnObject *object;
- (void)function {
object = [[AnObject alloc] init];
[object doYourJob];
[object release];
}
- (void)callThisWhenFinish {
//do something
}
В AnObject:
- (void)doYourJob {
[self retain];
// enter background and call backgroundMethod
}
- (void)backgroundMethod {
// This is the method which doYourJob calls in the background to do the work
// Do some work
[delegate callThisWhenFinish];
// do whatever else needs to be done
[self release];
}