Obj-C,尝试编写NSLog的替代方案,但我想让我的函数像NSLog一样连接?

时间:2011-02-01 16:06:14

标签: objective-c xcode

我已经决定,如果我用另一个函数替换我的NSLog调用,那将是最简单的....

+(void)logThis:(NSString*)line{ 

#ifdef DEBUG 
NSLog(line); 
#endif  

}

但是,我将不得不替换215个NSLog调用,如果我的函数接受多个参数(如NSLog)会更快,那么我所要做的就是找到并用我的函数名/类替换NSLog ,然后将额外的支架放到方括号上。

现在有人可以告诉我,我可以在我的函数中添加这样的参数接受吗?

或者更快/更好的解决方案,这并不意味着添加更多行代码而不是NSLog?

2 个答案:

答案 0 :(得分:1)

您需要的是variadic function。这些函数采用灵活数量的参数,例如NSLog[NSArray arrayWithObjects:...]等。

参见本教程:

http://www.numbergrinder.com/node/35

答案 1 :(得分:0)

如何制作一个扩展为“NSLog”或“(void)”的宏“NSLOG_IF_DEBUGGING”,具体取决于它是否是一个调试版本?然后,您只需使用NSLOG_IF_DEBUGGING全局替换所有NSLog调用。