基于 https://realm.io/news/nspredicate-cheatsheet/ 中的文档,
我正在尝试使用 SELF 查询 Realm 类中的一些数据,但我不断收到 RLMException Predicate with IN 运算符必须将 KeyPath 与具有两个值的聚合进行比较
到目前为止我能想到的解决方案是迭代对象并获取它们的 ID,然后在 NSPredicate
条件中使用 ID,这里支持此解决方案 NSPredicate using RLMResults as an argument但我想知道是否有更有效的方法使用关键字SELF
。
注意:我尝试在 NSPredicate
和 filteredArrayUsingPredicate
中使用 ANY
,但也失败了。
(void)deleteOldOfferObjects : (RLMResults *) newOfferObjects{
NSPredicate *oldObjects = [NSPredicate predicateWithFormat:@"NOT SELF IN %@", newOfferObjects];
RLMResults *oldObjectsArr =[Offer objectsWithPredicate:oldObjects];
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
[realm deleteObjects:oldObjectsArr];
[realm commitWriteTransaction];
}
最佳答案
我们目前在该上下文中不支持 SELF
,因此您应该迭代主键集合,这是正确的。
关于objective-c - 将 "SELF IN"与 NSPredicate 和 RLMResults 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32550376/