我在我的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