在我的项目中,如果我这样做
char *string =@"hello";
它工作正常。但是当我在 a 中输入一些内容UITextField
并将其分配给 时char
,它没有显示正确的值。
即使我声明
NSString *string ;
self.stringVariable = mobileNumberTextField.text;
char * mobile = string;
char *c[]= {Enc,Mac,Mobile};
在我的项目中,如果我这样做
char *string =@"hello";
它工作正常。但是当我在 a 中输入一些内容UITextField
并将其分配给 时char
,它没有显示正确的值。
即使我声明
NSString *string ;
self.stringVariable = mobileNumberTextField.text;
char * mobile = string;
char *c[]= {Enc,Mac,Mobile};
尝试使用转换:
当您从文本字段获取字符串值到您的字符时:
const char *myCharString = [your_textField.text UTF8String];
并根据需要使用该字符。
反之亦然,当您想将该字符显示回文本字段时:
[your_textField setText:[NSString stringWithUTF8String:myCharString]];
就这样
NSString 是一个 Objective-C 对象,而 char 指针只是一个普通的 C 指针类型。您不能互换使用它们,否则您会遇到运行时错误(很可能是段错误)。您必须从 NSString 创建一个 char 指针(反之亦然);
const char *str = "Something as a C string";
NSString *nsStr = [NSString stringWithCStrint:str encoding:NSUTF8StringEncoding]; // or ASCII