Сбой в режиме выпуска при генерации строки NSString с аргументами

Я написал вспомогательный класс Log, который имеет несколько функций Log. Все работает хорошо в режиме отладки. Но когда я запускаю мой код в режиме релиза, он падает. Ниже приведен фрагмент кода:

+ (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];
}

При создании приложения formatedMessage происходит сбой с нижеуказанным исключением: Вот обратный вызов аварии

Если я установлю

Настройка сборки-> уровень оптимизации НЕТ

в режиме Release все работает плавно. Любую идею исправить с помощью уровня оптимизации

Самый быстрый, самый маленький

в режиме релиза

1 ответ

Решение

Вы, кажется, звоните 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);
}
Другие вопросы по тегам