如何将RealmSwift List转换为结果?

Ism*_*ail 9 realm ios swift realm-cocoa

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

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

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

dataSource = dataSource.filter("FILTER THE DATES",newDates) // dataSource should be Results
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢,

Ism*_*ail 13

我找到了一种转换ListResults使用过滤器方法的简单方法,它总是返回Results对象.只是给了它一个真正的谓词.

   dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.
Run Code Online (Sandbox Code Playgroud)


cat*_*res 7

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

var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId) 
dataSource = AnyRealmCollection(aRealmObject.someList)
Run Code Online (Sandbox Code Playgroud)