私のUIViewControllerは、別のコントローラを呼び出すと解放されますか? 私は別のコントローラにプッシュするとコントローラのメモリを解放するには?私は40Mo以上を取って、LOW MEMORY(No leak)のためにアプリケーションを離れる。Iphone - プッシュ後にコントローラを解放しますか?
[self.navigationController pushViewController:[[MainListController alloc] init:self] animated:NO];
@interface MainListController : UIViewController
...
- (id)init: (id)ref;
私があったコントローラののdealloc init関数を呼び出す:
objc[70754]: FREED(id): message isEqual: sent to freed object=0xe216b0
Program received signal: “EXC_BAD_INSTRUCTION”.
- (ボイド)のdealloc {[スーパーのdealloc:
[ref dealloc];
私はこのエラーをしました];}
@Nicolas:上記のコードは、絶対に漏れています。 navigationControllerはあなたのコントローラを保持しており、あなたはそこにオートレリースせずにコントローラを作成しています。あなたはこのようにコントローラを押すたびに漏れてしまいます。あなたは次のようなことをしなければなりません:[self.navigationController pushViewController:[[[MainListController alloc] init:self] autorelease] animated:NO]; –
また、View Controllerのinit:self呼び出しのコードに渡した変数が保持されていないこと、または保持サイクルがあること、およびこのナビゲーションコントローラの作成方法や場所によっては漏れが発生する可能性があることも確認してください。 –
私はこのコントローラに戻って来ないので、私はメモリを失うことはありません。そのため、私はそれをリリースしたいのです!別の解決策がありますか? – NicoMinsk