在 Objective-C 代码中使用自定义编译时变量?

问题描述 投票:0回答:3

有没有办法告诉 XCode 在编译时将某些变量或常量插入到您的项目中,以便您在代码中使用?具体来说,我正在谈论 iOS 项目,所以我认为我没有使用命令行参数的选项。

你问我为什么需要这个?好吧,对于表视图中的某些单元格,我想添加不同的副标题文本,因为它可以帮助我在开发过程中选择正确的单元格。像这样的事情会很棒:

if (MY_COMPILE_TIME_BOOL_CONST) { cell.subtitle.text = [NSString stringWithFormat:@"Contains %i items", count]; } else { cell.subtitle.text = @""; }
但是还有很多其他地方这会派上用场。不知怎的,当我试图用谷歌搜索答案时,我只能找到“从 XCode 教程开始”。

有人能指出魔法吗?

更新:谷歌搜索的神奇词是“预处理器宏”。谢谢,所以!

objective-c xcode constants
3个回答
3
投票
如果您从 XCode 启动您的应用程序,您完全可以使用命令行参数。

您还可以将

DEBUG=1

 之类的内容添加到预处理器宏中以进行调试配置。然后你可以在你的代码中添加预处理器ifs,相应的代码只会在调试模式下编译。 

#if DEBUG NSLog(@"Foo"); #endif
后者是我每天使用的。 


2
投票
如果您不想为这些宏添加一个或多个头文件,请尝试以下步骤。

在 Xcode 中,双击

target,选择您想要特殊定义的 Configuration(调试/发布/等)。然后在搜索字段中输入 preprocessor”。然后您应该会看到 Preprocessor Macros,其中您可以输入您的extras


0
投票
怎么样:

#define DEBUG YES
在你的

.pch



然后你可以做类似的事情

if (DEBUG) { cell.subtitle.text = @"Counting xyz"; return cell; } cell.subtitle.text = @""; return cell;
如果您主要在模拟器中开发,您也可以检查模拟器。 

© www.soinside.com 2019 - 2024. All rights reserved.