1

UITextViewだけで構成されるアプリがあります。アプリが読み込まれると、キーボードが表示され、AccessoryViewがキーボードの上に読み込まれて閉じられます。

これは、アプリのロード時にキーボードをロードしたくないと判断するまではうまく機能しました。問題は、テキストを編集しようとすると、アプリがクラッシュすることです(EXC_BAD_ACCESS)。なぜそうなのかよくわかりません。これが私のコードです-アプリをクラッシュさせるパッセージがマークされています:

- (void)viewWillAppear:(BOOL)animated {

// Make the keyboard appear when the application launches.
[super viewWillAppear:animated];
// [textView becomeFirstResponder];} 

その後:

- (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView {


    // this crashes app if no keyboard is loaded in viewdidload:

        if (textView.inputAccessoryView == nil) {
        textView.inputAccessoryView = accessoryView;    
        self.accessoryView = nil;

}


    return YES;
}

最後のifステートメントをコメントアウトすると、アプリは機能します...しかし、accessoryViewがありません。InterfaceBuilderで何か間違ったことをした可能性はありますか?AccessoriesViewは、私のViewControllerの別のビューです。ただし、正しく接続されています(キーボードをオンにしてアプリを起動すると、完全に機能します)。

どんなアイデアでも大歓迎です。これが明らかな場合は申し訳ありませんが、私はまだ初心者であり、これらのことは大きな頭痛の種を引き起こします。

4

1 に答える 1

1

EXC_BAD_ACCESSエラーは、割り当てが解除されたオブジェクトにメッセージを送信しようとすると発生します。自動解放されたオブジェクトを返す便利なメソッドを使用する場合は、ivarを設定するときにretainを呼び出すようにしてください。

これが機能しない場合は、NSZombieEnabledを使用して、割り当て解除されたオブジェクトにメッセージを送信している場所を追跡することを検討できます。

私はあなたが見ることができるいくつかのガイドを見つけました:

http://www.fromconcentratesoftware.com/2007/08/09/nszombieenabled-for-the-debugger-adverse/

http://collat​​eraldamag3.blogspot.com/2009/11/iphone-tutorial-nszombieenabled-and.html

于 2011-03-11T22:40:34.320 に答える