如何在构建设置中定义预处理器宏,如IPAD_build和IPHONE_build(以及如何在我的工厂方法中使用它们)?

我现在把这些都背下来了,如果能知道后面会发生什么就好了.

推荐答案

/#在以下情况下,if照常工作:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
  if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    return YES;
  }
#endif
  return NO;
}

/#ifdef的意思是"如果已定义-某些值或宏":

#ifdef    RKL_APPEND_TO_ICU_FUNCTIONS
#define RKL_ICU_FUNCTION_APPEND(x) _RKL_CONCAT(x, RKL_APPEND_TO_ICU_FUNCTIONS)
#else  // RKL_APPEND_TO_ICU_FUNCTIONS
#define RKL_ICU_FUNCTION_APPEND(x) x
#endif // RKL_APPEND_TO_ICU_FUNCTIONS

或者:

#ifdef __OBJC__
    #import <Foundation/Foundation.h>
#endif

使用此链接了解更多信息

要测试你是否运行iPad,你应该有这样的smth:

#define USING_IPAD UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad

if (USING_IPAD) {
    NSLog(@"running iPad");
}

下面是另一个有用的预处理器函数:

#ifdef DEBUG
    //here we run application through xcode (either simulator or device). You usually place some test code here (e.g. hardcoded login-passwords)
#else
    //this is a real application downloaded from appStore
#endif

Objective-c相关问答推荐

如何在 Objective-C 中编写计时器?

使用 AVAudioplayer 在后台播放音乐

如何复制 .xib 文件?

如何使用格式化占位符本地化字符串?

为什么 UICollectionView 的 UICollectionViewCell 没有在用户时突出显示?

Iphone,获取 NSArray 中的国家/地区列表

我怎样才能拥有一个同时包含图像和文本的 UIBarButtonItem?

为什么我们必须在 Objective-C 中做 [MyClass class]?

混合 Objective-C 和 C++

参考代码中的内部版本号或版本号

CF 对象与 NS 对象

如何测试生产推送通知?

关闭一次后如何返回允许推送通知对话框?

如何将 NSNumber 转换和比较为 BOOL?

带有块的 Objective-C 延迟动作

如何在 NSSet 或 NSArray 中搜索具有特定属性的特定值的对象?

显示启动画面的时间超过默认秒数

如何从输入 IB 的 UILabel 文本中插入新行 \n?

如何让 UITextView 检测网站、邮件和电话号码的链接

带有 UIImage 的 UIBarButtonItem 始终着色 iOS 7