ios – 核心数据父实体

ios – 核心数据父实体,第1张

概述我有一个抽象的实体A,我也有两个实体,其父母是实体A. 每个孩子与其他实体有不同的关系. 我试图获取实体A的所有子实体,其中isPublic布尔值为YES. 我在过去提取子类化实体时遇到了与提取相关的问题,我确信我只是没有正确地执行它. 所以我们可以说例如: •实体A是“文件”, •实体B是“诗”, •实体C是“文章” 所有的诗歌和文章子类文档,文档有一个名为isBookmarked的属性,sue 我有一个抽象的实体A,我也有两个实体,其父母是实体A.
每个孩子与其他实体有不同的关系.

我试图获取实体A的所有子实体,其中isPublic布尔值为YES.

我在过去提取子类化实体时遇到了与提取相关的问题,我确信我只是没有正确地执行它.

所以我们可以说例如:
•实体A是“文件”,
•实体B是“诗”,
•实体C是“文章”

所有的诗歌和文章子类文档,文档有一个名为isBookmarked的属性,suer可以为一首诗或文章加书签,我需要一种方法来获取所有被加入书签的文档.实体B和C需要独立,因为它们拥有其他关系.

我想使用NSFetchedResultsController来获得最佳的Core Data和UItableVIEw性能,而我正在努力获取各种诗歌和文章.

什么获取请求会给我混合的诗歌和文章?

解决方法 像这样简单的事情(假设ismarkmarked是一个布尔值):

NSEntityDescription *entityDescription = [NSEntityDescription entityForname:@"document" inManagedobjectContext:context];// This may not be the most elegant way of using a boolean in a predicate,but…NSNumber *numIsBookmarked = [NSNumber numberWithBool:YES];nspredicate *predicate = [nspredicate predicateWithFormat:@"isBookmarked == %@",numIsBookmarked];NSFetchRequest *request = [[NSFetchRequest alloc] init];[request setEntity: entityDescription]; [request setPredicate: predicate]; [request setResultType: NSManagedobjectResultType];NSError *error = nil; NSArray *results = [contextMain executeFetchRequest:request error:&error];if (error) {    // deal with the error}[request release];

之后,您将检查是否获取了哪个子类:

for (NSManagedobject *obj in results){     if ([obj isKindOfClass:[Poem class]])    {        // do whatever    }    else if ([obj isKindOfClass:[Article class]])    {        // do whatever    }}

(或者,如果几个子类化的MO实现相同的方法,则执行respondsToSelector:test会更有效.)

这不起作用?

总结

以上是内存溢出为你收集整理的ios – 核心数据父实体全部内容,希望文章能够帮你解决ios – 核心数据父实体所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1078195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存