我将表视图绑定到Results<Person>
的集合,可以过滤此结果集,但通常不会。问题是当我试图绑定时 - 说; person.children
到表格视图,其类型为List<Person>
。如果我没有过滤它,我就不会获得Results<Person>
类型,因此我需要有两个不同的属性来存储表格的数据集。一个用于Results
,一个用于List
。
我的问题是......有没有办法将List
的所有记录作为Results
返回?与.all()
类似的东西?我曾尝试使用空的NSPredicate,但这是不允许的,必须指定属性名称。我希望我的函数足够通用,可以在任何List上调用它来获取所有结果。我不想指定说... .filter("firstName != ''")
只是为了获得所有结果。
我目前已经实施了类似的东西...但我很好奇是否有更好的方式。
extension List {
func all() -> Results<T> {
let primaryKey = T.primaryKey() ?? "id"
return self.filter("\(primaryKey) != ''")
}
}
编辑:看起来All的此实现对于具有Int类型主键的对象不起作用。无论如何都要检查对象的主键类型吗?
答案 0 :(得分:2)
使用TRUEPREDICATE
似乎有效!
extension List {
/// Returns an Results object for all Objects in the List.
func all() -> Results<T> {
return self.filter("TRUEPREDICATE")
}
}