iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 核心数据父实体大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个抽象的实体A,我也有两个实体,其父母是实体A.
每个孩子与其他实体有不同的关系.

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

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

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

所有的诗歌和文章子类文档,文档有一个名为isBookmarked的@L_618_9@,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 – 核心数据父实体所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。