iOS10 NSLog限制为1024个字符的string

在iOS10中,NSlog被限制为1024个字符,任何人都知道打印完整string的解决方法。

尝试printf而不是NSLog

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

它可能有效

我认为这是一个相同的问题[ NSLog的设备在iOS 10 / Xcode 8似乎截断? 为什么呢 ,我也会在这里发表我的答案,以防你想用printf代替。

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

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

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

这个新的Xcode8和Sierra“function”的Swift解决scheme…

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

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