核心数据:获取抽象实体并按继承实体关系过滤

时间:2013-03-05 17:34:26

标签: ios objective-c core-data nspredicate abstract

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

这是我的模型(由于信誉不佳,无法在此处附加图片):core data model

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

我已经尝试将关系“研讨会”转移到抽象“术语”,但我无法弄清楚如何定义从“研讨会”实体到“类型”结束“部分”的关系。

BTW,我正在以这种方式使用fetchedResultController来获取UITableView单元格/ section / updates / notifications魔术。我可以通过编程方式过滤结果并自己填充控制器模型,但如果有任何方法可以保留核心数据范例,那就太棒了。

在某些时刻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];

感谢您的帮助。

0 个答案:

没有答案