2010-03-12 60 views
0

兩個問題:iphone - 編譯條件語句

這個代碼

#ifdef __IPHONE_3_0 
    // iPhone 3.0 specific stuff 
#else 
    // iPhone 2.2 specific stuff 
#endif 

編譯爲iPhone的特定版本的特定代碼。這怎麼能轉化爲編譯一系列設備?例如:如果iphone版本< 3.1或者版本> = 3.2,所以一個...

2)我在哪裏可以獲得Xcode允許的所有條件列表?

感謝您的任何幫助。

回答

1

這些定義位於Availability.h中,位於您使用的任何SDK中。例如,你可以找到在

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h 

作爲一個說明爲3.0模擬器版本,它很容易從彈出突出它們,右擊,並選擇「跳轉到」查詢像__IPHONE_3_0常數上菜單。

Availability.h中,標題本身詳細描述瞭如何爲各種版本進行選擇性編譯。例如,編譯的代碼只有在iPhone OS版本大於3.0,你可以使用

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0 
// Your code here 
#endif 

注意,這是確定什麼在編譯時包括,而不是基於什麼版本選擇性地激活代碼應用程序正在運行的操作系統。

+0

謝謝!你是男人! – SpaceDog 2010-03-12 16:48:07