iOS10 NSLog 限制为 1024 个字符的字符串

iOS10 NSLog is limited to 1024 chars strings

在 iOS10 中,NSlog 被限制为 1024 个字符有没有人知道打印完整字符串的解决方法。

然后尝试 printf 而不是 NSLog

   printf("%s", [string UTF8String]);

可能有效

我认为这是与 [ 相同的问题,我也会在这里 post 我的回答,以防您想使用 printf

这是一个临时解决方案,因为我认为这是一个错误。

只需在全局头文件中将所有NSLOG重新定义为printf即可。

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);

此新 Xcode8 和 Sierra“功能”的 Swift 解决方法...

func Log(_ format:String, _ args:CVarArg...) {
    let output = withVaList(args, { (p) -> NSString in
        NSString(format: format, arguments: p)
    }) as String
    print( output )
}

当然,这不会有我们可能需要的 NSLog 的特性,例如时间戳、包名称和线程的东西(包括序列化)。