繁体   English   中英

将char *转换为NSString

[英]convert char * to NSString

我想在UITextField中显示char *

情况:

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

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

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

返回一个autorelease d对象:

[NSString stringWithUTF8String:name];

返回一个retain d对象:

[[NSString alloc] initWithUTF8String:name];

参考

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

你能指望什么? 你有一个未经注册的char *。 然后你向指针添加6,这已经是未定义的行为。 然后你尝试将指向任何旧垃圾的指针(并且你不知道它指向何处)转向NSString *。 没有什么好处可以来自这个。

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

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

您可以使用[NSString stringWithUTF8String: data]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM