将char*转换为NSString

Sar*_*ati 28 iphone objective-c ios

我想在UITextField中显示char*

情况:

char *data;
char *name=data+6;
txtName.text=[[NSString alloc] initWithCString:name encoding:NSUTF8StringEncoding];
Run Code Online (Sandbox Code Playgroud)

但我没有得到正确的价值.

tro*_*foe 58

要创建NSStringa const char *,只需使用以下方法:

返回一个autoreleased对象:

[NSString stringWithUTF8String:name];
Run Code Online (Sandbox Code Playgroud)

返回一个retaind对象:

[[NSString alloc] initWithUTF8String:name];
Run Code Online (Sandbox Code Playgroud)

参考.

如果您没有得到正确的值,那么数据就会出错.添加一些NSLog调用以查看字符串包含的内容.


gna*_*729 7

你能指望什么?您有一个未初始化的字符*。然后,将6加到指针,该指针已经是未定义的行为。然后,您尝试将一个指针指向一个指向NSString *的旧垃圾(并且您不知道它指向的位置)。一切都不会因此而来。

使用ASCII或UTF-8编码定义一个指向实际的真实C字符串的char *。然后创建一个NSString像这样:

char* cstring = "Try harder";
NSString* objcstring = @(cstring);
Run Code Online (Sandbox Code Playgroud)


lth*_*hms 5

你可以用[NSString stringWithUTF8String: data].