这个Bug折腾了我近一天,读一个文件,NSLog输出文件内容,结果死活读不完整,不光中文没有,英文也不全,考虑了编码,文件大小,文件位置等各种可能的因素,尝试用各种方式重写这个操作,最后发现是NSLog的问题,跟文件一毛钱关系都没有,感谢这两个链接:link1 link2 。

鉴于第二个链接已经解释的很清楚了,我这里就简要说一下,毕竟Wall还是有些麻烦

重现Bug很简单,Xcode 4.3+,用lldb在真机上运行(模拟器没有问题)下面代码:

1
2
3
NSLog(@"English1");
NSLog(@"中文");
NSLog(@"English2");

中文那行神马都不输出啊!如果NSLog一个NSString,String里面有中文,那么输出也会悲剧。

解决方法两种:

  1. 如果你执着于lldb,那么用Organizer >> Devices >> 你的设备 >> Console 这里会显示中文
  2. 按住Option点Run(或者 Product >> Edit Scheme…),Info >> Debugger 设置为GDB

一切回归正常,WTF!

另外有人说4.3.2解决了这个问题,事实是:没有解决!

祝愿被这个问题折腾死的人能早日看到这篇文章或者link2那篇文章。

Becareful with XCode!!

–以上–

Tagged with:  

5 Responses to Xcode 4.3+ NSLog中文不输出Bug及解决方法

  1. Donly说道:

    Version 4.3.2 (4E2002) 表示无此问题,一切正常,包括你上一篇文章提及的SVN问题。

  2. Kevin说道:

    XCode 4.3.2使用lldb, console中确实已经可以正确显示中文了

  3. Sasori说道:

    4.3.2表示还是有问题,坐等苹果修复。(模拟器无问题,但是真机console输出中文就会有问题)

  4. […] 12:Xcode 4.3+ NSLog中文不输出Bug及解决方法  按住Option点Run(或者 Product >> Edit Scheme…),Info >> Debugger 设置为GDB […]

发表评论

电子邮件地址不会被公开。 必填项已用*标注