删除由字典填充的TableView单元格

时间:2015-01-13 18:10:41

标签: objective-c uitableview nsmutabledictionary

因此,删除表格视图单元格非常简单。您从数组中删除该对象,并重新加载表视图数据。现在......我有一个从NSMutableDictionary而不是数组填充的表视图(我们需要因为我们正在解析数据并存储它)。有谁知道如何通过这种方法删除单元格?我试过简单地调用[tableView reloadData];这令人惊讶地工作,但显然创造了一个无限循环。我不喜欢无休止的循环。有没有人有什么建议?我在研究中找不到任何相关信息。

这是cellForRowAtIndexPath委托中的一些相关代码:

        if (![frString isEqual:@"COOL STUFF"] && [subString isEqualToString:@"COOL"]) {
            NSLog(@"A COOL is showing where it shouldn't, and it's %@", subString);
            //remove all cells starting with COOL

            [myDictionary removeObjectForKey:[self.dictName objectAtIndex:row]];
            [tableView reloadData];

        }

另外,我宁愿隐藏单元格而不是永久删除字典中的信息。这可能吗?

1 个答案:

答案 0 :(得分:1)

有些事情你做错了:

  • 您不应删除cellForRowAtIndexPath中的行,因为在tableview要呈现时会调用它们。因此,您删除一行,然后再次渲染,调用cellForRowAtIndexPath:,...
  • 删除行或重新加载数据。 deleteRowsAtIndexPaths:删除带动画的行集,reloadData重新加载整个tableView,因此取消动画,deleteRowsAtIndexPaths:变为无意义
  • 确保从字典中删除了正确的numberOfRowsInSection:吗?