2011-01-31 7 views
0

私はNSMutableString varを持っています。これも合成しました。変数にアクセスする -

これは私がIBActionを呼び出し、このメソッド内のvar値にアクセスしようとしていた上のボタンを持っているviewDidLoad

NSLog(@"Var val is %@@",curr_rep_date); 

に設定されます。

-(IBAction) moreDetails{ 
    NSLog(@"INSIDE IBACTION var val is %@",curr_rep_date); 
} 

しかし、いくつかの理由で、アプリのクラッシュ(Program received signal: “EXC_BAD_ACCESS”.)

+0

「curr_rep_date」とは何ですか? – WrightsCS

+0

使用しているクラスの宣言とコードの基礎を教えてください。私は通常メンバー変数、@property、@synthesizeを持っているので、それらのどれかが欠けていると問題が発生する可能性があります。 – TahoeWolverine

+0

これは、私がvarプロパティをどのように宣言したかです。 – testndtv

答えて

0

あなたは、おそらくあなたはインスタンス変数に所有していないオブジェクトを格納しているので、あなたは再び後でそれを取得しようとするとき、それはあなたがそれを必要と知らなかったので、それがなくなっています。

memory management guideには、この権利を得るために必要な簡単なルールが用意されています。

+0

メモリリークのためEXC_BAD_ACCESSですか?また、私がvarをリリース/自動リリースしない場合には、それは問題ではありません。私は後で問題になることができる必要があるvarを解放することを意味するが、それはまた、他の方法ラウンドかもしれない? – testndtv

+0

@hmthur:いいえ、反対(おそらく)のためです。メモリリークは、メモリの一部が永久に割り当てられている場合です。この場合、オブジェクトの割り当てが早すぎます。 – Chuck

+0

はい、EXC_BAD_ACCESSをseg-faultまたはnull参照例外と考えます。注意しなければならないことの1つは、コントロールがUIに戻ってくると、オブジェクトが自動解放することがあることがあります。これは、ボタンをクリックするのを待っている場合は確かです。 – TahoeWolverine

2

はあなたが作成するときは、(うまくいけば、オブジェクトを保持)セッターを使用するか確信している、私は問題を解決する助けてくださいオブジェクトを作成するか、自動リリースされていないオブジェクトを作成しますか?

を選択してください。

self.curr_rep_date = [NSMutableString string]; 

curr_rep_date = [[NSMutableString alloc] init]; 
+0

ok .. curr_rep_date = [[NSMutableString alloc] init]に行を追加しました。 してもう一度お試しください。しかし、まだアプリはクラッシュしています。 – testndtv

+1

意味を理解せずに行を追加するだけではありません。おそらく、あなたがしたことは、クラッシュを維持しながら漏れを作り出すことです。 – bbum

関連する問題