如何将 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 的简单方法,如果使用过滤方法,它总是 returns Results 对象。只是给了它一个真正的谓词。

   dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.

ListResults(以及LinkingObjects)都可以转换为AnyRealmCollection类型。我认为这可能是标准化所有 Realm 数组类型的最佳方式:

var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId) 
dataSource = AnyRealmCollection(aRealmObject.someList)