代码之家  ›  专栏  ›  技术社区  ›  cahlbin

仅发生更新时报告nsfetchedresultschangeinsert

  •  1
  • cahlbin  · 技术社区  · 14 年前

    我有一个类充当nsfetchedResultsControllerDelegate,它接收消息给 -(void)控制器:DidChangeObject:AtindexPath:ForChangeType:NewIndexPath: 使用change类型nsfetchedresultschangeinsert,但作为主题的实际对象肯定不是新插入的,而是更新的。所以我希望得到一个类型为nsfetchedresultschangeupdate的更改消息,是不是?

    如果我检查对象上isinsert的值,它将生成false(正如程序中的逻辑所预期的那样)。所以我的问题是,当它只是一个变更/更新时,为什么它被报告为一个插入?

    我唯一能想到的是,正在发生的部分更改是,插入另一个实体类型的对象时,与设置为nsfetchedresultsController要获取的实体类型的对象之间存在关系。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Marcus S. Zarra    14 年前

    因为对委托的调用发生在保存之后,此时对象不再位于 isInserted 状态。现在已成功保存并完成插入。

    -isInserted 收益率 YES 当新插入但尚未保存对象时。