在CloudKit的CKRecord使用OR查询

背景:我在做CloudKit开发时遇到一个问题,就是使用OR查询,按说这应该是一个常规操作,但百度一下竟然都搜不到关于该问题的解决办法。最终还是谷歌到的,现在分享给大家。

使用方法

以下代码展示了如何对id进行了OR的查询操作,由于CloudKit不支持OR谓词,只能使用IN来替代

NSArray * ids = @[@"111", @"222", @"333"];
NSPredicate  * predicate = [NSPredicate predicateWithFormat:@"id IN %@", ids];
CKQuery * query = [[CKQuery alloc] initWithRecordType:@"CardBag" predicate:pred];

经过我多次测试,使用了OR谓词,NSCompoundPredicateorPredicateWithSubpredicates:方法,还有id IN {111, 222, 333}均不奏效,只有直接[NSPredicate predicateWithFormat:@"id IN %@", ids]时凑效。记录在此,方便大家查看,也帮助我记忆。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容