忽略xcode 5编译中的ios8代码

Mir*_*iro 3 xcode conditional-compilation

我有一个团队正在研究一些IOS代码.一位开发人员(我)拥有Xcode6-beta和几行IOS8特定代码.当另一个Xcode5的开发人员为IOS7构建它时,编译失败,因为他不存在IOS8 SDK.

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){
    // ios8 code
} else {
    // ios7 and less way
}
Run Code Online (Sandbox Code Playgroud)

有没有办法忽略基于SDK或Xcode版本的Xcode编译中的IOS8代码,以便编译?

Ric*_*hiy 5

是的,您可以使用指令执行此操作:

#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
// target is iOS
    #if __IPHONE_OS_VERSION_MIN_REQUIRED < 80000
    // target is lower than iOS 8.0
    #else
    // target is at least iOS 8.0
    #endif
#endif
Run Code Online (Sandbox Code Playgroud)

这类似于自动注释掉不需要的代码行.Compiller不包含存储在if语句中8.0特定部分的所有内容.