NSPredicate'ALL或ANY运算符的左侧必须是NSArray或NSSet'

时间:2012-08-26 04:29:19

标签: ios xcode core-data nspredicate nsfetchrequest

不完全确定为什么现在不起作用,我以为它以前一直在工作。有没有人看到这个FetchRequest构造存在问题?

- (NSArray *)entriesForDate:(NSDate *)date {
    NSFetchRequest *request = [[NSFetchRequest alloc]initWithEntityName:@"Entry"];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY addedOn.unique like %@", [T3Utility identifierForDate:date]];
    request.predicate = predicate;

    NSError *error = nil;
    NSArray *matches = [self.database.managedObjectContext executeFetchRequest:request error:&error];

    return matches;
}

同样,我99%确定这段代码直到最近一直在运行,所以我想也许在我的代码中某处还有其他东西。 。但是当我通过调试器运行时,这就是挂起的地方。这是我的错误:

ALL或ANY运算符的左侧必须是NSArray或NSSet

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:8)

似乎addedOn不是一个多对多的关系。确保在谓词中使用属性/关系的正确名称。另请注意,您不能在“任何”谓词中使用一对一关系。