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.
处理这种情况的最佳方法是什么?
List并将Results对象转换为List?怎么样??Results并转换List为Results?怎么样??谢谢,
Ism*_*ail 13
我找到了一种转换List为Results使用过滤器方法的简单方法,它总是返回Results对象.只是给了它一个真正的谓词.
dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.
Run Code Online (Sandbox Code Playgroud)
两者List和Results(以及LinkingObjects)都可以转换为一种AnyRealmCollection类型.我认为这可能是标准化所有Realm的数组类型类型的最佳方法:
var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = AnyRealmCollection(aRealmObject.someList)
Run Code Online (Sandbox Code Playgroud)