Конвертировать char * в NSString - программирование
Подтвердить что ты не робот

Конвертировать char * в NSString

Я хочу показать char * в UITextField

ситуация:

char *data;
char *name=data+6;
txtName.text=[[NSString alloc] initWithCString:name encoding:NSUTF8StringEncoding];

но я не получаю правильное значение.

4b9b3361

Ответ 1

Чтобы создать NSString из const char *, просто используйте следующие методы:

Возвращает объект autorelease d:

[NSString stringWithUTF8String:name];

Возвращает объект retain d:

[NSString initWithUTF8String:name];

Reference.

Если вы не получаете правильное значение, то что-то не так с данными. Добавьте несколько вызовов NSLog, чтобы увидеть, что содержат строки.

Ответ 2

Вы можете использовать [NSString stringWithUTF8String: data].

Ответ 3

Чего вы ожидаете? У вас есть uninitalized char *. Затем вы добавляете 6 к указателю, который уже является undefined. Затем вы пытаетесь повернуть указатель, указывающий на любой старый мусор (и вы не знаете, где он указывает) на NSString *. Из этого ничего хорошего не может получиться.

Определите char *, указывающий на реальную, реальную строку C, используя кодировку ASCII или UTF-8. Затем создайте NSString следующим образом:

char* cstring = "Try harder";
NSString* objcstring = @(cstring);