iphone - xcconfig 文件中的预处理器宏

标签 iphone objective-c ios xcode xcconfig

是否可以在配置文件中使用宏?我想实现这样的目标:

if iPad
set variable to 1
else
set variable to 0

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

最佳答案

您通常应该在运行时而不是编译时检查它。参见 iOS - conditional compilation (xcode) .

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

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

您可以使用名为 TARGETED_DEVICE_FAMILY 的 xcconfig 变量。它为 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 中创建条件的技术。

关于iphone - xcconfig 文件中的预处理器宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663323/

相关文章:

ios - isEqualToArray或isEqualToDictionary可以比较多深?

iphone - 将当前 View 替换为任何现有的新 View

objective-c - AFNetworking 简单 HTTP 请求

ios - 测试两个整数以确定现在是白天还是晚上

ios - 应用因数据存储而被拒绝

ios - iOS 应用程序中的 Google Places API

ios - 如何检测 iOS View Controller 的当前方向?

ios - DrawRect 超出 View 范围

javascript - "Autoplay"移动浏览器上的 HTML5 音频播放器

javascript - 我可以使用 JavaScript 关闭 iPhone 浏览器吗