NSPredicate 与 OR 返回错误

NSPredicate with OR returning error

我对以下谓词有疑问:

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(creatorUserRecordID == %@) OR (toUser == %@)", userId, userId];

当我在查询 CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Message" predicate:predicate]; 中使用它时,出现错误:'CKException',原因:'Unexpected expression'.

当我像这样分别使用这两个时:

   NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"(creatorUserRecordID == %@)", userId];
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"(toUser == %@)", userId];

然后使用这些谓词之一执行查询它工作正常。我也试过使用 NSCompoundPredicate 但结果总是一样的......有什么想法吗?

CKQuery 的文档列出了所有有效的谓词语法。奇怪的是,在 "Basic compound predicates" 下它列出了 NOTAND&&OR|| 未列出,显然不支持 CloudKit 查询谓词。