【问题标题】:Realm - filter objects greater than string attribute领域 - 过滤大于字符串属性的对象
【发布时间】:2017-02-13 10:02:44
【问题描述】:

我正在尝试从 Realm 数据库中过滤对象。我有属性itemIdForDateOrder,它是字符串(看起来像这样:11e6-eef3-09306910-baa7-417b3207abf6),我对此属性排序没有问题:

realm.objects(ItemInfo.self).sorted(byKeyPath: "itemIdForDateOrder", ascending: false)

问题是我正在尝试按此属性过滤对象,并且我想获取具有更大此参数的对象。

我的谓词的一部分:

if let item = newerThan {
   formatString += " AND itemIdForDateOrder > '" + item.itemIdForDateOrder + "'"
}

但是当我使用它时,我得到了异常:

由于未捕获的异常“无效的运算符类型”而终止应用程序, 原因:字符串类型不支持'运算符'>'

但是当我可以将我的属性与排序一起使用时,比较适用于字符串类型。那么有没有办法我也可以按此属性进行过滤?或者我必须获取所有对象,然后过滤它们(而不是通过领域谓词过滤器)。谢谢

【问题讨论】:

    标签: ios swift realm nspredicate


    【解决方案1】:

    正如错误所说,Realm 的查询引擎目前不支持使用不等式过滤字符串属性。我建议 filing an enhancement request against Realm 请求添加此类支持,然后在 Realm 之外执行过滤(即将对象收集到数组中,然后过滤数组)。

    【讨论】:

    • 感谢您的回答。我创建了在 Realm 之外进行过滤的解决方案。只是想知道Realm是否有办法。现在没有,所以我填写增强请求。
    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多