166

私はこれに非常に新しいです。私は、iPhoneプロジェクト「HelloWorld」のAppleのチュートリアルを段階的に実行しました。iPhone 5.0シミュレーターで実行したところ、クラッシュしました。

2012-11-02 14:46:06.782 HelloWorld [9880:c07] *キャッチされなかった例外'NSInvalidUnarchiveOperationException'が原因でアプリを終了しています、理由:'NSLayoutConstraintという名前のクラスをインスタンス化できませんでした'*最初のスロー呼び出しスタック:(0x14a2052 0xea2d0a 0x144aa78 0x144a9e9 0x32f7d7 0x32f 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(lldb)

誰かが何が悪かったのか教えてもらえますか?Xcode4.5を使用しています。

4

4 に答える 4

576

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

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

自動レイアウトをオフにする

于 2012-11-02T19:18:37.090 に答える
21

Xib ファイル (インターフェイス ビルダー ファイル) には、iOS 5 がサポートしていないAutoLayout 要素が含まれています。

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

于 2012-11-02T19:19:28.470 に答える
8

更新したい古いプロジェクトに取り組んでいたときに、このエラーに遭遇しました。「自動レイアウトを使用」チェックボックスを選択して制約の操作を開始しましたが、展開ターゲット設定を iOS 6 に更新するのを忘れていました。

于 2012-12-09T09:40:08.483 に答える
7

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

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

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

于 2012-11-02T19:19:04.660 に答える