2011-01-17 13 views
2

スプリットビューアプリケーションを含むiPhoneアプリケーションのデバッグ中に、左側のポップオーバーを起動し、UINavigatorControlを右側の詳細ビューとして起動しています。水平の風景。iPhoneが潜在的にラインに割り当てられたオブジェクトのリーク...

「電位線に割り当てられたオブジェクト(何でも)の漏れとに格納された 『MasterView』

次のように読み取り、どのライン:

Iは、エラーを解決する問題を抱えてい

MasterViewController *masterView = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil andArrayOfTags:[self arrayOfButtonTags:self.language]]; 

とエラーは、この行でポップアップ表示されます(ちなみにダウン数行)

SplitViewDelegate* splitViewDelegate = [[SplitViewDelegate alloc] init]; 

メモリリークをダブルクリックすると、詳細情報が表示されます(青い矢印など)。

masterView宣言上記数行、ステートメント

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsChanged:) name:NSUserDefaultsDidChangeNotification object:nil]; 

リンク

方法の拡張メッセージ青色MasterViewControllerに矢印...ラインがでObjective-Cのオブジェクトを返します+1保持カウント(所有参照番号)

これは上のsplitViewDelegate行に青色の矢印で表示されます。

私はこのエラーをクリアする方法がわかりません...誰もこれについて考えていますか?私はコードを理解していると思うが、私は客観的なCに新しい(しかし、他の言語での経験がある)ので、これを少し歩いていくことが最も役立つだろう。

答えて

4

通知センターと分割ビューの行は、問題とは関係ありません。彼らはちょうどXcodeが警告を出すことを決めた境界です。エラーを修正するには、完了したらmasterViewを解放してください。プロパティをウィンドウに表示したり、プロパティをウィンドウに表示したりすると、解除されていないreleaseはそれらのプロセスに保持されているので安全に呼び出すことができます。

+0

私はちょうど答えを見直す前に同じことを考えました:)私は[masterview release]と[navController release]を追加しました。 doh :)とにかく私はあなたが質問に答える時間を取ったという事実に感謝するので、私はあなたにチェックマークを与えるでしょう!乾杯 – djeddiej

4

iPhoneメモリ管理の素晴らしい世界へようこそ。

いつでもあなたはそれを解放することを確認する必要があります。あなたは次のようになり、自動解放、使用しない限り:

MasterViewController *masterView = [[[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil andArrayOfTags:[self arrayOfButtonTags:self.language]]autorelease]; 

ここ
SplitViewDelegate* splitViewDelegate = [[[SplitViewDelegate alloc] init]autorelease]; 

を今私ができるより良いメモリを使用する方法について説明し、本当に良い概要です:http://interfacelab.com/objective-c-memory-management-for-lazy-people(約暴言を無視最初のHN)

あなたの問題を解決するのに役立つことを願っています。

関連する問題