UItableView с UITextfield для NSMutableArray CRASH при записи обновлений нажмите - PullRequest
0 голосов
/ 14 марта 2011

У меня есть UITableView с пользовательской ячейкой, где UITextField находится, я назначаю следующее действие своему UITeextfield для записи данных в nsmutablearray

[textFieldCell.textfield addTarget:self action:@selector(textChanged:) forControlEvents:UIControlEventEditingChanged];

и функцию

- (void)textChanged:(UITextField *)source
{
    NSString *str= source.text;
    NSUInteger itager = (([self.tableView indexPathForCell:(TextFieldCell *)[[source superview] superview]].row)-1);
    [collectedAnswersArray replaceObjectAtIndex:itager withObject:str];
    NSLog(@"replacing at %i = %@",itager,[collectedAnswersArray objectAtIndex:itager]);

}

Atконец таблицы У меня есть последняя ячейка, в которую я вставляю запись, когда она щелкает. Я записываю данные в базу данных из изменяемого массива.

Проблема, с которой я сталкиваюсь, вызывает сбой приложения, если мой фокус все еще находится в текстовом поле.и по какой-то странной причине он пропускает исключение обратно в эту строку: [collectAnswersArray replaceObjectAtIndex: itager withObject: str];говорят, что 489045358493 за пределами диапазона. Но речь не о диапазоне.Если я отклоняю клавиатуру, все в порядке.

Как освободить фокус от текстового поля, которое больше не видно в моем текстовом поле.Потому что у меня есть ощущение, что в нем есть какая-то ссылка на это текстовое поле или что-то еще, и это его вызывает.

1 Ответ

0 голосов
/ 14 марта 2011

Просто попробуйте это: [collectAnswersArray replaceObjectAtIndex: [itager intValue] withObject: str];

...