Could not instantiate class named NSLayoutConstraint
Xcode4.5.2でプロジェクトを作成して、その後iOS5.0にターゲットを変更するとNSInvalidUnarchiveOperationExceptionと共に表題のエラーが発生する。
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'
google先生にお聞きすると既知であり、既に様々な方々が対応されているようだ。
Xcodeのウィザードでプロジェクトを生成するとデフォルトでNSLayoutConstraintと呼ばれるレイアウト用のクラスがInterfaceBuilderで使われるが、それはiOS5はサポートしていないため、同エラーが発生してしまう。
解決策は、IntefaceBuilderで同NSLayoutConstraintクラスを使った機能を無効にすることだが、この指定もinterfaceBuilderの"Identity Inspaector"から行う。
中段以降にある"use Autolayout"のチェックを外せばOK。
プロジェクトをクリーンしてビルドし直せば、iOS5をターゲットにしても動くはずだ。
にしても…ターゲットによって自動的にOn/Offして欲しいところだな。