Вы можете сделать 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].