Я должен упустить что-то простое здесь, но это ускользает от меня.После того, как пользователь вводит нового человека в изменяемый массив, я хочу обновить таблицу.Изменяемый массив является источником данных.Я считаю, что моя проблема лежит в пределах cellForRowAtIndexPath
.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TextFieldCell *customCell = (TextFieldCell *)[tableView dequeueReusableCellWithIdentifier:@"TextCellID"];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (indexPath.row == 0) {
if (customCell == nil) {
NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"TextFieldCell" owner:nil options:nil];
for (id currentObject in nibObjects) {
if ([currentObject isKindOfClass:[TextFieldCell class]])
customCell = (TextFieldCell *)currentObject;
}
}
customCell.nameTextField.delegate = self;
cell = customCell;
}
else {
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];
cell.textLabel.text = [[self.peopleArray objectAtIndex:indexPath.row-1] name];
NSLog(@"PERSON AT ROW %d = %@", indexPath.row-1, [[self.peopleArray objectAtIndex:indexPath.row-1] name]);
NSLog(@"peopleArray's Size = %d", [self.peopleArray count]);
}
}
return cell;
}
Когда я впервые загружаю вид, все замечательно.Вот что печатает:
PERSON AT ROW 0 = Melissa
peopleArray's Size = 2
PERSON AT ROW 1 = Dave
peopleArray's Size = 2
После того, как я добавляю кого-то в этот массив, я получаю это:
PERSON AT ROW 1 = Dave
peopleArray's Size = 3
PERSON AT ROW 2 = Tom
peopleArray's Size = 3
Когда я добавляю второго человека, я получаю:
PERSON AT ROW 2 = Tom
peopleArray's Size = 4
PERSON AT ROW 3 = Ralph
peopleArray's Size = 4
Почему не печатать всех в массиве?Этот шаблон продолжается, и он всегда печатает только двух человек, и это всегда последние два человека.Какого черта я пропускаю?
--- ОБНОВЛЕНО ---
Хорошо.Мои клетки не обновляются должным образом, и я решил, что то, о чем я просил совета, поможет мне.Я думаю, это не было главной проблемой.
Моя проблема в том, что в моих строках не выводится правильная информация.Когда вид сначала загружается, я получаю:
Melissa
Dave
, но после добавления Тома я получаю:
Melissa Dave
Melissa or Dave
Tom Tom
и после добавления Ральфа я получаю:
Melissa ?
Tom or ?
Tom Tom
Ralph Ralph
Что происходит?