2011-07-06 20 views
0

私のアプリケーションにfacebook apiを統合しました。すべての壁の値を配列に格納して、テーブルビューのNIBファイルに表示しています。しかし、ログインした後は、main.mのEXC_BAD_ACCESS例外が発生しています。iphoneにnibファイルを読み込む際にEXC_BAD_SIGNALを入力します。

int retVal = UIApplicationMain(argc、argv、nil、nil);

私は値をトレースすることができます。ここに、nibファイルをロードするコードを示します。

facebookData=[[[[NSArray alloc]initWithArray:result]retain]autorelease]; 
Fave *bController = [[[Fave alloc] initWithNibName:@"Fave" bundle:nil]autorelease]; 
[self.navigationController pushViewController:bController animated:YES]; 
[bController release]; 

ここで、facebookdataは、main.mファイルで定義された配列です。私はこの配列に次のFave nibファイルのwallの値を格納しています。配列から値を表示しています。なぜnibファイルのロード中にこのエラーが発生するのですか?

おかげで、事前

+0

...コーディング

ハッピー..変更しますしなさい。 – uvesten

+0

@kay ..質問タイトルが表示されません。論理を理解する。私の以前の質問では、私は配列initの問題を抱えていました。このスレッドはmain.mファイルに問題があります。 –

+0

@uvesten、私はこの問題がFaveクラスで発生していると推測しています。私がテーブルリストに間違っているかもしれないが、私が間違っていた場所を推測していない。 –

答えて

1

にあなたはフェイブビューコントローラを自動解放していると、再び、あなたはそれをリリースしています。 いけないあなたが保持しても...ザッツ悪い自動解放されているのはなぜ

この

Fave *bController = [[Fave alloc] initWithNibName:@"Fave" bundle:[NSBundle mainBundle]]; 
[self.navigationController pushViewController:bController animated:YES]; 
[bController release]; 

が好きですかそれを行います。あなたのフェイブ場合

facebookData=[[NSArray alloc]initWithArray:result]; 
Fave *bController = [[Fave alloc] initWithNibName:@"Fave" bundle:nil]; 
[self.navigationController pushViewController:bController animated:YES]; 
[bController release]; 

あなただけ[bController release]を解放することができ はちょうど...あなたはfacebookDataは、このような

+0

私は両方の場所で変更を加えました。それでもなお同じ結果になる。私はコンソール[2937スレッド0x207に切り替える]でこれを見ています。 –

+0

私はfaveクラスのテーブルリスト(NSMutableArray * tableList)のautoreleaseを与えるべきですか? ? –

+0

ありがとうございます。それは今働いている。私のテーブルリストに問題がありました。私はdealloc関数でそれを解放します。今これは働いています。 –

1

行ってください、あなたのコードをリリースする必要がいけない将来的にはこの

facebookData=[[NSArray alloc]initWithArray:result]; 

のように与えますコントローラにメモリリークが含まれていません...

あなたはアレイを保持していて、自動解放していますが、これは悪いハビットです。それは、より多くのデバッグデータをください追加

関連する問題