在iPhone上调试时,NSLog将unicode字符输出为垃圾

Dmi*_*nko 16 iphone xcode objective-c nsstring ios

编辑: NSLog输出在模拟器中运行良好,但在连接到真实设备时不起作用.它似乎是一个错误 - http://openradar.appspot.com/11148883.它也与LLDB有关,将Xcode切换到GDB可以解决问题.它可能是JetBrain的AppCode,它与LLDB配合得很好.


我在应用程序中有一堆unicode字符串,如果我尝试使用像NSLog(@"%@",aString)这样的字符串输出任何字符串,那么字符串中的所有ASCII字符都将打印正常但所有的西里尔字母字母会搞砸,所以而不是

newLocation: coordinate:60.019584,30.284954 '????????'
Run Code Online (Sandbox Code Playgroud)

我越来越:

newLocation: coordinate:60.019584,30.284954 '–ü–æ–?–ª–æ–?–?–æ–?–æ—Ä—Å–?–?—è'
Run Code Online (Sandbox Code Playgroud)

使用那种输出进行任何调试都很困难.因为该应用程序仅针对俄罗斯市场,所以我不能只改变语言环境并使用英语字符串.

所以我想知道是否有任何方法可以使NSLog与unicode字符配合良好?而且我只关注某种单线解决方案,我知道有一些方法可以编写半页代码并输出unicode字符,但我正在寻找更短的内容.理想情况下,我正在寻找一些NSString的方法,它将使一切工作.例如

NSLog(@"%@", [aString someThingThatMakesUnicodeWorkWithXcodeConsole]);
Run Code Online (Sandbox Code Playgroud)

Hai*_*lei 3

据我所知,它与某些 Xcode 版本上的 NSLog() 和 LLDB 相关。尝试使用以下解决方案之一:

  • 检查登录 Xcode Organizer >> Devices >> your device >> Console。
  • 如果您使用的是后者,请使用 GDB 作为调试器而不是 LLDB。这可以从架构选项中更改。请参考下面“cocos2d man”评论中的步骤。
  • 升级到 Xcode 4.3.2。有人说它解决了这个问题,但我自己还没有证实这一点。