我需要为新的iOS版本解决一些布局问题,并且有一个新方法,让我们称之为newMethodThatIsNotIniOS6,我可以使用代码来修复它们:
if ([self respondsToSelector:@selector(newMethodThatIsNotIniOS6)]) {
self.newMethodThatIsNotIniOS6 = PARAMETER;
}
此代码在Xcode 5中工作正常,但不会在Xcode 4中编译,因为该方法未定义。
现在,我在处理iOS6的新应用程序时注释掉了代码,但有没有办法让它在Xcode 4中编译?或者,我可以安全地在Xcode 5中编码,然后在我使用Xcode 4提交之前删除iOS7特定代码吗?
答案 0 :(得分:3)
您可以使用预编译宏排除代码,例如:
#ifdef __IPHONE_6_0
if ([self respondsToSelector:@selector(newMethodThatIsNotIniOS5)]) {
self.newMethodThatIsNotIniOS5 = PARAMETER;
}
#endif
这只包括您使用iOS 6+ SDK进行编译的方法,如果您使用iOS 5 SDK进行编译,则不会使用该方法。