4

我有数据模型,有 4 个实体: 1. 抽象实体“Term” 2. 从“Term”继承的两个实体 - “Section”和“Type”,定义了与“Seminar”实体的关系

这是我的模型(由于声誉低,无法在此处附加图片):核心数据模型

我正在获取实体“Term”,一切都很好。如何编写谓词来获取继承实体中设置“研讨会”计数> 0 的实体?[NSPredicate preditcateWithFormat:@"seminars.@count > 0"] 当然不起作用,因为现在在抽象“术语”中定义了这种关系。

我已经尝试将关系“研讨会”移动到抽象的“术语”,但我不知道如何定义从“研讨会”实体到“类型”结束“部分”的关系。

顺便说一句,我以这种方式使用 fetchedResultController 来实现 UITableView 单元格/部分/更新/通知魔术。我可以以编程方式过滤结果并自己填充控制器模型,但如果有任何方法可以保持核心数据范式,那就太好了。

在某些时候,Xcode 变得疯狂并崩溃,直到我放弃了对模型的所有更改。

我的代码很简单:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Term" inManagedObjectContext:self.managedObjectContext];
fetchRequest.entity = entity;

fetchRequest.fetchBatchSize = 20;

NSArray *sortDescriptors = @[[[NSSortDescriptor alloc] initWithKey:@"vid" ascending:NO],
                             [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]];

fetchRequest.sortDescriptors = sortDescriptors;

NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"vid" cacheName:CACHE_NAME];

感谢帮助。

4

0 回答 0