我创建了一个名为TItem的NSManagedObject。对于该对象,我添加了一个如下所示的辅助实例方法:
- (BOOL) isItemForUser:(TUser *)user;
isItemForUser将TUser对象中的各种属性与自身进行比较,并根据比较结果返回BOOL。
我想创建一个能够将TUser对象传递给该方法的谓词,这样我就可以找到所有TItem对象,这些对象在传递给定对象时返回YES。从本质上讲,我想做类似以下的事情:
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"isItemForUser:%@ == YES",self.user];
上面的语法显然不正确,但我正在寻找同样精神的东西。有什么想法吗?
谢谢!
答案 0 :(得分:0)
我会探索在谓词中的isItemForUser
方法中进行的任何比较。也许简化数据模型以使比较更容易?例如,添加一些映射到用户的新属性,并在创建对象时计算。这样,比较非常简单。
答案 1 :(得分:0)
FUNCTION
正在寻找:
[NSPredicate predicateWithFormat:@"FUNCTION(SELF, 'isItemForUser:', %@) == YES", self.user]
但有两点需要注意:
isItemForUser:
必须返回NSNumber
,而不是BOOL