********更新问题**********
如果tableview不影响模型: 是否更改了屏幕上单元格的索引路径以反映其实际位置,或者在调用reloadData之前,已删除单元格的索引是否不可见?
*******原始问题**********
我知道它标记了要删除的细胞并动画删除,但它对模型有什么作用?
它是否会影响模型(我无法想象)?
细胞“仍在那里”但是看不见吗?
当用户开始滚动时,是否会跳过已删除索引的委托调用?
是否希望您更新模型?
到目前为止我所阅读的内容似乎含糊不清......
答案 0 :(得分:5)
从tableView中删除一行。它根本不会修改您的模型。你必须自己做。单元格将被删除,但如果在从模型中删除行之前调用reloadData。细胞将再次出现。
所以,是的,它希望你更新你的模型。
答案 1 :(得分:1)
UITableView是一个VIEW,记住UIKit是基于MVC的。您有责任更新模型。事实上,您的控制器可能会调用(void)deleteRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation;
以响应观察(或被通知)模型中的更改。
例如,假设您有一个“删除10个随机项目”。正确的流程是:
虽然感觉有点做作 - 为什么不让视图更新列表并告诉模型?它会使更容易理解的更好的代码更好用UIKit。例如,这种设计并不假设2和3中的控制器是相同的控制器,因此您具有更大的灵活性。
我通常会将YAGNI应用于ll设计,但我相信强大的MVC专注os UIKit意味着YAGNT(你会......)