核心数据NSFetchedResultsController - 返回的记录总数

Nea*_*l L 40 iphone core-data nsfetchedresultscontroller

我在iPhone应用程序中使用NSFetchedResultsController,我想知道是否有一些简单的方法来获取所有部分返回的总行数.

而不是获取[[fetchedResultsController sections] count]然后循环遍历每个部分以获得它的计数,它可以在一行中完成吗?

谢谢!

ger*_*ry3 111

该行返回获取对象的总数:

[fetchedResultsController.fetchedObjects count]
Run Code Online (Sandbox Code Playgroud)

  • @Senseful它说它不会对对象造成错误?从文档中可以看出这一点并不明显.这是你测试过的吗? (3认同)
  • 对于任何想知道,如果您正在使用获取请求的获取批量大小属性,访问上面的计数方法不应该错误所有对象.参考:https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html (2认同)

Max*_*tov 15

这个怎么样?

[fetchedResultsController.sections.valueForKeyPath: @"@sum.numberOfObjects"];
Run Code Online (Sandbox Code Playgroud)

这根本不会触及所取出的物体,所以保证不会对它们造成错误.

  • @mokagio因为performFetch已经创建了错误.如果你有成千上万的部分,你可以简单地在`fetchedObjects`上调用`count`,而不是循环遍历可能非常昂贵的部分. (2认同)