Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone xcconfig文件中的预处理器宏_Iphone_Objective C_Ios_Xcode_Xcconfig - Fatal编程技术网

Iphone xcconfig文件中的预处理器宏

Iphone xcconfig文件中的预处理器宏,iphone,objective-c,ios,xcode,xcconfig,Iphone,Objective C,Ios,Xcode,Xcconfig,可以在配置文件中使用宏吗?我想实现以下目标: if iPad set variable to 1 else set variable to 0 可能吗?我宁愿不使用脚本来实现这一点。这是不可能的。配置文件不进行预处理(和编译)。你想做什么?恐怕这不可能。但是,如果您想解决简单的任务—许多常见设置,只有少数变量具有不同的值,您可以这样做: generic.xconfig: settings for both configs #include "generic.xcconfig" ipad-sp

可以在配置文件中使用宏吗?我想实现以下目标:

if iPad
set variable to 1
else
set variable to 0

可能吗?我宁愿不使用脚本来实现这一点。

这是不可能的。配置文件不进行预处理(和编译)。你想做什么?

恐怕这不可能。但是,如果您想解决简单的任务—许多常见设置,只有少数变量具有不同的值,您可以这样做:

generic.xconfig:

settings for both configs
#include "generic.xcconfig"
ipad-specific-settings
ipad.xconfig:

settings for both configs
#include "generic.xcconfig"
ipad-specific-settings
iphone.xconfig

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

这可以解决您的条件需要。我经常使用这个模式。

您通常应该在运行时而不是编译时检查这个模式。看

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

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

您可以使用一个名为
TARGETED\u DEVICE\u FAMILY
的xcconfig变量。iPhone和ipodtouch返回1,iPad返回2。这可以用来创建一种宏。我并不极力推荐这种方法,但下面是您如何做到这一点的。假设您试图设置一个名为
设置
的值:

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

我已经在我的项目中做过几次了(针对其他问题,而不是iPad检测)。每次我做这件事的时候,更多的思考让我能够删除它,并以一种更简单的方式(通常是找到另一种方式来构建我的项目以消除需求)。但这是一种在xcconfig中创建条件的技术。

这是一个很好的技巧!谢谢,但是如果目标_设备_系列标志是通用的,即返回1,2,您会怎么做?