iphone - 根据设备类型定义常量

标签 iphone objective-c constants device definition

我有一个 Constants.h 文件,实际上它包含一些全局常量。因为我的应用程序是为 iPhone 和 iPad 构建的,所以我想为这两种设备类型定义相同的常量(即具有相同的名称)。

完整的解释:

/******** pseudo code *********/

if (deviceIsIPad){
    #define kPageMargin 20
}
else {
    #define kPageMargin 10
}

我该怎么做? 谢谢。

大号。

最佳答案

在预处理步骤中不可能获取设备类型。它是在运行时动态确定的。您有两个选择:

  1. 创建两个不同的目标(分别针对 iPhone 和 iPad)并在其中定义宏。

  2. 创建像这样插入表达式的宏:

 #define IS_IPAD    (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)

 #define kMyConstant1 (IS_IPAD ? 100 : 200)
 #define kMyConstant2 (IS_IPAD ? 210 : 230)
 #define kMyConstant3 (IS_IPAD ? @"ADASD" : @"XCBX")

关于iphone - 根据设备类型定义常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11862052/

相关文章:

ios - 在uitableview中使用UIRefreshControl

iphone - 建模一对多关系 Core Data

objective-c - NSString 唯一文件路径以避免名称冲突

objective-c - RubyMotion 是否支持 objective-c 代码的集成?

c - "Initializer element is not constant"将对象定义为函数的静态成员时

ios - 使用 SLComposeViewController 在 Facebook 中分享图片

iphone - 设置包中的 ToggleSwitch 在 iPhone 中不起作用?

ios - Amazon S3 使用 Objective C 重命名对象

C++如何使用其中也包含此类的类中的枚举

javascript - 在JavaScript中,为什么不能修改常量String但可以修改常量数组