objective-c – 获取关系对象

objective-c – 获取关系对象,第1张

概述CoreData初学者 我对CoreData有一个简单的问题.我的模型有两个实体,现在称为A和B.实体A具有B实体的多对多关系,它与实体A具有反比关系. 我正在使用以下代码检索实体A: NSManagedObjectContext *context = [self managedObjectContext];NSEntityDescription *entity = [NSEntityDescr CoreData初学者

我对CoreData有一个简单的问题.我的模型有两个实体,现在称为A和B.实体A具有B实体的多对多关系,它与实体A具有反比关系.

我正在使用以下代码检索实体A:

NSManagedobjectContext *context = [self managedobjectContext];NSEntityDescription *entity = [NSEntityDescription entityForname:@"A"                                          inManagedobjectContext:context];NSFetchRequest *request = [[NSFetchRequest alloc] init];[request setEntity:entity];NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"name"                                                           ascending:YES];[request setSortDescriptors:[NSArray arrayWithObject:descriptor]];NSError *error = nil;NSArray *items = [context executeFetchRequest:request error:&error];if (error) /* ... */;for (ID item in items){    /* ... */}[request release];[descriptor release];

现在,我想在该循环内检索由A的关系指向的所有对象B的数组.我怎样才能实现这一点?我应该创建另一个获取请求还是更实用的方法?

我搜索过StackOverflow并发现了类似的问题,但有时候太模糊了.

解决方法 NSFetchRequest上有一个实例方法,名为-setRelationshipkeypathsForPrefetching:.

此方法采用一组键名称,这些键名称将用于预取与这些键路径关系中定义的任何对象.考虑一下您的示例,使用新代码更新:

NSFetchRequest *request = [[NSFetchRequest alloc] init];[request setEntity:entity];Nsstring *relationshipKeyPath = @"bObjects"; // Set this to the name of the relationship on "A" that points to the "B" objects;NSArray *keypaths = [NSArray arrayWithObject:relationshipKeyPath];[request setRelationshipkeypathsForPrefetching:keypaths];

现在,一旦完成了获取请求,所有这些关系对象都应该出现故障并准备就绪.

总结

以上是内存溢出为你收集整理的objective-c – 获取关系对象全部内容,希望文章能够帮你解决objective-c – 获取关系对象所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存