如何将RealmSwift List转换为结果?

我使用Realm List/Results作为UITableView dataSource。 在某些时候,我为它分配一个列表。 喜欢:

 var dataSource:List! // Or >> Results! let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId) dataSource = aRealmObject.someList // dataSource should be List 

然后我在这个列表上有一个filter如果用户更改了过滤日期,我喜欢这样:

 dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results 

但上面的行会导致错误,因为filter的返回类型是Results对象,而aRealmObject.someList是List。

处理这种情况的最佳方法是什么?

  • 将dataSource作为List并将Results对象转换为List ? 怎么样??
  • 将dataSource作为Results并将List转换为Results ? 怎么样??
  • 或者你可能有更好的方法,请与我分享。

谢谢,

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

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

我找到了一种简单的方法将List转换为Results ,如果使用filter方法,它总是返回Results对象。 只是给了它一个真正的谓词。

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