備忘録:NSLayoutConstraint を無効にする

遅めの夏休みをとっているうちにiOS6やiPhone5のリリースが発表になりました。旅行の前から予想されていたのですが、意外とリリース日が早い事に驚いています。
前々から気になっていたのがiOS6対応のxcodeではInterface BuilderでUIViewに何かを追加すると、必ずNSLayoutConstraintが埋め込まれ、iOS5.0などのエミュレータで実行するとExceptionが発生してしまう事でした。

2012-09-16 07:13:14.395 iOS6Test05[2178:c07] *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'
*** First throw call stack:
(0x176c052 0x116cd0a 0x1714a78 0x17149e9 0x3307d7 0x3309af 0x3306b7 0x23136d 0xd8e2c 0xd93a9 0xd95cb 0x39a73 0x39ce2 0x39ea8 0x40d9a 0x289b 0x119d6 0x128a6 0x21743 0x221f8 0x15aa9 0x1656fa9 0x17401c5 0x16a5022 0x16a390a 0x16a2db4 0x16a2ccb 0x122a7 0x13a9b 0x26f2 0x2625)
terminate called throwing an exception(lldb)

これを何とかしないと新たに作るプロジェクトで古いiOSに対応出来なくなってしまうと思ったのですが、やはり解決策がありました。忘れないうちに備忘録として残しておきます。

File InspectorでStory Boardを開き、”Interface Builder Document”セクションの”Use Autolayout”をオフにすれば終わりです。

 

さてiOS6βGM用のxcodeβGMもリリースされて、4inch iPhoneのシミュレータも付いて来ました。正式に新しい画角のiOSデバイスが出るわけですが、WWDCのセッションやxcodeのβシードを見ているとNSLayoutConstraint なるものが出て来ていましたので十分予想は出来たわけです。

で、xcodeのβで気になっていたのモノの一つがこのNSLayoutConstraint。これによって今後も新しい画角のiOSデバイスが出て来ても、あるていど柔軟にアプリが対応出来るようになったわけですね。

 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

CAPTCHA


WP-SpamFree by Pole Position Marketing