0

今、私のアプリはポートレートのみをサポートしています。オンサマリー/サポートされているデバイスのオリエンテーション私は自分のアプリが回転しないことを望んでいるので、ポートレートを選択しました。私は、デバイス上のアプリをテストしていたし、突然、私はランダムに、次のエラーを取得しています:認識できないセレクタがdeviceOrientationDidChangeのインスタンスに送信

[UIButtonContent deviceOrientationDidChange:]: unrecognized selector sent to instance 

それは、私は時々、デバイスを回転させたときに、たまたま一致していない、とUIBUttonContentの上に常にではありません。私は、ポートレイトのみを選択した場合、deviceOrientationDidChangeを呼び出すべきではない、または無視する必要があると思います。

私のアプリはEXC_BAD_ACCESS(コード= 1、アドレス=何か)でクラッシュしますが、デバイスをローテーションすると、両方のエラーが関連していると推測されます。

フィードバックはありません。すべての例外ブレークポイントが呼び出されていないため、デバッグが難しいので、どこで、なぜこれが起こっているのか正確にはわかりません。これをデバッグする方法に関するアイデアは大歓迎です。

+0

もう少しコードとすることができます... – SomaMan

+0

私は知っていますが、すべてのアプリで発生するので、ここに入れるコードはわかりません。 – clopez

答えて

0

私はずっと前にこの問題を解決しましたが、このケースで私が実際に助けてくれたことを分かち合うのは良いことだと思います。

私はInstrumentで結果が得られなかったものすべてを試した後、古い学校のデバッグを開始しました。私は「どこで」エラーが起こったのかという考えを持っていたので、そのセクションのすべてのコードをコメントしました。私は正しい、バグはいくつかの機能と共に失われた。その後、私はバグ行が出るまで、「バイナリのコメントを外す」(半分のコメントを外す)を作った。それは第三者の図書館で、私は適切にリリースされていないオブジェクトを持っていました。

0

deviceOrientationDidChange:で呼び出すクラスがありますか?これが起きると、通常、解放されたオブジェクトへの参照がありません。 「ゾンビ」モードでインストゥルメントを使用してアプリをプロファイリングする必要があります。

+0

xcode 4.3.2に更新され、Instrumentsが消えて最初に修正されました。 – clopez

+0

http://stackoverflow.com/questions/9541153/where-did-instruments-go-in-xcode-4-3 – clopez

+0

私は通常、Product => ProfileをXCodeから実行します。 –

1

これらは、メモリ管理エラーの古典的な兆候です。何らかのオブジェクトを過剰にリリースしていて、他のオブジェクトがそれを参照している間に割り当てが解除されています。後で何かメッセージがあります。場合によっては、新しいオブジェクトが代わりに行われますが、そのオブジェクトは受信したメッセージを理解しません。他のケースでは、有効なオブジェクトがなく、クラッシュします。

ゾンビ器具を使用して過剰放出を見つけるアドバイスを2番目に編集しました。

+0

私はARCを使用しているのでこれは奇妙です。 – clopez

関連する問題