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的字符串插值将中断。