MyAppDelegate выполняет некоторые фоновые операции и в это время необходимо обновить несколько представлений, поэтому я сохраняю ссылку на каждый создаваемый контроллер.
@interface MyAppDelegate : NSObject <UIApplicationDelegate> {
SomethingController *currentSomethingController;
}
@property (nonatomic, retain) SomethingController *currentSomethingController;
Это сделано для открытия контроллера:
- (void)openSomethingController {
MyAppDelegate * app = [[UIApplication sharedApplication] delegate];
app.currentSomethingController = [[SomethingController alloc] init];
[self presentModalViewController:app.currentSomethingController animated:NO];
}
И это вызывается внутри контроллера, чтобы закрыть его:
- (void)dismissSelf
{
MyAppDelegate * app = [[UIApplication sharedApplication] delegate];
[app.currentSomethingController release];
app.currentSomethingController = nil;
[self dismissModalViewControllerAnimated:NO];
}
В MyAppDelegate контроллеры отправляют сообщения на контроллер:
- (void)longRunningBackgroundTask {
[currentSomethingController performSelectorOnMainThread:@selector(updateData) withObject:nil waitUntilDone:YES];
}
Если я выполняю Product-> Analyse, я получаю предупреждения о «потенциальной утечке» и «неправильном уменьшении». Каков будет правильный способ сделать это или предположить, что мой подход в порядке, как я могу сказать инструменту анализа игнорировать эти строки?