0
MyAppDelegateはバックグラウンドを実行しているため、この間にいくつかのビューを更新する必要があるため、作成される各コントローラへの参照を保存しています。AppDelegateに保存されているコントローラの保持カウントを処理する方法は?
@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];
}
そして、これは、それを閉じるために、コントローラ内部で呼び出されます。MyAppDelegateコントローラで
- (void)dismissSelf
{
MyAppDelegate * app = [[UIApplication sharedApplication] delegate];
[app.currentSomethingController release];
app.currentSomethingController = nil;
[self dismissModalViewControllerAnimated:NO];
}
は、コントローラにメッセージを送信しています:
- (void)longRunningBackgroundTask {
[currentSomethingController performSelectorOnMainThread:@selector(updateData) withObject:nil waitUntilDone:YES];
}
私がProduct-> Analyzeを実行すると、「潜在的なリーク」と「間違った減少」の警告が表示されます。これを行う正しい方法や私のアプローチが大丈夫だとすれば、分析ツールにこれらの行を無視するように指示するにはどうすればよいですか?
私はプロパティがオブジェクトを解放していないので、オブジェクトを解放しないと思ったので、混乱は外部の読者だけではありませんでした。それを行う正しい方法を指摘していただきありがとうございます! –