2009-07-29 10 views
0

に選択上のコードがクラッシュするコードです。私は理由を知りません... itemsArrayは "numberOfRowsInSection"のような他のメソッドのためにアクセスされます。なぜそれはすべて急に参照解除される(私はそれが起こっていると仮定します)。ここオブジェクティブC NAVコントローラここで

が出力され

[セッションが2009年7月28日午後10時11分50秒-0600で開始。] 警告(「未知のロード命令の0x22を読み取ることができません」のいずれかで、最大何知らない) - 無"NSUserDefaults-Optimize.m:81"の場所が見つかりました GNU gdb 6.3.50-20050815(Appleのバージョンgdb-966)(2009年3月10日02:43:13 UTC 2009) Copyright 2004フリーソフトウェア財団、 GDB GNU一般公衆利用許諾契約書の対象となるフリーソフトウェアであり、あなたは です。特定の条件の下でそれを変更したり、そのコピーを頒布することを歓迎します。 "show copying"と入力して条件を確認します。 GDBの保証は一切ありません。詳細については、「show warranty」と入力してください。 このGDBは、「I386-リンゴ・ダーウィン」として設定された.sharedlibrary適用負荷-ルールすべて は、未知のロードコマンドの0x22 未知のロードコマンドの0x22を読み取ることができません 不明loadコマンドを読み取ることができませんを読み取ることができませんでし56173. をプロセスにアタッチ未知のロードコマンドを読み取ることただし0x22 できないただし0x22 不明loadコマンドを読み取ることができませんただし0x22 未知のロードコマンドの0x22を読み取ることただし0x22 できない未知のロードコマンドを読み取ることただし0x22 できない未知のloadコマンドを読み取ることができません 不明loadコマンドを読み取ることができませんただし0x22 未知のロードコマンドを読み取ることができません0x22 未知のロードコマンドを読み取ることができません0x22 未知のロードコマンドを読み取ることただし0x22 できない未知のloadコマンドを読み取ることができませんただし0x22 不明loadコマンドを読み取ることができませんただし0x22 未知のロードコマンドの0x22を読み取ることただし0x22 できない未知のloadコマンドを読み取ることができません 未知のロードコマンドの0x22を読み取ることができません できません未知のロードコマンドを読み取る0x22 未知のロードコマンドを読み取ることができません0x22 2009-07-28 22:11:55.545 Send2iPhone [56173:20b]ロードアイテム 2009-07-28 22:11:55.629 Send2iPhone [56173:20b] cellforrow 0 2009-07-28 22:11:55.634 Send2iPhone [56173:20b] value =(null) 2009-07-28 22:11:55.644 Send2iPhone [56173:20b] cellforrow 1 2009-07-28 22 :11:55.645 Send2iPhone [56173 :20b] value =(null) 2009-07-28 22:11:55.654 Send2iPhone [56173:20b] cellforrow 2 2009-07-28 22:11:55.658 Send2iPhone [56173:20b] value =(null) 2009-07-28 22:11:55.659 Send2iPhone [56173:20b] cellforrow 3 2009-07-28 22:11:55.663 Send2iPhone [56173:20b] value =(null) 2009-07-28 22:11: 57.724 Send2iPhone [56173:20b]行= 0 プログラム受信信号: "EXC_BAD_ACCESS"。 ザ・デバッガはitemsArrayのの所有権を主張していないので、それはいくつかの点で自動解放プールによって解放されています状態0(GDB)

答えて

2

チャックは正しいです、あなたは配列を保持していません。

一つの修正はitemsArrayのヘッダ

@interface RootViewController : UITableViewController { 
    NSArray *itemsArray; 
    NSString *test; 

} 

//add the property directive for itemsArray and tell it to use retain 
@property (nonatomic, retain) NSArray *itemsArray; 

と.Mで

@implementation RootViewController 
// add the synthesize for itemsArray property 
@synthesize itemsArray; 


// when you set the value of itemsArray use self.itemsArray this will properly retain the array 
self.itemsArray = [NSArray arrayWithContentsOfURL:plistURL]; 


// release the itemsArray in dealloc 
- (void)dealloc { 
    [itemsArray release]; 
    [super dealloc]; 
} 
で非常にコントローラのプロパティにすることです
2

で を殺す

を終了し終了しました。適切に保持して解放するアクセサを使用して変数を設定することで、それを解決できます。また、そうでない場合は、 Cocoa memory management guidelinesをお読みください。

関連する問題