领域 - 过滤大于字符串属性的对象

时间:2017-02-13 10:02:44

标签: ios swift realm nspredicate

我正在尝试从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 + "'"
}

但是当我使用它时,我得到了例外:

  

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

但是当我可以使用sort来使用我的属性时,比较适用于字符串类型。那么有什么方法可以过滤这个属性呢?或者我必须获取所有对象然后过滤它们(不是通过领域谓词过滤器)。感谢

1 个答案:

答案 0 :(得分:0)

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