设置较低的部署目标时无法编译包含iOS 5方法的代码

时间:2011-11-18 14:32:24

标签: iphone objective-c ios5 uinavigationbar weak-linking

对于所有新的iOS 5方法都不是这样,但我发现如果部署目标低于5.0,调用UINavigationBar的setBackgroundImage:forBarMetrics:方法将触发'找不到实例方法'警告。这是即使我链接SDK 5.0。

更重要的是,用作参数的枚举UIBarMetrics被报告为“未声明的标识符”,这将触发编译器错误。

知道为什么会这样吗?我意识到如果部署目标低于5.0但代码将无效,但我正在检查UINavigationBar是否在运行时响应该选择器,所以一切都应该没问题。我不明白编译器错误。

编辑: 这仅在编译设备时以及实际插入设备时(我测试的设备运行iOS 5.0.1)才会发生。

1 个答案:

答案 0 :(得分:2)

嗯,我想出了这个谜。我设法通过删除SDK 4.3解决了这个问题(我有一个从Xcode 3复制过来,因为默认情况下它没有使用最新的Xcode + SDK包而我将它用于另一个遗留项目)。

我仍然无法解释为什么两个SDK都会导致错误,因为我正在使用最新的SDK进行编译。