Ответ 1
Пример:
NSString *stuff = @"The Greek letter Beta looks like this: \u03b2, and the emoji for books looks like this: \U0001F4DA";
Я чувствую себя невероятно глупым, чтобы спросить об этом, но документация и Google не дают мне никакой любви.
У меня есть символ Unicode, который я хочу вставить в строковый литерал в исходном коде моего iPhone-приложения. Я знаю его шестнадцатеричное значение. Какая правильная escape-последовательность используется? И в этом отношении, какой очевидный источник информации я упускаю из виду, что сказал бы мне об этом?
Пример:
NSString *stuff = @"The Greek letter Beta looks like this: \u03b2, and the emoji for books looks like this: \U0001F4DA";
Если вы не хотите использовать его прямо в своей строке, вы можете использовать спецификатор формата:
[string stringByAppendingFormat:@"%C", 0x2665];
Более современный подход:
Я не уверен, когда эта функция была добавлена на язык, но по состоянию на 2015 год, по крайней мере, строковые литералы Objective-C могут содержать любой символ Юникода. Например, я отмечаю свой журнал линии с emoji, потому что их отличительные цвета - это более простой способ выбрать их:
Итак, если у вас есть символ, а не только код, и вы хотите использовать его в статической строке, а не динамически генерировать его, это отличный подход, так как вы сразу же знаете, какого персонажа вы используете посмотрев на него.
Правильная escape-последовательность будет чем-то вроде строк
wchar_t * str = L"\x0627";
Смотрите этот вопрос: константа символа:\000\xhh
Изменить: О, извините, я пропустил теги iPhone и Objective-C. Вышеприведенное относится к общему C/С++, но я не работал с разработкой iPhone, поэтому ваш пробег может отличаться.
\
- это escape-символ в объекте c, используйте его перед тем, как письмо будет экранировано следующим образом:
NSString temp = @" hello \"temporary.h\" has been inported";
Здесь, если вы печатаете строку temp в текстовом представлении или журналах, вы также увидите "
, потому что мы использовали перед ним \
, который является escape-символом