objective-c - 将 "SELF IN"与 NSPredicate 和 RLMResults 一起使用

标签 objective-c nspredicate realm

基于 https://realm.io/news/nspredicate-cheatsheet/ 中的文档, 我正在尝试使用 SELF 查询 Realm 类中的一些数据,但我不断收到 RLMException Predicate with IN 运算符必须将 KeyPath 与具有两个值的聚合进行比较

到目前为止我能想到的解决方案是迭代对象并获取它们的 ID,然后在 NSPredicate 条件中使用 ID,这里支持此解决方案 NSPredicate using RLMResults as an argument但我想知道是否有更有效的方法使用关键字SELF

注意:我尝试在 NSPredicatefilteredArrayUsingPredicate 中使用 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/

相关文章:

ios - 将使用核心数据的 iOS 应用程序同步到云

iphone - NSDate 和不同的时区?

ios - 如何在ios中使用pjsip进行通话录音?

core-data - 使用谓词在结果中搜索

arrays - 如何在不同数据上使用 NSPredicate 和 NSPredicateEditor(多个谓词?)

iphone - 如何在 Realm Swift 中更新对象

ios - 在两个设备之间发送时数据会被弄乱

iPhone - UIView 内的 UIScrollView 不滚动

ios - 在NSPredicate和ISBN数字示例中使用正则表达式感到困惑

swift - 通过条件限制 Realm Results 中的对象,以便观察结果