我试图编写一个日志记录函数,并尝试了几种不同的尝试来处理可变参数,但是我遇到了所有这些问题。这是最新的:
- (void) log:(NSString *)format, ...
{
if (self.loggingEnabled)
{
va_list vl;
va_start(vl, format);
NSString* str = [[NSString alloc] initWithFormat:format arguments:vl];
va_end(vl);
NSLog(format);
}
}
如果我这样称呼:
[self log:@"I like: %@", @"sausages"];
然后我在NSLog行获得了一个EXC_BAD_ACCESS(还有编译器警告格式字符串不是字符串文字)。
但是,如果在XCode的控制台中我做了" po str"它显示"我喜欢:香肠"所以str似乎没问题。
答案 0 :(得分:1)
您正在记录format
,而不是str
。我不知道那是不是问题...