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-> Analysisを実行すると、「潜在的なリーク」と「誤ったデクリメント」の警告が表示されます。これを行う正しい方法は何ですか、または私のアプローチが大丈夫だと仮定すると、これらの行を無視するように分析ツールに指示するにはどうすればよいですか?