2011-01-28 62 views
0

有没有办法告诉XCode在编译时将某些变量或常量插入到您的项目中,供您在代码中使用?具体来说,我正在谈论iOS项目,所以我没有选择使用命令行参数。用于Objective-C代码的自定义编译时间变量?

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

if (MY_COMPILE_TIME_BOOL_CONST) { 
    cell.subtitle.text = [NSString stringWithFormat:@"Contains %i items", count]; 
} else { 
    cell.subtitle.text = @""; 
} 

但是还有很多其他的地方会派上用场。不知何故,当试图谷歌答案时,我只能“从XCode教程开始”。

任何人都可以指向魔术?

更新:谷歌的魔术词是“预处理宏”。谢谢,所以!

回答

3

您还可以添加一些LIK e DEBUG=1添加到调试配置的预处理器宏。然后,您可以将预处理器ifs添加到您的代码中,并且相应的代码将仅以调试模式进行编译。

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

后者是我每天都在使用的东西。

+0

请参阅我编译时间常量我实际上在寻找的是“预处理器宏”。这完全按照我想要的方式工作。谢谢! – epologee 2011-01-28 10:22:55

0

什么:

#define DEBUG YES 

.pch

,那么你可以做这样的事情

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

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

如果youre主要发展在模拟器,你也可以检查模拟器。

+0

啊,是的,这也是我的第一个想法,但我在一个团队中工作,并希望将常量链接到活动配置(调试/发布/分发) – epologee 2011-01-28 10:09:23

2

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

在Xcode中,双击目标,选择配置(调试/发布/等),你想在你的特殊定义,然后在搜索栏中键入预处理“。然后,你应该看到预处理宏其中如果从XCode中你完全可以使用命令行参数启动您的应用程序,你可以输入你的额外