Ответ 1
Вы можете использовать stringWithFormat:
, передавая в формате %c
для представления символа, например:
char c = 'a';
NSString *s = [NSString stringWithFormat:@"%c", c];
Как преобразовать char в NSString в Objective-C?
Не строка с нулевым завершением, просто char c = 'a'
.
Вы можете использовать stringWithFormat:
, передавая в формате %c
для представления символа, например:
char c = 'a';
NSString *s = [NSString stringWithFormat:@"%c", c];
Вы можете сделать C-строку из одного символа следующим образом:
char cs[2] = {c, 0}; //c is the character to convert
NSString *s = [[NSString alloc] initWithCString:cs encoding: SomeEncoding];
В качестве альтернативы, если символ известен как символ ASCII (например, латинская буква, номер или знак пунктуации), здесь другой способ:
unichar uc = (unichar)c; //Just extend to 16 bits
NSString *s = [NSString stringWithCharacters:&uc length:1];
Последний фрагмент, безусловно, терпит неудачу (не сбой, а неправильная строка) с национальными символами. Для них простое расширение до 16 бит не является правильным преобразованием в Unicode. Поэтому необходим параметр encoding
.
Также обратите внимание, что два вышеописанных фрагмента производят строку с различными требованиями к перераспределению. Последний создает строку с автореализацией, первая - строку, для которой требуется вызов [release].