ios - 使用参数生成 NSString 时在 Release模式下崩溃

标签 ios objective-c xcode8 ios10.3

我编写了具有几个日志函数的日志帮助程序类。在 DEBUG 模式下一切正常。但是当我在 Release模式下运行我的代码时,它崩溃了。下面是代码片段:

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

创建格式化消息应用程序时出现以下异常而崩溃: Here is the callback of crash

如果我设置

Build Setting->optimization level to NONE

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

的想法

Fastest-Smallest

处于 Release模式

最佳答案

您似乎过早调用了 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);
}

关于ios - 使用参数生成 NSString 时在 Release模式下崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43393259/

相关文章:

ios - 不等式约束歧义

objective-c - userInteractionEnabled 设置为 YES 的 Sprite 在被普通 Sprite 覆盖时不会接收到触摸

ios - 错误 - EXC_BREAKPOINT(代码=1,子代码=0x100308448)

ios - 是否可以同时为同一应用程序的不同设备(iphone4s、iphone6、pad2 等)启动 iOS 模拟器

ios - block 内、结构内、函数内变量的作用域

ios - 内容更改时 WKWebView 不调整大小

ios - 如果 UIViewAutoresizing 没有削减它,iOS 中的旋转

objective-c - Cocoa 应用程序 - XCode 8 和 App Delegate

ios - 自 Xcode 8 和 iOS10 起,viewDidLayoutSubviews 上的 View 大小不正确

ios - 使用Xcode 8.x定位到iOS 6(iphone3gs)?