Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 领域-筛选大于字符串属性的对象_Ios_Swift_Realm_Nspredicate - Fatal编程技术网

Ios 领域-筛选大于字符串属性的对象

Ios 领域-筛选大于字符串属性的对象,ios,swift,realm,nspredicate,Ios,Swift,Realm,Nspredicate,我正在尝试从领域数据库中筛选对象。我有一个属性itemIdForDateOrder,它是字符串(看起来像这样:11e6-eef3-09306910-baa7-417b3207abf6),按此属性排序没有问题: realm.objects(ItemInfo.self).sorted(byKeyPath: "itemIdForDateOrder", ascending: false) 问题是,我正试图通过该属性过滤对象,并且我希望得到具有更大参数的对象 我的谓词的一部分: if let item

我正在尝试从领域数据库中筛选对象。我有一个属性
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使用属性时,比较对字符串类型有效。那么,有没有一种方法可以通过这个属性进行过滤呢?或者我必须获取所有对象,然后过滤它们(而不是通过领域谓词过滤器)。谢谢,正如错误所说,Realm的查询引擎目前不支持使用不等式过滤字符串属性。我建议请求添加此类支持,然后在领域外执行过滤(即,将对象收集到一个数组中,然后过滤该数组)。

正如错误所述,领域的查询引擎目前不支持使用不等式过滤字符串属性。我建议请求添加此类支持,然后在领域外执行过滤(即,将对象收集到一个数组中,然后过滤该数组)。

感谢anwer。我创建了在领域外进行过滤的解决方案。只是想知道是否有一种方法与领域。现在没有,所以我满足了增强请求。谢谢你的回复。我创建了在领域外进行过滤的解决方案。只是想知道是否有一种方法与领域。目前没有,所以我填写了增强请求。