使用具有可变参数的函数的问题

时间:2014-06-11 21:21:23

标签: objective-c

我试图编写一个日志记录函数,并尝试了几种不同的尝试来处理可变参数,但是我遇到了所有这些问题。这是最新的:

- (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似乎没问题。

1 个答案:

答案 0 :(得分:1)

您正在记录format,而不是str。我不知道那是不是问题...