【发布时间】:2014-07-18 14:35:07
【问题描述】:
我有两个实体:树林和树
Woods 与 Tree 有关系,因为一个树林可以有很多树。 好的,这很容易。
在我的应用程序中,我知道一棵树林的 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,在谓词中使用对象本身。
-
mmmm 你能解释一下吗?
-
不要使用
objectID的Woods。使用Woods本身。使用NSManagedObjectContext的objectWithID:方法从其对象ID 实例化Woods。 -
确定之后?获取我的树林的树数的谓词形式是什么?
-
[NSPredicate predicateWithFormat:@"wood == %@", [self app].current_wood]。作为旁注,您在命名变量和方法时没有遵循正确的约定。我建议阅读此developer.apple.com/library/mac/documentation/Cocoa/Conceptual/… 遵循约定可以让其他人更轻松地帮助您解决问题。
标签: ios core-data nspredicate nsfetchrequest