Преобразование в предварительно составленную строку Unicode с использованием Python-AppKit-ObjectiveC - PullRequest
3 голосов
/ 27 апреля 2009

В этом документе Apple Технические вопросы и ответы QA1235 описывает способ преобразования строк Unicode из составной в разложенную версию. Так как у меня есть проблема с именами файлов, содержащими некоторые символы (например, могилу ударения), я хотел бы попробовать функцию преобразования

void CFStringNormalize (CFMutableStringRef theString, CFStringNormalizationForm theForm);

Я использую это с Python и библиотекой AppKit. Если я передаю строку Python в качестве аргумента, я получаю:

CoreFoundation.CFStringNormalize ( "а", 0) 2009-04-27 21: 00: 54.314 Python [4519: 613] * - [OC_PythonString _cfNormalize:]: нераспознанный селектор, отправленный экземпляру 0x1f02510 Traceback (последний вызов был последним): Файл "", строка 1, в ValueError: NSInvalidArgumentException - * - [OC_PythonString _cfNormalize:]: нераспознанный селектор, отправленный экземпляру 0x1f02510

Я полагаю, это потому, что в качестве аргумента необходим CFMutableStringRef. Как мне преобразовать строку Python в CFMutableStringRef?

1 Ответ

1 голос
/ 28 апреля 2009

OC_PythonString (это то, с чем соединяются строки Python) является подклассом NSString, поэтому вы можете получить NSMutableString с:

mutableString = NSMutableString.alloc().initWithString_("abc")

затем используйте mutableString в качестве аргумента для CFStringNormalize.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...