NSLog выводит символы Юникода как мусор при отладке на iPhone

РЕДАКТИРОВАТЬ: Вывод NSLog хорошо работает в симуляторе, но не работает при подключении к реальному устройству. И похоже, что это баг — http://openradar.appspot.com/11148883. Также бывает, что это связано с LLDB, переключение Xcode на GDB решает проблему. Либо это возможно с AppCode JetBrain, который хорошо работает с LLDB.


У меня есть куча строк Unicode в приложении, и если я попытаюсь вывести любую из этих строк, используя что-то вроде NSLog(@"%@", aString), то все символы ASCII в строка будет напечатана нормально, но все кириллические буквы будут перепутаны, поэтому вместо

newLocation: coordinate:60.019584,30.284954 'Удельная'

я получаю:

newLocation: coordinate:60.019584,30.284954 '–ü–æ–∫–ª–æ–Ω–Ω–æ–≥–æ—Ä—Å–∫–∞—è'

И это довольно сложно выполнять какую-либо отладку с таким выводом.И поскольку это приложение предназначено только для российского рынка, я не могу просто изменить локаль и использовать английские строки.

Интересно, есть ли способ заставить NSLog хорошо работать с символами Юникода? И я ищу только какое-то однострочное решение, я знаю, что есть некоторые способы написать полстраницы кода и вывести символы юникода, но я ищу что-нибудь покороче. В идеале я ищу какой-нибудь метод NSString, который заставит все это работать. например

NSLog(@"%@", [aString someThingThatMakesUnicodeWorkWithXcodeConsole]);

16
задан Dmitry Sokurenko 20 April 2012 в 12:55
поделиться