我有两个实体:伍兹和树
伍兹与树有关系,因为树林可以有很多树。 好的,这很容易。
在我的应用程序中,我知道一个树林的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);
但它不起作用,为什么?
答案 0 :(得分:0)
你应该停止思考ID,而是拥抱对象图。您为了这个目的而滥用标识对象的ID(但是用于跨线程标识对象)。
谓词中的关系就像属性一样:
[NSPredicate predicateWithFormat:@"wood = %@", aWoodInstance];
在特定情况下,您不需要获取请求。只需写下:
wood.trees.count
这可不容易!看看对象图有多强大?