如何将 RealmSwift 列表转换为结果?
how to convert RealmSwift List to Results?
我正在使用 Realm List/Results
作为 UITableView
的数据源。在某些时候,我给它分配了一个列表。喜欢:
var dataSource:List<SomeObject>! // Or >> Results<SomeObject>!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = aRealmObject.someList // dataSource should be List
然后我在这个列表上有一个过滤器如果用户更改了过滤器日期,我会这样做:
dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results
但是上面的行会导致错误,因为 filter
的 return 类型是一个 Results
对象,而 aRealmObject.someList
是一个列表。
处理这种情况的最佳方法是什么?
- 将数据源设为
List
并将 Results
对象转换为 List
?怎么样??
- 将数据源设为
Results
并将 List
转换为 Results
?怎么样??
- 或者您有更好的方法,请与我分享。
谢谢,
我找到了一种将 List
转换为 Results
的简单方法,如果使用过滤方法,它总是 returns Results
对象。只是给了它一个真正的谓词。
dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.
List
和Results
(以及LinkingObjects
)都可以转换为AnyRealmCollection
类型。我认为这可能是标准化所有 Realm 数组类型的最佳方式:
var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = AnyRealmCollection(aRealmObject.someList)
我正在使用 Realm List/Results
作为 UITableView
的数据源。在某些时候,我给它分配了一个列表。喜欢:
var dataSource:List<SomeObject>! // Or >> Results<SomeObject>!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = aRealmObject.someList // dataSource should be List
然后我在这个列表上有一个过滤器如果用户更改了过滤器日期,我会这样做:
dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results
但是上面的行会导致错误,因为 filter
的 return 类型是一个 Results
对象,而 aRealmObject.someList
是一个列表。
处理这种情况的最佳方法是什么?
- 将数据源设为
List
并将Results
对象转换为List
?怎么样?? - 将数据源设为
Results
并将List
转换为Results
?怎么样?? - 或者您有更好的方法,请与我分享。
谢谢,
我找到了一种将 List
转换为 Results
的简单方法,如果使用过滤方法,它总是 returns Results
对象。只是给了它一个真正的谓词。
dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.
List
和Results
(以及LinkingObjects
)都可以转换为AnyRealmCollection
类型。我认为这可能是标准化所有 Realm 数组类型的最佳方式:
var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = AnyRealmCollection(aRealmObject.someList)