XCode4.5和它的Constrints

来源:互联网 发布:朴素贝叶斯算法例子 编辑:程序博客网 时间:2024/06/06 02:42

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的勾选去掉即可。