2014-07-07 92 views
0

我使用Constant.hConstant.m創建了常量文件。我想根據設備類型設置一些常量。我試過以下東西:Objective-C根據IOS設備類型設置常量

//inside Constant.h 
extern int FONT; 

inside Constant.m 
#define IS_IPAD (UI_USER_INTERFACE_IDIOM == UIUserInterfaceIdiomPad) 
#ifdef IS_IPAD 
    int FONT = 20; 
#else 
    int FONT = 16; 
#enfif 

但它始終取值20不會爲16即使我的設備是iPhone。

我做錯了什麼?

回答

2

#ifdef意思是「如果定義 - 某個值或宏」,由於定義了IS_IPAD,所以總是爲真。

還有一個#if宏(例如,#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200),但它是不是適合你的情況,因爲UI_USER_INTERFACE_IDIOM()將在運行時進行評估,所以你需要使用正則if聲明。

if (IS_IPAD) { 
    // ... 
} 

或者條件運算符?

int font = IS_IPAD ? 20 : 16; 
+0

其工作。感謝您的幫助。 – nilkash

+0

@nilkash歡迎您 – albertamg