我正在尝试复制NSLog,但开头没有所有不必要的日期。我尝试了以下c函数(我自己制作),但它不会记录任何其他不是NSStrings的值。请问你能告诉我怎样才能记录任何价值?
static void echo(NSString *fmt, ...) {
printf("<<<<<<<%s>>>>>>>", [fmt UTF8String]);
}
答案 0 :(得分:1)
要在C中使用可变参数列表,您需要使用编译器附带的stdarg.h头文件中定义的一些宏。
here is a detailed explanation of how to write your own printf
如果您只想将参数传递给真正的printf而无需进一步操作,则可以使用printf的vfprintf变体,但需要单独扩展fmt参数:
static void echo(NSString *fmt, ...)
{
va_list args;
NSString *logfmt = [NSString stringWithFormat: @"<<<<<<<%s>>>>>>>", [fmt UTF8String]];
va_start (args, fmt);
vfprintf( stdout, [logfmt UTF8String], args );
va_end (args);
[logfmt release];
}