为什么Xcode编译器没有警告我部署目标的无效方法?

时间:2012-04-12 19:46:07

标签: iphone ios xcode

我有一个带有最新SDK的Xcode(4.3.2)项目,我希望iOS 4.0用户能够运行。所以在项目设置中,我已将Deployment Target值设置为iOS 4.0。目标设置中也是如此。

但是,我刚刚意识到我的代码正在使用iOS 5+ API调用。这一个:

[self.tabController.tabBar setBackgroundImage:tabBackground];      //Invalid in iOS 4.x ???

编译器没有给我任何警告。不应该吗?在iOS 4.0设备上执行时会怎么做?可悲的是,我目前还没有人进行测试。这让我非常担心还有其他地方发生了同样的事情,我的程序现在无可救药地与iOS 5绑定。

1 个答案:

答案 0 :(得分:3)

除非您明确将项目的“基本sdk”设置设置为较低的iOS版本,否则编译器不会向您发出警告。

不幸的是,最新的Xcode版本似乎没有包含5.1版之前的任何iOS SDK,所以你不能在那里选择4.0。我建议保留iOS 4.0 SDK附带的第二次安装Xcode 3.x,并使用它来确保您没有使用较新SDK版本的方法。最后,如果您对iOS开发非常认真,并且支持4.0是必须的(为什么?),您应该在尚未升级到iOS 5.0的设备上进行测试(例如ebay上的旧iPod touch)。