iOS:核心数据,与Auto ID的关系数

时间:2014-07-18 14:35:08

标签: ios core-data nspredicate nsfetchrequest

我有两个实体:伍兹和树

伍兹与树有关系,因为树林可以有很多树。 好的,这很容易。

在我的应用程序中,我知道一个树林的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);

但它不起作用,为什么?

1 个答案:

答案 0 :(得分:0)

你应该停止思考ID,而是拥抱对象图。您为了这个目的而滥用标识对象的ID(但是用于跨线程标识对象)。

谓词中的关系就像属性一样:

[NSPredicate predicateWithFormat:@"wood = %@", aWoodInstance];

在特定情况下,您不需要获取请求。只需写下:

wood.trees.count

这可不容易!看看对象图有多强大?