如何根据平台定义相同的宏但不同的值?

时间:2013-01-21 03:00:33

标签: iphone ios ipad

  

可能重复:
  Is there a specific Xcode compiler flag that gets set when compiling for iPad?

我想定义相同的宏但不同的值取决于它的ipad还是iphone。例如,我想为iPhone定义THUMB_WIDTH是40但是对于ipad是100.这可能吗?如果可能,该怎么办?

1 个答案:

答案 0 :(得分:4)

是的,这是可能的。首先,您必须了解宏只是在编译时将在代码中替换的一些代码。

我认为您需要一个通用应用程序(iPhone / iPad),这意味着您将为两个平台编译和共享相同的代码。因此,您无法使用#if宏来更改此值。逻辑部分必须在宏中,这样在执行时知道值,并且将根据您在iPhone或iPad上执行而改变。

你可以使用类似的东西:

#define THUMB_WIDTH (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) ? 40 : 100