使用一个NSFetchedResultController

时间:2016-03-05 11:26:29

标签: ios swift uitableview nsfetchedresultscontroller

我有基类Worker和子类EmployeeBookkeeperDirector以及xcdatamodeld中的实体。 现在我想使用NSFetchedResultController将它们提取到tableView中,以便每个部分中的每个实体都可以。 我不知道如何用单个frc做到这一点。 任何帮助。

enter image description here

1 个答案:

答案 0 :(得分:2)

NSFetchedResultsController一次只能与一个实体一起使用。由于您的类继承自工作者实体,但您无法提供可确定将用于这些部分的子类型的键路径,因此对您来说没问题。我建议的解决方案是向Worker实体添加一个类型属性,它可以是一个简单的Int,然后在每个子类中将初始化期间的值设置为每个的不同值类型。例如。

directorInstance.type = 1

...

employeeInstatnce.type = 2

然后定义您的NSFetchedResultsController:

var fetchRequest = NSFetchRequest(entityName: "Worker")
fetchRequest.predicate = NSPredicate(format: "lastName contains[cd] %@", nameSearchTerm)
var frc = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: moc, sectionNameKeyPath: "type", cacheName: nil)