【发布时间】:2014-08-05 23:01:58
【问题描述】:
我有一个 NSFetchResult,它返回包含许多相关对象(Aobj ->> Bobj)的托管对象。 “Bobj”托管对象包含一个 BOOL 属性“isSet”(存储为 NSNumber)。 NSFetchResult 返回所有 Aobj 对象。
我想要一个 NSPredicate 的建议,它只返回一个 Aobj,其中只有那些 isSet 为 TRUE (@1) 的 Bojs。
目前,我枚举了我的 fetch 结果返回的 Aobj 的 NSArray,以便我可以通过这种方式获得过滤后的 Aobj 的 NSArray:
- (NSArray *)filteredObject:(Aobj *)aObj
{
NSMutableArray* bObjs = [aObj.bObjs mutableCopy];
[bObjs enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(Bobj* bObj, NSUInteger idx, BOOL *stop)
{
if (bObj.isSet == [NSNumber numberWithBool:NO])
{
[bObjs removeObject:story];
}
}];
return bObjs;
}
问另一种方式:如何为我的 NSFetchResult 定义一个 NSPredicate 来获取我所有的 Aobj,但将相关的 Bobjs 限制为匹配 Bobj.isSet == YES 的那些?
提前致谢!
【问题讨论】:
标签: ios objective-c core-data nspredicate one-to-many