我遇到以下谓词的问题:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(creatorUserRecordID == %@) OR (toUser == %@)", userId, userId];
当我在查询CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Message" predicate:predicate];
中使用它时,我遇到错误:'CKException',原因:'意外表达'。
当我单独使用这两个时:
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"(creatorUserRecordID == %@)", userId];
NSPredicate *predicate2 = [NSPredicate predicateWithFormat:@"(toUser == %@)", userId];
然后使用其中一个谓词执行查询,它可以正常工作。我也尝试过使用NSCompoundPredicate但结果总是一样......有什么想法吗?
答案 0 :(得分:3)
CKQuery
的文档列出了所有有效的谓词语法。奇怪的是,在“基本复合谓词”下,它列出了NOT
,AND
和&&
。未列出OR
和||
,显然不支持CloudKit查询谓词。