Ios NSPredicate带有或返回错误

Ios NSPredicate带有或返回错误,ios,nspredicate,cloudkit,Ios,Nspredicate,Cloudkit,我对以下谓词有问题: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(creatorUserRecordID == %@) OR (toUser == %@)", userId, userId]; 当我在queryCKQuery*query=[[CKQuery alloc]initWithRecordType:@“Message”谓词:谓词]中使用它时我有一个错误,上面写着:“CKException”,原因是:“

我对以下谓词有问题:

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(creatorUserRecordID == %@) OR (toUser == %@)", userId, userId];
当我在query
CKQuery*query=[[CKQuery alloc]initWithRecordType:@“Message”谓词:谓词]中使用它时我有一个错误,上面写着:“CKException”,原因是:“意外表达式”

当我分别使用这两个时,如下所示:

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

然后使用其中一个谓词执行查询,效果很好。我也尝试过使用NSCompoundPredicate,但结果总是一样的。。。有什么想法吗?

CKQuery的文档列出了所有有效的谓词语法。奇怪的是,在“基本复合谓词”下,它列出了
,以及
和&
<代码>或
|
未列出,而且显然不支持CloudKit查询谓词。

我在文档中找到的是:基本复合谓词和、&逻辑and。或| |逻辑或。不不符合逻辑。我有什么不对劲吗?好的,我明白了。CKQuery不允许谓词带有或,尽管NSPredicate允许。我的错误。您能告诉我如何使用或查询CloudKit吗?