ios coredata - 计算(仅限)“许多人”。在“一对多”中没有阅读的关系

时间:2016-04-04 19:21:48

标签: swift core-data

我在我的iOS应用程序中使用CoreData来保存两种实体,每种实体都涉及一对多关系 - 实体A有一个实体B的数组(NSSet)。

到目前为止,我有一个TableView,当前显示所有实体A对象及其各自的属性。 我现在想要的是每个也显示每个实体A的实体B的计数 - 但是没有经过整个获取过程从CoreData数据库加载每个实体B - 我只想要实体B的计数。

要明确的是,我只想知道每个实体A引用了多少实体B,我不想实际加载实体B实体或其任何数据。

这可能吗?

我现有的代码将加载所有实体A实体和(不幸的是)每个实体B集。如您所见,我最终使用的唯一值是NSSet中的实体B的数量。 必须有一种方法只能检索所述计数而不是加载每个实体B实体吗?

let fetchRequest = NSFetchRequest()
let entity = NSEntityDescription.entityForName("EntityA", inManagedObjectContext: self.managedObjectContext!)
fetchRequest.entity = entity

fetchRequest.fetchBatchSize = 10

let sortDescriptor = NSSortDescriptor(key: "created", ascending: false)   
fetchRequest.sortDescriptors = [sortDescriptor]

let afetchedController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext!, sectionNameKeyPath: nil, cacheName: nil) 

afetchedController.delegate = self

afetchedController!.performFetch()

...
...

let entityBs : NSSet = afetchedController!.objectAtIndexPath(indexPath).valueForKey("entityBs")!
let entityBcount = entityBs.count

0 个答案:

没有答案