XCode4.5和它的Constrints
1、iOS Deployment Target
刚装好XCode4.5.2的时候(之前一直用的XCode4.3.2),随便建了个工程,添加了一个UILabel,在模拟器中运行,一切正常。
但运行到iPad,提示如下信息
Xcode cannot run using the selected device.
No provisioned iOS devices are availablewith a compatible iOS version. Connect an iOS device with a recent enoughversion of iOS to run your application or choose an iOS simulator as thedestination.
这是因为
iOS Deployment Target 的选项为iOS 6.0,而我的iPad是iOS5.1的,所以将iOS DeploymentTarget改为iOS5.1就可以将程序运行到iPad了。
2、Constrints
1)但运行到iPad居然报如下异常:
*** Terminating app due to uncaughtexception 'NSInvalidUnarchiveOperationException', reason: 'Could notinstantiate class named NSLayoutConstraint'
*** First throw call stack:……
这是因为XCode4.5多了一个叫Constrints的东西,在iOS 6.0中才有,所以包含了Constrints的工程在低版本iOS设备运行的话,都会异常。
解决方法:在View的属性中,将UseAutoLayout的勾选去掉。
2)后来做项目在定制一个UILabel大小的时候,意外发现代码如下代码不起作用:
label.frame = CGRectMake(10, 10, 200,100); //_label是一个UILabel,这样设置后,它的大小居然一点都没变化。
好吧,还是Constrints在作怪,将UseAutoLayout的勾选去掉即可。