2012-01-15 107 views
0
ten.textValue = [[NSMutableString alloc]init]; 
ten.textValue = [NSMutableString stringWithString:textField.text]; 

我在第二行发生崩溃。
ten.textValue is NSMutableStringNSMutableString stringWithString发生崩溃

+0

什么是文本字段? – andershqst 2012-01-15 13:49:13

+0

它是UITextField。 – Nitish 2012-01-15 13:50:11

+3

为什么你只分配一个全新的'NSMutableString'来覆盖下一行? – dasblinkenlight 2012-01-15 13:50:14

回答

0

当您创建ten.textValue = [[NSMutableString alloc]init];时,您正在创建一个您拥有的对象。

当您尝试在下一行中添加字符串时,您正在创建一个自动释放字符串。这令编译器感到困惑,它报告“挂在 - 这是一个已分配的拥有对象”。

相反:

if(ten.textValue) 
{ 
    ten.textValue = [NSMutableString stringWithString: textField.text]}; 
} 
+0

十个未初始化。 – Nitish 2012-01-15 14:18:02

2

这可能是因为UITextFieldis nil by default,并通过nil[NSMutableString stringWithString:nil]text属性会导致崩溃。

你需要确保text不是nil当你通过它来进行复制,例如像这样:

[NSMutableString stringWithString: textField.text ? textField.text : @""] 

你也应该消除第一行 - 这也是没有用处的,因为分配并且分配的值立即被覆盖。

+0

编号textfield文本不为零,因为上面的代码位于textFieldShouldReturn中。我正在获取textfield文本。 – Nitish 2012-01-15 14:04:01

+1

@Nitish你尝试改变第二行吗?你还会遇到这种情况吗? – dasblinkenlight 2012-01-15 14:13:11