2012-08-30 58 views
2

有沒有一種方法可以測試(使用預處理器)如果文件正在Xcode 4.4或更新的版本下編譯?或者,更具體地說,測試編譯器是否會自動調用@synthesize屬性,如果不是則拋出編譯錯誤?Xcode 4.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

+2

是啊,這是清潔檢查的功能,而不是編譯器的版本,因爲我WA這樣做。 –

+1

@BradLarson,但你的回答回答了問題+1的兩個部分之一。 – justin

2

,因爲這是提供與LLVM編譯器的4.x版本中,你應該可以使用以下方法來測試新版本足夠的存在:

#if __clang__ && (__clang_major__ >= 4) 
// New version code here 
#else 
// Fallback code for older version here 
#endif