是可以在配置文件中使用宏吗?我想达到这样的东西:xcconfig文件中的预处理器宏
if iPad
set variable to 1
else
set variable to 0
这可能吗?我宁愿不为此使用脚本。
是可以在配置文件中使用宏吗?我想达到这样的东西:xcconfig文件中的预处理器宏
if iPad
set variable to 1
else
set variable to 0
这可能吗?我宁愿不为此使用脚本。
您通常应该在运行时检查它,而不是编译时。见iOS - conditional compilation (xcode)。
如果你不这样做,我通常建议使用@Robert Vojta暗示的不同目标。
也就是说,我可以想象在某些共享代码中这会很有用的情况。所以...
有一个xcconfig变量可以使用,称为TARGETED_DEVICE_FAMILY
。它返回1为iPhone和iPod Touch,和2为iPad。这可以用来创建一种宏。我不强烈推荐这种方法,但这是你如何做到的。比方说,你试图建立所谓SETTINGS
一些值:
// Family 1 is iPhone/iPod Touch. Family 2 is iPad
SettingsForFamily1 = ...
SettingsForFamily2 = ...
SETTINGS = $(SettingsForFamily$(TARGETED_DEVICE_FAMILY))
我在我的项目,这做了几次(对于其他问题,而不是iPad的检测)。每当我完成它时,再多想一想就可以将其删除并以更简单的方式进行(通常会找到另一种方法来构建项目以消除需要)。但这是一种在xcconfig中创建条件的技术。
这是不可能的。配置文件不被预处理(和编译)。你想做什么?
AFAIK这是不可能的。但是,如果你想解决简单的任务 - 很多常见的设置,只是几个变量有不同的值,你可以这样做:
generic.xcconfig:
settings for both configs
ipad.xcconfig:
#include "generic.xcconfig"
ipad-specific-settings
iphone.xcconfig
#include "generic.xcconfig"
iphone-specific-settings
这可以解决您的情况需要。我经常使用这个模式。
这是一个很棒的提示!谢谢,但是如果TARGETED_DEVICE_FAMILY标志是通用的,那么你会做什么,即返回1,2? –