2012-01-15 88 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