我想在UITextField中显示char *
情况:
char *data;
char *name=data+6;
txtName.text=[[NSString alloc] initWithCString:name encoding:NSUTF8StringEncoding];
但我没有得到正确的价值。
要从NSString
创建const char *
,只需使用以下方法:
返回一个autorelease
d对象:
[NSString stringWithUTF8String:name];
返回一个retain
d对象:
[[NSString alloc] initWithUTF8String:name];
如果您没有得到正确的值,那么数据就会出错。添加几个NSLog
调用以查看字符串包含的内容。
你可以使用[NSString stringWithUTF8String: data]
。
你能指望什么?你有一个未经注册的char *。然后你向指针添加6,这已经是未定义的行为。然后你尝试将指向任何旧垃圾的指针(并且你不知道它指向何处)转向NSString *。没有什么好处可以来自这个。
使用ASCII或UTF-8编码定义指向实际实际C字符串的char *。然后像这样创建一个NSString:
char* cstring = "Try harder";
NSString* objcstring = @(cstring);