我有一个带有最新 SDK 的 Xcode (4.3.2) 项目,我希望 iOS 4.0 用户能够运行它。所以在项目设置中,我将部署目标值设置为 iOS 4.0。在 Targets 设置中也是如此。
但是,我刚刚意识到我的代码正在使用 iOS 5+ API 调用。这个:
[self.tabController.tabBar setBackgroundImage:tabBackground]; //Invalid in iOS 4.x ???
编译器没有给我任何警告。不应该吗???在 iOS 4.0 设备上执行时会发生什么?可悲的是,我目前没有一个可以测试。这让我非常担心在其他地方也会发生同样的事情,而我的程序现在已经无可救药地与 iOS 5 绑定(bind)了。
Best Answer-推荐答案 strong>
除非您将项目的“base 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 ..)。
关于iphone - 为什么 Xcode 编译器没有警告我关于部署目标的无效方法?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/10130655/
|