Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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_Filter_Realm - Fatal编程技术网

Ios 根据属性的第一个字母进行筛选

Ios 根据属性的第一个字母进行筛选,ios,swift,filter,realm,Ios,Swift,Filter,Realm,我有一个本地的数据库域,里面有饮料。每种饮料都有一个名字 我想把所有的饮料都从某个字母开始 这就是我想到的: let objects = realm.objects(Drank.self) .filter{($0.name.characters.first)?.description == section} 我现在遇到的问题是,我得到的对象类型是“LazyFilterBidDirectionalCollection”。但我需要结果 是否有人知道如何将其转换

我有一个本地的数据库域,里面有饮料。每种饮料都有一个名字

我想把所有的饮料都从某个字母开始

这就是我想到的:

let objects = realm.objects(Drank.self)
                   .filter{($0.name.characters.first)?.description == section}
我现在遇到的问题是,我得到的对象类型是“LazyFilterBidDirectionalCollection”。但我需要结果


是否有人知道如何将其转换为正确的类型,或者是否知道过滤结果集的其他方法?

这是关于排序/过滤的领域文档:

let sortedDogs = realm.objects(Dog.self).filter("color = 'tan' AND name BEGINSWITH 'B'").sorted(byProperty: "name")
因此,要过滤您正在查找的内容,可能需要这样做:

let objects = realm.objects(Drank.self)
               .filter("name BEGINSWITH '\(column)'")
托马斯·戈恩(Thomas Goyne)在下面提出了一个更安全的选择

let objects = realm.objects(Drank.self)
               .filter("name BEGINSWITH %@", column)
由于您现在使用文档使用的方式过滤数据,因此您应该会收到一个结果对象


不要害怕阅读文档,你不仅可以自己解决它,还可以学到很多其他东西。

你也可以使用hasPrefix函数。可能会更简单。虽然在这种情况下可能没问题,但通常您会希望使用.filtername BEGINSWITH%@列对字符串进行筛选,因为当字符串包含撇号时,Swift的字符串插值将中断。