2012-11-02 12 views
162

これは非常に新しいです。私は、iPhoneプロジェクト「HelloWorld」のステップごとに、Appleのチュートリアルのステップをたどった。私は、iPhone 5.0のシミュレータでそれを実行し、それが墜落:NSInvalidUnarchiveOperationException:NSLayoutConstraintという名前のクラスをインスタンス化できませんでした

2012-11-02 14:46:06.782 HelloWorld[9880:c07] * Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' * First throw call stack: (0x14a2052 0xea2d0a 0x144aa78 0x144a9e9 0x32f7d7 0x32f9af 0x32f6b7 0x23036d 0xd7e2c 0xd83a9 0xd85cb 0x38a73 0x38ce2 0x38ea8 0x3fd9a 0x10be6 0x118a6 0x20743 0x211f8 0x14aa9 0x138cfa9 0x14761c5 0x13db022 0x13d990a 0x13d8db4 0x13d8ccb 0x112a7 0x12a9b 0x1fed 0x1f15 0x1) terminate called throwing an exception(lldb)

は、誰かが何が悪かったのかを教えていただけますか?私はXcode 4.5を使用しています。

+0

xib/storyboardのオートレイアウト機能をオフにする必要があります – beryllium

答えて

575

デフォルトでは、Xcode 4.5で新しいiOSプロジェクトを作成すると、ストーリーボードまたはXIBがiOS 6.0の新機能であるAutolayoutを使用するように設定されます。 NSLayoutConstraintクラスはAutolayoutシステムの一部であり、古いバージョンのiOSには存在しません。

アプリを古いバージョンのiOSにデプロイする場合は、ストーリーボードまたはXIBをに変更する必要はありません。では、Autolayoutを使用してください。これは、ファイルインスペクタのチェックボックスです:

turning off autolayout

+29

キャプチャとトリミング。 Photoshopを使用して.movを.gifに変換しました。 –

+0

これはxibにも当てはまります! – virata

+0

これを行うと、メソッドが実装されていても、ビューの回転がポートレートからランドスケープに切り替わりません。ローテーションをまだしたい場合は、どのように問題を解決しましたか? 事前に感謝しています...素敵なgif ^^ – aGit

7

あなたはiPhone 6.0シミュレータでそれを実行する必要があります。あなたのエラー:

* Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint' * 

は、あなただけのiOS 6

21

あなたのXIBファイル(インタフェースビルダファイル)上で動作する自動レイアウトを、使っていることを示唆しているは、iOS 5がないサポートしています自動レイアウト要素が含まれています。

Xcodeで、.xibファイルに移動し、それぞれにAutoLayoutをオフにします。左側に「Use AutoLayout」というチェックボックスが表示され、チェックを外してもう一度やり直してください。 (これは、ファイルの所有者がある場合、左側のインスペクタの最初のタブの下にあります)が選択されています。

8

私が更新したい古いプロジェクトで作業していたとき、私はこのエラーに遭遇しました。私は制約を使用して作業を開始するために「Use Autolayout」チェックボックスを選択しましたが、展開ターゲット設定をiOS 6に更新するのを忘れていました。

関連する問題