草庐IT

ios - NSPredicate 'The left hand side for an ALL or ANY operator must be either an NSArray or NSSet'

coder 2023-09-25 原文

不完全确定为什么它现在不起作用,我认为它以前一直在起作用。有人看到这个 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

有什么想法吗?

谢谢!

最佳答案

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

关于ios - NSPredicate 'The left hand side for an ALL or ANY operator must be either an NSArray or NSSet',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127618/

有关ios - NSPredicate 'The left hand side for an ALL or ANY operator must be either an NSArray or NSSet'的更多相关文章

随机推荐