web-dev-qa-db-ja.com

NSInvalidUnarchiveOperationException:NSLayoutConstraintという名前のクラスをインスタンス化できませんでした

私はこれに非常に新しいです。 iPhoneプロジェクト「HelloWorld」について、Appleのチュートリアルを順を追って説明しました。 iPhone 5.0シミュレータで実行するとクラッシュしました。

2012-11-02 14:46:06.782 HelloWorld [9880:c07] *キャッチされない例外 'NSInvalidUnarchiveOperationException'によるアプリの終了、理由: 'NSLayoutConstraintという名前のクラスをインスタンス化できませんでした*最初の呼び出しスタック:例外(lldb)を投げると呼ばれる(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の)終了

誰かが何が間違っていたのか教えてもらえますか? Xcode 4.5を使用しています。

161
user1703590

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

IOSの古いバージョンにアプリをデプロイする場合は、ストーリーボードまたはXIBをnot autolayoutを使用するように変更する必要があります。ファイルインスペクターのチェックボックスです。

turning off autolayout

574
rob mayoff

Xibファイル(Interface builderファイル)には、iOS 5がnotをサポートするAutoLayout要素が含まれています。

Xcodeで、.xibファイルに移動し、各ファイルでAutoLayoutをオフにします。左側に「AutoLayoutを使用」というチェックボックスがあるはずです。チェックを外して再試行してください。 (これは、ファイルの所有者がいる場合、左側のインスペクターの最初のタブの下にあります)を選択します。

21
WDUK

更新したい古いプロジェクトで作業していたときに、このエラーに出くわしました。 「自動レイアウトを使用」チェックボックスを選択して制約の操作を開始しましたが、Deployment Target設定をiOS 6に更新するのを忘れていました。

8
jbryant

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

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

IOS 6でのみ機能する自動レイアウトを使用していることを示します。

7
yeesterbunny