我有以下代码,
#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
如何将NSLog输出转换为字符串,以便传入log参数?见下文。
#define DLog(fmt, ...) [MyClass log:NSLogString];
答案 0 :(得分:1)
你不能“......将NSLog输出转换为字符串”。 NSLog将其输出发送到标准输出。它执行文件操作。
你应该可以使用这样的代码:
void DLog(NSString* format, ...)
{
va_list params_list;
//Extract the variable-length list of parameters
va_start(params_list, format);
NSString *outputString = [[NSString alloc] initWithFormat: format
arguments: params_list];
//Now do what you want with your outputString
//Now clean up the var_args.
va_end(params_list);
}
神奇的是NSString
initWithFormat:arguments:
方法,它从var_args中提取params_list并返回一个字符串。这就是你想要的。
答案 1 :(得分:0)
这就是你想要的吗?
#define DLog(...) NSLog(__VA_ARGS__)