[英]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.