编辑: 在模拟器中,NSLog输出正常,但连接到真实设备时不起作用。看起来这是一个错误 - http://openradar.appspot.com/11148883。同时,这似乎与LLDB有关。将Xcode切换到GDB可以解决问题。或者可以尝试JetBrain的AppCode,它可以很好地与LLDB一起使用。
我在应用程序中有一堆Unicode字符串,如果我尝试使用类似NSLog(@“%@”,aString)的东西输出任何这些字符串,那么字符串中的所有ASCII字符都会被正确打印,但所有的西里尔字母都会混乱,所以不能正常显示。
newLocation: coordinate:60.019584,30.284954 'Удельная'
我得到了:
newLocation: coordinate:60.019584,30.284954 '–ü–æ–∫–ª–æ–Ω–Ω–æ–≥–æ—Ä—Å–∫–∞—è'
那样的输出结果很难进行任何调试。而且由于该应用程序仅面向俄罗斯市场,我无法只更改语言环境并使用英文字符串。
所以我想知道是否有办法让NSLog能够很好地处理Unicode字符?我只在寻找某种一行代码解决方案,我知道有一些方法可以编写半页代码并输出Unicode字符,但我正在寻找更短的方式。理想情况下,我正在寻找一些可以使所有内容正常工作的NSString方法,例如:
NSLog(@"%@", [aString someThingThatMakesUnicodeWorkWithXcodeConsole]);