我有两个实体:树林和树木
树林与树有关系,因为树林可以有很多树。好吧,这很容易。
在我的应用中,我知道一棵树林的ID(自动ID:NSManagedObjectID),我想知道我的树林有几棵树。
我的代码是:
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"Tree"];
[req setPredicate:[NSPredicate predicateWithFormat:@"wood.self == %@", [self app].current_wood_id]];
[req setResultType:NSCountResultType];
NSUInteger total = [context countForFetchRequest:req error:&error];
NSLog(@"total:%d", (int)total);
但这不起作用,为什么呢?
您应该停止思考ID,而应该使用对象图。您要用来标识对象的ID并没有用于此目的(而是用于跨线程标识对象)。
谓词中的关系就像属性一样写:
[NSPredicate predicateWithFormat:@"wood = %@", aWoodInstance];
在您的特定情况下,您不需要获取请求。写吧:
wood.trees.count
再简单不过了!看看对象图有多强大?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句