仅当 Base SDK 为 7.0 或更高版本时,是否有任何预处理器宏来编译某些代码部分?“__IPHONE_7_0”定义的常量似乎与 iOS 开发目标相关联(而不是与基础 SDK 相关联)。
我正在使用安装了 iOS 7 和 iOS 6.1 的 XCode 5。
我问这个问题的原因是我目前正在将应用程序从 iOS 6 转换到 iOS 7。有很多事情需要调整,我目前仍然想用 iOS 6.1 作为基础 SDK 编译我的应用程序(并且与开发目标 iOS 6.0),但已经想添加一些我在使用 iOS 7 SDK 编译时需要的代码,但如果基本 SDK 是 iOS 6.1,则不会编译。
例子:
if ([_tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[_tableView setSeparatorInset:UIEdgeInsetsZero];
}
上面这段代码不能用 iOS 6.1 基础 SDK 编译,因为它抱怨 setSeparatorInset 没有为 UITableView 定义。因此,我想将这段代码包含在预处理器指令中,有条件地基于基础 SDK。