Конвертировать char * в NSString
Я хочу показать char * в UITextField
ситуация:
char *data;
char *name=data+6;
txtName.text=[[NSString alloc] initWithCString:name encoding:NSUTF8StringEncoding];
но я не получаю правильное значение.
Ответы
Ответ 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);