我在父子上下文中使用UIManagedDocument。
在我的孩子的情况下,我执行以下操作
代码1
NSSet *results = [self.event.memberships filteredSetUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
return ([[evaluatedObject deleted] boolValue] == NO);
}]];
上面的代码返回预期的结果(仅事件的未删除成员)。
代码2
但是这段代码没有。它获取所有记录。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"deleted == NO"];
NSSet *results = [self.event.memberships filteredSetUsingPredicate:predicate];
似乎令人困惑。两者应返回相同的结果,但predicateWithBlock返回正确的结果,其中as predicateWithFormat返回所有记录。
使用predicateWithBlock代替的优点和缺点是predicateWithFormat什么?
holdtom
杨魅力
Helenr