Как избежать символа Unicode в исходном коде Objective-C?

Я чувствую себя невероятно глупым, чтобы спросить об этом, но документация и Google не дают мне никакой любви.

У меня есть символ Unicode, который я хочу вставить в строковый литерал в исходном коде моего iPhone-приложения. Я знаю его шестнадцатеричное значение. Какая правильная escape-последовательность используется? И в этом отношении, какой очевидный источник информации я упускаю из виду, что сказал бы мне об этом?

Ответ 1

Пример:

NSString *stuff = @"The Greek letter Beta looks like this: \u03b2, and the emoji for books looks like this: \U0001F4DA";

Ответ 2

Если вы не хотите использовать его прямо в своей строке, вы можете использовать спецификатор формата:

[string stringByAppendingFormat:@"%C", 0x2665];

Ответ 3

Более современный подход:

Я не уверен, когда эта функция была добавлена ​​на язык, но по состоянию на 2015 год, по крайней мере, строковые литералы Objective-C могут содержать любой символ Юникода. Например, я отмечаю свой журнал линии с emoji, потому что их отличительные цвета - это более простой способ выбрать их:

message: @

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

Ответ 4

Правильная escape-последовательность будет чем-то вроде строк

wchar_t * str = L"\x0627";

Смотрите этот вопрос: константа символа:\000\xhh

Изменить: О, извините, я пропустил теги iPhone и Objective-C. Вышеприведенное относится к общему C/С++, но я не работал с разработкой iPhone, поэтому ваш пробег может отличаться.

Ответ 5

\ - это escape-символ в объекте c, используйте его перед тем, как письмо будет экранировано следующим образом:

NSString temp = @" hello \"temporary.h\" has been inported";

Здесь, если вы печатаете строку temp в текстовом представлении или журналах, вы также увидите ", потому что мы использовали перед ним \, который является escape-символом