藉由OS版本偵測的變數,我們來看一些語法的含義。
請參考下列的code:
請參考下列的code:
#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED
#ifdef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
/* compiler sets __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ when -miphoneos-version-min is used */
#define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__
#endif
#endif
我們一行一行看。
首先第一行是說,如果沒有定義__IPHONE_OS_VERSION_MIN_REQUIRED,那就執行下面的code。
第二行之後到倒數第二行,這是在__IPHONE_OS_VERSION_MIN_REQUIRED沒有被定義的情況下會執行的。
第二行是說,如果有定義__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__,那麼就(在第四行)定義__IPHONE_OS_VERSION_MIN_REQUIRED吧!
第四行是把__IPHONE_OS_VERSION_MIN_REQUIRED定義成__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__。
第三行是說只要miphoneos-version-min有使用,編譯器會設定好__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__。
結論:
- #ifndef:如果沒有定義,需搭配#endif
- #ifdef:如果有定義,需搭配#endif
- #define:定義,語法為#define X Y,意思是將X定義成Y
- __IPHONE_OS_VERSION_MIN_REQUIRED:做為定義最小需求的iOS版本,使用方法,例如:
__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_1
此乃表示最小版本需大於3.1版,可以使用__IPHONE_3_1此一關鍵字去尋找內部定義的版本變數。
留言
張貼留言