Swift核心数据:fetchBatchSize与fetchOffset

时间:2018-08-31 12:41:10

标签: swift core-data

我是iOS Swift编程的新手。我的应用程序中有大量工作数据(核心数据),我想限制它。我遇到了两个选项fetchBatchSize和fetchOffset。

在官方文档中两者都具有相同的用途

  

fetchBatchSize   您可以使用此功能来限制您的工作数据集   应用。与fetchLimit结合使用,您可以创建一个子范围   任意结果集。

     

fetchOffset此属性可用于限制工作集   数据。与fetchLimit结合使用,您可以创建一个   任意结果集。

两者之间有什么区别?

1 个答案:

答案 0 :(得分:0)

假设您在核心数据中有以下对象-A,B,C,D,E,F,G

如果您尝试获取所有对象,则会得到[A, B, C, D, E, F, G]

如果将fetchOffset设置为2,则会得到[C,D,E,F,G],因此它将获取指定的fetchOffset之后的所有内容。

使用

fetchBatchSize是为了使Core Data不会一次获取所有对象,可以说在此示例中,您将fetchBatchSize设置为2,它将获取前两个对象,因此A and B剩下的就是错误,当您尝试访问C核心数据时,将满足该错误并获得C and D

假设您有1000个名称,并且将它们列出在UITableView中,一次只能显示20个名称,那么将fetchBatchSize的值设置为比全名显示的值高一点是有意义的,因此,例如,如果用户从不滚动Core Data,则仅获取前30个对象,而当用户向下滚动Core Data时,将立即获取下30个对象和下30个对象...