と意見を変えたときに、私はこのコードのチャンクを使用して私のアプリでビューを切り替えるしようとしている:EXC_BAD_ACCESSエラーPresentModalViewController
self->variable1 = [[NSNumber alloc] initWithInt:0];
self->variable2 = [[NSMutableArray arrayWithCapacity:1];
self->variable3 = [[NSMutableArray arrayWithCapacity:1];
[self presentModalViewController:titleScreen animated:YES];
私が割り当てられた変数ラインのすべてをコメントアウトした場合、コードは正常に動作します。コード内の1行だけを残すと、 "EXC_BAD_ACCESS"エラーが発生してクラッシュします。なぜこうなった?変数はまったく使用されておらず、後で使用するために宣言されています。私はどちらの行にもコンパイルエラーを表示しません。私は間違って何をしていますか?
更新日:
ご協力いただきありがとうございます。私は自分の変数を@ property/@ synthに宣言してコードを整理する方法を変更しますが、問題を修正しませんでした。私はそれを修正しました。これに
self.variable1 = [[NSNumber alloc] initWithInt:0];
:私はこれからのコードを変更し
self.variable1 = [NSNumber alloc];
[self.variable1 initWithInt:0];
、それが働きました!誰かがなぜこれが働いて、最初の行がしなかったのか説明できますか?
更新:
私に私の邪悪な方法を示すためにあなたのピーターHoseyありがとうございます。今回は固定されていると確信しています。私は自分の変数を格納していました。
-(void)release
xCodeは必要なときにリリースされるとは思いませんでした。私はすべての変数リリースを
に移動しました-(void)Destroy
私はMYコマンドですべてをリリースすることができます。今すぐコードが動作します。再度、感謝します!
- Objective-Cのプロパティを参照する>オペレータは奇妙に思えます。 –
変数はクラス内のプロパティとして宣言されていますか?アクセサメソッドを合成するか、少なくともそれらを正しく実装しましたか? 'self'を使うとsetterメソッドが呼び出されるので、問題が内部にある可能性があります。 –
'self.variable1 =;(' '@のproperty'と' @のsynthesize'を想定)**セッターを呼び出すことになります。 'self-> variable1 = ;を使うと、**はできません**。完全に合法的な構文( '@ public' ivarsを前提とする)ですが、Objective-Cの良い習慣ではありません。 –
gschandler