使用参数生成 NSString 时在发布模式下崩溃

Crash in Release Mode while generating NSString with arguments

我写了日志助手 class,它有几个日志函数。在 DEBUG 模式下一切正常。但是当我 运行 我的代码处于发布模式时它崩溃了。下面是代码片段:

+ (void)info:(NSString *)format, ...
{
    va_list args;
    va_start(args, format);
    va_end(args);

    NSString *formatedMessage = [[NSString alloc] initWithFormat:[NSString stringWithFormat:@"INFO %@",format] arguments:args];
}

创建格式化消息应用程序时出现崩溃并出现以下异常:

如果我设置

Build Setting->optimization level to NONE

在发布模式下一切顺利。任何将优化级别修复为

的想法

Fastest-Smallest

处于发布模式

你好像打电话 va_end 太早了。尝试:

+ (void)info:(NSString *)format, ...
{
    va_list args;
    va_start(args, format);

    NSString *formatedMessage = [[NSString alloc] initWithFormat:[NSString stringWithFormat:@"INFO %@",format] arguments:args];

    va_end(args);
}