Дублирование в ячейке Uitableview? - PullRequest
0 голосов
/ 27 августа 2011

Я устал от попыток всю ночь решить эту проблему в начале своей проблемы, когда я добавляю новые данные, они сохраняют данные в NSMutableArray и в cellForRowAtIndexPath я показываю данные, потому что у меня есть разделы, так что я сделал как следует

if(indexPath.section == 0)
{
    for (NSDictionary *dictt in data) {
        if ([[dictt objectForKey:@"Type"] isEqualToString:@"Electricity"]) {
            NSLog(@"%@",[dictt objectForKey:@"Account"]);
            cell.textLabel.text = [dictt objectForKey:@"Account"];
            cell.detailTextLabel.text = [dictt objectForKey:@"Type"]; 
            [mainTableView reloadInputViews];
        }



    }  

}

Когда дело доходит до конечного результата, он показывает этот первый

enter image description here

когда я добавляю другие данные, это показывает

enter image description here

и если они являются данными в другом разделе, скажем, вода, а когда я удаляю, он начинает удалять из раздела Электричество

и вот функция удаления:

- (void) tableView: (UITableView *) tableView commitEditingStyle: (UITableViewCellEditingStyle) editingStyle forRowAtIndexPath: (NSIndexPath *) indexPath {

[data removeObjectAtIndex:indexPath.row]; [tableView

deleteRowsAtIndexPaths: [NSArray arrayWithObject: indexPath] withRowAnimation: UITableViewRowAnimationTop];

[self saveData];

[mainTableView reloadData]; }

1 Ответ

2 голосов
/ 27 августа 2011

Вы используете один и тот же массив для всех своих разделов, поэтому вы определенно хотите получить лучшую структуру данных. В вашей функции удаления вы не проверяете раздел таблицы, поэтому он удаляется из неправильного раздела.

По сути, вы хотите создать массив, содержащий массивы данных для каждого раздела, чтобы в вашем мастер-массиве объект с индексом 0 был массивом для раздела 0 и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...