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

在Objective-C代码中使用的自定义编译时变量?,objective-c,xcode,compiler-construction,constants,Objective C,Xcode,Compiler Construction,Constants,有没有办法告诉XCode在编译时将某些变量或常量插入到项目中,供您在代码中使用?具体来说,我说的是iOS项目,所以我想我没有使用命令行参数的选项 你问我为什么需要这个?对于表视图中的某些单元格,我想添加一个不同的字幕文本,因为它可以帮助我在开发过程中选择正确的单元格。像这样的东西太棒了: if (MY_COMPILE_TIME_BOOL_CONST) { cell.subtitle.text = [NSString stringWithFormat:@"Contains %i items

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

你问我为什么需要这个?对于表视图中的某些单元格,我想添加一个不同的字幕文本,因为它可以帮助我在开发过程中选择正确的单元格。像这样的东西太棒了:

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

有人能指出魔法吗

更新:谷歌最神奇的单词是预处理器宏。谢谢,所以

那么:

#define DEBUG YES
在您的.pch中

然后你可以做类似的事情

if (DEBUG) {
   cell.subtitle.text = @"Counting xyz";
   return cell;
}

cell.subtitle.text = @"";
return cell;
如果你主要在模拟器中开发,你也可以检查模拟器

那么:

#define DEBUG YES
在您的.pch中

然后你可以做类似的事情

if (DEBUG) {
   cell.subtitle.text = @"Counting xyz";
   return cell;
}

cell.subtitle.text = @"";
return cell;

如果你主要在模拟器中开发,你也可以检查模拟器

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


在Xcode中,双击目标,选择需要特殊定义的配置Debug/Release/etc。然后在搜索字段中键入preprocessor。然后,您将看到预处理器宏,您可以在其中输入额外内容。

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


在Xcode中,双击目标,选择需要特殊定义的配置Debug/Release/etc。然后在搜索字段中键入preprocessor。然后你会看到预处理器宏,在那里你可以输入额外的内容。

如果你从XCode启动你的应用程序,你完全可以使用命令行参数

还可以向调试配置的预处理器宏中添加类似DEBUG=1的内容。然后可以将预处理器ifs添加到代码中,相应的代码将仅在调试模式下编译

#if DEBUG
NSLog(@"Foo");
#endif

后者是我每天使用的

如果从XCode启动应用程序,完全可以使用命令行参数

还可以向调试配置的预处理器宏中添加类似DEBUG=1的内容。然后可以将预处理器ifs添加到代码中,相应的代码将仅在调试模式下编译

#if DEBUG
NSLog(@"Foo");
#endif

后者是我每天使用的

啊,是的,这也是我的第一个想法,但我在一个团队中工作,希望将常量链接到活动配置调试/发布/分发。啊,是的,这也是我的第一个想法,但我在一个团队中工作,希望将常量链接到活动配置调试/发布/分发See,我在谷歌上搜索编译时常量,实际上我在寻找的是预处理器宏。这正是我想要的方式。谢谢看,我在谷歌上搜索编译时常量,实际上我要找的是预处理器宏。这正是我想要的方式。谢谢