我最近在研究核心数据项目。有两个视图:其中一个是用户填写的表单,然后通过核心数据插入到sqlite数据库;另一个视图用于显示插入的条目并允许用户删除它们中的任何一个。在核心数据中插入/删除条目时更新不同控制器中的表格视图
我复制了从基于导航的应用程序项目中插入/删除条目的代码。如果用户仅执行插入或删除操作,则一切正常。但是,当两个操作交错时,出现问题...
例如: 1)用户使用表格插入“Apple”,“Orange”和“Grape”。该表正确显示数据。 2)然后用户删除条目“橙色”。桌子看起来还不错。 3)然后,用户插入一个新的条目“梨”。表格然后搞砸了。 “橙色”条目再次出现在桌面上...
我在整个测试过程中监控了sqlite数据库,一切正常。唯一的问题是,表格搞砸了。
我怀疑是因为表数据源没有更新的事实导致错误。由于根据indexPath添加/删除了一行,如果新条目与旧条目共享同一indexPath并且表数据不是最新的,那么看起来旧条目被重新插入。
但我不知道为什么表数据不是最新的。插入/删除操作在相同的托管上下文中执行。
这一直困扰着我一段时间,我对核心数据并没有太多的了解。我真的希望听到任何建议,以便它分类。预先感谢您的帮助。