2
有沒有一種方法可以測試(使用預處理器)如果文件正在Xcode 4.4或更新的版本下編譯?或者,更具體地說,測試編譯器是否會自動調用@synthesize
屬性,如果不是則拋出編譯錯誤?Xcode 4.4或更新版本的預處理器檢查
有沒有一種方法可以測試(使用預處理器)如果文件正在Xcode 4.4或更新的版本下編譯?或者,更具體地說,測試編譯器是否會自動調用@synthesize
屬性,如果不是則拋出編譯錯誤?Xcode 4.4或更新版本的預處理器檢查
您可以使用此以測試功能:
#if (defined(__clang__) && __has_feature(objc_default_synthesize_properties))
#warning Got it
#else
#error omg no auto synthesis
#endif
的功能的完整列表記錄在這裏:http://clang.llvm.org/docs/LanguageExtensions.html
,因爲這是提供與LLVM編譯器的4.x版本中,你應該可以使用以下方法來測試新版本足夠的存在:
#if __clang__ && (__clang_major__ >= 4)
// New version code here
#else
// Fallback code for older version here
#endif
是啊,這是清潔檢查的功能,而不是編譯器的版本,因爲我WA這樣做。 –
@BradLarson,但你的回答回答了問題+1的兩個部分之一。 – justin