将字符串的textfield值分配给char *

时间:2012-08-16 11:55:14

标签: iphone objective-c c char

在我的项目中,如果我这样做

char *string =@"hello";

它运作正常。但是当我在UITextField中输入内容并将其分配给char时,它没有显示正确的值。

即使我宣布

 NSString *string ;
 self.stringVariable = mobileNumberTextField.text;
 char * mobile = string;
 char *c[]= {Enc,Mac,Mobile};

2 个答案:

答案 0 :(得分:1)

尝试使用转换:

当你从textfield获取字符串值到你的char:

const char *myCharString = [your_textField.text UTF8String];

并根据需要使用该字符。

反之,当你想将这个字母显示回textField:

[your_textField setText:[NSString stringWithUTF8String:myCharString]];

这就是全部

答案 1 :(得分:0)

NSString是一个Objective-C对象,而char指针只是一个普通的C指针类型。您不能互换使用它们,否则您将遇到运行时错误(很可能是段错误)。你必须从NSString创建一个char指针(以及另一种方式);

const char *str = "Something as a C string";
NSString *nsStr = [NSString stringWithCStrint:str encoding:NSUTF8StringEncoding]; // or ASCII