Подтвердить что ты не робот

Как преобразовать cstring в NSString?

Мне удалось найти такие методы, как -[NSString stringWithCString:encoding:], но они не кажутся хорошими, когда cstring является указателем.

4b9b3361

Ответ 1

Сначала, не используйте initWithCString, он устарел.

Несколько способов сделать это:

const *char cString = "Hello";
NSString *myNSString = [NSString stringWithUTF8String:cString];

Если вам нужна другая кодировка, такая как ASCII:

const *char cString = "Hello";
NSString *myNSString = [NSString stringWithCString:cString encoding:NSASCIIStringEncoding];

Если вы хотите видеть все доступные кодировки строк, в Xcode держите команду + параметр, а затем дважды щелкните на NSASCIIStringEncoding в вышеуказанном блоке кода.

Вы сможете увидеть, где Apple объявила о своем перечислении для типов кодировки строк. Бит быстрее, чем пытаться найти его в документации.

Некоторые другие, которые вам могут понадобиться:

NSASCIIStringEncoding
NSUnicodeStringEncoding // same as NSUTF16StringEncoding
NSUTF32StringEncoding

Оформить покупку Apple Ссылка на класс NSString (кодировки находятся в нижней части страницы)

Ответ 2

С современным Objective-C (поскольку Xcode 5 по крайней мере) вы можете просто сделать:

char const* cString = "Hello";
NSString *myNSString = @(cString);

Ответ 3

stringWithCString:encoding: создает NSString из данной строки C. Чтобы создать строку C из NSString, используйте либо метод UTF8String (обычно предпочтительный), либо cStringUsingEncoding: (если вам нужна кодировка, отличная от UTF-8).