CoreData - 获取 NSManagedObject 的关系子集
Posted
技术标签:
【中文标题】CoreData - 获取 NSManagedObject 的关系子集【英文标题】:CoreData - Getting a NSManagedObject's relationship subset 【发布时间】:2014-07-17 07:46:30 【问题描述】:菜鸟问题传入(非常简单但在任何地方都找不到答案):
我有一个实体
MY_ENT *my_ent = initialized elsewhere;
这个实体有一个称为my_rel
的一对多关系
NSLog(@"Relations: %lu", my_ent.my_rel.count);
关系:15
我想得到它的一个子集,其中字段my_field
等于@"xx"
我尝试循环填充 NSArray 的关系,但没有运气(指针似乎已解除分配)。
NSMutableArray *my_rels;
for (MY_REL *my_rel in my_ent.my_rel)
if ([my_rel.my_field isEqualToString:@"xx"])
[my_rels addObject:my_rel];
也许我应该使用谓词,但我不明白如何在这里使用。
【问题讨论】:
【参考方案1】:是的,使用谓词更容易。你可以这样做:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"my_field = %@", x];
NSSet *subset = [my_ent.my_rels filteredSetUsingPredicate:predicate];
【讨论】:
以上是关于CoreData - 获取 NSManagedObject 的关系子集的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中将可转换属性保存到 Core Data
[NSManagedObjectContext 保存:] 上 NSManagedObjectMergeError 错误的原因