【发布时间】:2015-07-30 13:05:50
【问题描述】:
我将一个表视图绑定到Results<Person> 的集合,这个结果集可以被过滤,但通常它不是。问题是当我尝试绑定时 - 说; person.children 到 List<Person> 类型的表视图。如果我不过滤它,我不会得到Results<Person> 类型,所以我需要有两个不同的属性来存储表的数据集。一张给Results,一张给List。
我的问题是...有没有办法将所有记录从List 返回为Results?类似于.all() 的东西?我尝试使用空的 NSPredicate,但这是不允许的,必须指定属性名称。我希望我的函数足够通用,可以在任何列表上调用它以获得所有结果。我不想指定说... .filter("firstName != ''") 只是为了获得所有结果。
我目前已经实现了类似的东西......但我很好奇是否有更好的方法。
extension List {
func all() -> Results<T> {
let primaryKey = T.primaryKey() ?? "id"
return self.filter("\(primaryKey) != ''")
}
}
编辑: 看起来 All 的这种实现不适用于具有 Int 类型主键的对象。有没有办法检查对象的主键类型?
【问题讨论】: