6

可以在配置文件中使用宏吗?我想实现类似:

if iPad
set variable to 1
else
set variable to 0

那可能吗?我宁愿不为此使用脚本。

4

3 回答 3

9

您通常应该在运行时而不是编译时检查它。请参阅iOS - 条件编译 (xcode)

如果您不这样做,我通常建议使用@Robert Vojta 暗示的不同目标。

也就是说,我可以想象在某些共享代码中这会很有用的情况。所以...

您可以使用一个名为 .xcconfig 的变量TARGETED_DEVICE_FAMILY。它为 iPhone 和 iPod Touch 返回 1,为 iPad 返回 2。这可以用来创建一种宏。我不强烈推荐这种方法,但这是你如何做到的。假设您试图设置一些名为的值SETTINGS

// Family 1 is iPhone/iPod Touch. Family 2 is iPad
SettingsForFamily1 = ...
SettingsForFamily2 = ...
SETTINGS = $(SettingsForFamily$(TARGETED_DEVICE_FAMILY))

我在我的项目中做过几次(针对其他问题,而不是针对 iPad 检测)。每次我完成它时,都会有更多的想法让我将其删除并以更简单的方式进行(通常会找到另一种方式来构建我的项目以消除需要)。但这是一种在 xcconfig 中创建条件的技术。

于 2012-09-30T22:24:52.480 回答
4

AFAIK 这是不可能的。但是如果你想解决简单的任务——很多常见的设置,只有几个变量有不同的值,你可以这样做:

通用的.xcconfig:

settings for both configs

ipad.xcconfig:

#include "generic.xcconfig"
ipad-specific-settings

iphone.xcconfig

#include "generic.xcconfig"
iphone-specific-settings

这可以解决您的病情需要。我确实经常使用这个模式。

于 2012-09-30T17:49:49.610 回答
0

那是不可能的。配置文件没有经过预处理(和编译)。你想做什么?

于 2012-09-30T17:41:32.253 回答