我有一个核心数据对象A.
对象A包含一个对象数组B - 如A.bObjects
。
对象B包含一个对象C数组 - 如B.cObjects
。
如何从B.cObjects
为零的对象A获取所有对象?
我可以解决这个问题:
NSMutableArray *array = [[NSMutableArray alloc] init];
for(B *b in A.bObjects)
{
if([b.cObjects count] == 0)
[array addObject:b];
}
但我认为如果我有很多对象B会占用大量资源。而且我不喜欢我的解决方法。:)
有什么想法吗?
答案 0 :(得分:1)
我相信你可以使用,如果你只想要来自特定A的所有具有空cObjects的B。
NSPredicate* predicate = [NSPredicate predicateWithString:@"cObjects.@count == 0"];
NSArray* emptyCObjects = [A.bObjects filteredArrayUsingPredicate:predicate];
如果您希望所有具有空cObject的As的所有B,请将其与NSFetchRequest合并。
不是100%肯定会更有效,但如果我冒险猜测,我会说使用谓词和KVC,因为我相信Apple已经做了一些优化。还有更少的代码行