0

現在、私のアプリはポートレートのみをサポートする必要があります。概要/サポートされているデバイスの向きでは、ポートレートのみを選択したので、アプリが回転しないことを願っています. デバイスでアプリをテストしていたところ、突然次のエラーがランダムに発生しました。

[UIButtonContent deviceOrientationDidChange:]: unrecognized selector sent to instance

デバイスを何度か回転させたときに発生し、一貫性がなく、常に UIBUttonContent を超えているとは限りません。ポートレートのみを選択した場合、 deviceOrientationDidChange を呼び出さないか、無視する必要があると思いました。

また、アプリが EXC_BAD_ACCESS (code=1, address=something) でクラッシュすることもありますが、デバイスを回転させたときに発生するため、両方のエラーが関連していると推測しています。

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

4

3 に答える 3

0

私はずっと前にこの問題を解決しましたが、このケースで実際に何が私を助けたかを共有するのは良いことだと思います.

Instruments ですべてを試しても結果が得られなかった後、昔ながらのデバッグを開始しました。エラーの「場所」がわかったので、そのセクションのすべてのコードにコメントを付けました。私が正しかったのは、バグがいくつかの機能とともに消えたということです。その後、バグ行が表示されるまで「バイナリのコメント解除」(半分のコメント解除)を行いました。それはサードパーティのライブラリで、適切にリリースされていないオブジェクトがありました。

于 2012-06-03T11:43:31.130 に答える
0

で呼び出す必要があるクラスはありますdeviceOrientationDidChange:か? これが発生した場合、通常は、割り当てが解除されたオブジェクトへのダングリング参照があることを意味します。"Zombies" モードの Instruments を使用して、アプリのプロファイリングを試す必要があります。

于 2012-04-11T17:25:10.797 に答える