0

对于新的 iOS 版本,我需要解决一些布局问题,并且有一个新方法,我们称之为 newMethodThatIsNotIniOS6,我可以使用代码来修复它们:

if ([self respondsToSelector:@selector(newMethodThatIsNotIniOS6)]) {
    self.newMethodThatIsNotIniOS6 = PARAMETER;
}

此代码在 Xcode 5 中运行良好,但在 Xcode 4 中无法编译,因为未定义该方法。

现在,我在为 iOS6 开发新应用程序时注释掉了代码,但是有没有办法让它在 Xcode 4 中编译?或者,我可以安全地在 Xcode 5 中编码,然后在使用 Xcode 4 提交之前去掉 iOS7 特定的代码吗?

4

1 回答 1

3

您可以使用预编译宏排除代码,例如:

#ifdef __IPHONE_6_0
if ([self respondsToSelector:@selector(newMethodThatIsNotIniOS5)]) {
    self.newMethodThatIsNotIniOS5 = PARAMETER;
}
#endif

这将仅包括您使用 iOS 6+ SDK 编译的方法,如果您使用 iOS 5 SDK 编译,则不会使用该方法。

于 2013-08-07T15:06:04.160 回答