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

Я получаю крах во второй строке.
ten.textValue is NSMutableString.NSMutableString stringWithString, дающий сбой

+0

Что такое TextField? – andershqst

+0

Это UITextField. – Nitish

+3

Почему вы назначаете совершенно новый 'NSMutableString' только для того, чтобы перезаписать его на следующей строке? – dasblinkenlight

ответ

0

При создании своего ten.textValue = [[NSMutableString alloc]init]; вы создаете объект, который у вас есть.

Когда вы пытаетесь добавить к нему строку в следующей строке, вы создаете строку с автореализацией. Это сбивает с толку компилятор, который сообщает, что «зависает - это уже выделенный объект, уже принадлежащий».

Вместо:

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

десять не был инициализирован. – Nitish

2

Это, вероятно, потому, что text свойство UITextFieldis nil by default и передавая nil к [NSMutableString stringWithString:nil] приводит к сбою.

Вы должны убедиться, что text не nil, когда вы передаете его необходимо скопировать, например, так:

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

Вы также должны исключить первую строку - она ​​не служит никакой цели, так как выделяемая и назначенное значение немедленно перезаписывается.

+0

Нет текста текстового поля не ноль, потому что выше код находится в textFieldShouldReturn. Я получаю текстовый текст. – Nitish

+1

@Nitish Вы пытались изменить вторую строчку? Вы все еще получаете крах? – dasblinkenlight

Смежные вопросы