2

私のiOSアプリはiOS5とiOS6で動作しますが、6の機能に焦点を当てています。最近iOS 5.1シミュレーター(Base SDKは5.0)でアプリをテストしようとしましたが、ボタンをタップするまでは正常に動作するようでした。別のクラスの新しいViewControllerを表示します。この時点でクラッシュし、出力ログにはこれだけが残ります。

objc[3063]: EXCEPTIONS: throwing 0x9e85510 (object 0x9e84780, a NSException)
objc[3063]: EXCEPTIONS: searching through frame [ip=0x6d6a19 sp=0xbfffe020] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: searching through frame [ip=0x223dd83 sp=0xbffff200] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: unwinding through frame [ip=0x6d6a19 sp=0xbfffe020] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: unwinding through frame [ip=0x223dd83 sp=0xbffff200] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: handling exception 0x9e854f0 at 0x223de16
objc[3063]: EXCEPTIONS: rethrowing current exception
objc[3063]: EXCEPTIONS: searching through frame [ip=0x223dddf sp=0xbffff200] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: terminating
objc[3063]: EXCEPTIONS: searching through frame [ip=0x158eeed sp=0xbffff190] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: catch(id)
objc[3063]: EXCEPTIONS: unwinding through frame [ip=0x158eeed sp=0xbffff190] for exception 0x9e854f0
objc[3063]: EXCEPTIONS: handling exception 0x9e854f0 at 0x158eeff

それでおしまい。また、ロードされるクラスのヘッダーと実装にブレークポイントを設定しましたが、ブレークポイントがヒットすることはありません。これは、ビューをロードする前にアプリがクラッシュしていることを意味します。

私はこのようなものを見たことがありません、しかし私はいくつかの調査をしました、そしてグーグルはNSArraysとNSPredicate(私のクラスが持っている)に関連するいくつかのことを見つけました、しかし私はビューが決してロードされないのでそれらの解決策を除外しました-それでどのようにまだ割り当て/作成されていないNSArrayがアプリをクラッシュさせる可能性はありますか?

ヒント、回答、ヘルプをいただければ幸いです。

編集
私のプロジェクトは以下を使用します:

  • ストーリーボード
  • Xcode 4.5
  • アーク
  • ベースSDKはiOS5.0です

余分なエラーログやデバッグメッセージなどはありません。以上が私が得るすべてです。また、問題があると思われる特定のステートメントの周囲の条件を使用してみ@try / @catchましたが、これらのステートメントは呼び出されなかったか、例外をスローしませんでした。

私の(id)initメソッドも呼び出されません。

私はこれがXcode4コンパイラの奇妙な問題の1つであると再び考え始めています...

編集:自動レイアウトが無効になっていることも確認しました(これが無効にするのに適切な場所かどうかはわかりませんが、これは[ナビゲーター]> [ファイルインスペクター]にあります):

ここに画像の説明を入力してください

4

1 に答える 1

0

私はまだこのエラーを本当に理解していませんが、Crittercismと呼ばれるサードパーティのクラッシュ報告 SDK を使用して、バグを見つけました:

iOS 6 以降でのみ利用可能な UICollectionView を初期化しようとしていました。奇妙な点は、以前のビルドでは UICollectionView を使用し、5.1 シミュレーターでプロジェクトを正常に実行していたため、 Xcode がランダムにこれについて通知することを決定したように見えることです (もちろん、TableView の代わりにコードを使用しました)。init私には、コンパイラがorviewDidLoadメソッドにさえ到達しなかったのは奇妙に思えます。

この問題は、Xcode 4.5 (開発者ではなくリリース) から 4.5.1 に更新した後にのみ発生しました。

于 2012-10-14T00:53:33.767 に答える