确定这里进入我的设置:NSFetchedResultsController〜缓存导致问题?
对象模型:
* Category object is at the root
* Product is linked to a Category (many-to-1)
* ShoppingItem is linked to a Product (many-to-1)
应用程序设置:
我的应用程序的root一个TabBarController,并在每个选项卡的根目录的tableviewcontroller。
- 第一tableviewcontroller显示所有ShoppingItems
- 它使用一个NSFetchedResultsController来检索数据
- 此控制器的sortdescriptor被设置为 “Product.Category.Name”
- 的sectionNameKeyPath被设定as“Product.Category.Name”
- 没有谓词集
- 缓存名称为此NSFRC设置
- 这可以帮助我根据产品类别将购物商品分组到各个部分。
- 第二tableviewcontroller显示所有产品
- 它采用了NSFRC以及检索数据
- Sortdescriptor - “Category.Name”
- SectionNameKeyPath - “Category.Name”
- 谓词集为“活动== 1” - 仅加载活动产品
- 缓存名称也为此NSFRC设置
- 这可以帮助我根据产品类别将产品分组。
场景:
- 当我改变通过第三屏幕与产品相关联的类别,其中显示的产品适当地刷新本身,通过reslotting产品进入一不同的实现代码如下(和正确)部分
- 但是在显示购物项目的桌面上没有发生同样的情况
- 这不是我猜测的谓词的问题,因为问题不是关于丢失我tems,它更多的是关于插入错误部分的项目。
这两个tableviewcontrollers的设置方式都与NSFRCDelegate通知在更改段和行信息时一样。
任何关于这里发生的事情的线索?这种行为是否正确?
P.S. :Am @ work,不能发布代码片段。可以回家做,如果这会有所帮助。
莎拉,我敢肯定,与您的购物项目控制器相关联的NSFRC未被通知更改,可能是因为您使用的提取请求谓词不正确。至少,我们需要两个谓词来帮助你。 – 2010-08-30 07:36:57
我已经在问题中包含了谓词信息Eric – Sara 2010-08-30 08:59:10