2014-10-30 72 views
0

一個簡單的問題相關的宏定義的定義:的宏觀

enter image description here

如何解決此問題,THKS〜

+0

#如果是,你喂預處理指令碼。預處理器不評估語句,它只是粘貼令牌。 – CodaFi 2014-10-30 04:49:37

回答

0

你可以用下面的宏只是把這一錯誤更換塊關:

#define MBLabelAlignmentCenter __SYSTEM_VERSION_IT >= 7.0 ? NSTextAlignmentCenter : UITextAlignmentCenter

0

預處理條件宏只接受編譯時間常數e Xpressions的。您可以在編譯時解析的#define部分。 #if只有在條件是可以在編譯時確定的情況下才起作用。它不能用於基於運行應用程序的環境在運行時更改行爲。

2的方法來解決:

#define MBLabelAlignmentCenter __SYSTEM_VERSION_IT >= 7.0 ? NSTextAlignmentCenter : UITextAlignmentCenter 

或者使用普通的if else代碼:

if(__SYSTEM_VERSION_IT >= 7.0) 
{ 
    MBLabelAlignmentCenter = NSTextAlignmentCenter; 
} 
else{ 
    MBLabelAlignmentCenter = UITextAlignmentCenter; 
} 

希望這有助於.. :)