0

所以我在 Xcode 中为一个最初只是 iPhone 的项目创建了一个新的 iPad 目标。正如 Apple 建议的那样,我还创建了 iPad 特定的视图控制器,并将大部分 iphone 视图控制器代码复制并粘贴到 ipad 版本中。问题是我与#defines 和枚举有很多冲突。

如果我有这个:

#define birdSize 175

我宁愿不必在 iPad 视图控制器中将其重新定义为:

#define birdSize_iPad 400

然后搜索并替换实现中的所有实例。我只想更改定义的值,但这会影响 iPhone 版本。两个问题:

  1. 当这些视图控制器包含在不同的目标中时,为什么会发生冲突?
  2. 处理这种情况的最佳方法是什么?
4

1 回答 1

1

1.) 似乎您也在 iPad 视图控制器中导入带有“#define birdSize”的头文件。也许是间接的?如果您可以向我们展示您的进口产品,那会更容易说...

2.) 我不知道“最好的方法”,但这是我解决这个问题的方法:iPad 的目标选项 -> 构建设置 -> GCC CFLAGS

-DIPAD

那么你可以很容易地在某个地方定义一个birdSize,它看起来像:

#ifdef IPAD
  #define birdSize 400
#else
  #define birdSize 175
#endif

也许不是最优雅的方式,但对我来说效果很好。

于 2011-01-24T06:27:15.820 回答