Ios NSFetchedResultsControllerDelegate如何工作?

Ios NSFetchedResultsControllerDelegate如何工作?,ios,swift,uitableview,core-data,Ios,Swift,Uitableview,Core Data,我是iOS(Swift)新手,正在尝试理解NSFetchedResultsControllerDelegate机制。 我特别不明白的是如何识别NSFetchedResultsChangeType。什么调用插入/删除/更新等操作? 何时调用“func controller(…)”函数? 我无法从苹果的文档中得到它。 请解释一下。NSFetchedResultsController没有那么聪明。创建它时,可以设置一个fetchedRequest和它的上下文,并告诉它performFetch。一旦执行

我是iOS(Swift)新手,正在尝试理解NSFetchedResultsControllerDelegate机制。 我特别不明白的是如何识别NSFetchedResultsChangeType。什么调用插入/删除/更新等操作? 何时调用“func controller(…)”函数? 我无法从苹果的文档中得到它。
请解释一下。

NSFetchedResultsController
没有那么聪明。创建它时,可以设置一个fetchedRequest和它的上下文,并告诉它
performFetch
。一旦执行了一次提取,它就拥有一个与谓词匹配的对象数组。然后,它监视传递给它的核心数据上下文的所有更改。当一个对象(具有相同的实体类型)被更改时,fetchedResultsController会在更改对象上运行获取请求的谓词,以决定是否应将其添加到列表中或从列表中删除。如果该对象已被删除,或以前在列表中,但现在不在列表中,则该对象为
删除
。如果它以前不在列表中,但现在确实传递了谓词,则它是一个
插入
。如果排序描述符使用的某个字段发生更改,则该字段为
移动
,否则为
更新
。如果同时进行多个更改(一个
在上下文中保存
),则事件将按顺序委派-删除、插入、移动、更新。indexPath的值是任何插入或删除之前的索引,newIndexPath是任何插入或删除之后的值。这回答了你的问题吗?

NSFetchedResultsController
没有那么聪明。创建它时,可以设置一个fetchedRequest和它的上下文,并告诉它
performFetch
。一旦执行了一次提取,它就拥有一个与谓词匹配的对象数组。然后,它监视传递给它的核心数据上下文的所有更改。当一个对象(具有相同的实体类型)被更改时,fetchedResultsController会在更改对象上运行获取请求的谓词,以决定是否应将其添加到列表中或从列表中删除。如果该对象已被删除,或以前在列表中,但现在不在列表中,则该对象为
删除
。如果它以前不在列表中,但现在确实传递了谓词,则它是一个
插入
。如果排序描述符使用的某个字段发生更改,则该字段为
移动
,否则为
更新
。如果同时进行多个更改(一个
在上下文中保存
),则事件将按顺序委派-删除、插入、移动、更新。indexPath的值是任何插入或删除之前的索引,newIndexPath是任何插入或删除之后的值。这回答了你的问题吗?

是的,回答了。谢谢!是的。谢谢!