我正在使用领域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
的返回类型是Results
对象而aRealmObject.someList
是列表。
处理这种情况的最佳方法是什么?
List
并将Results
对象转换为List
?如何?? Results
并将List
转换为Results
?如何?? 谢谢,
答案 0 :(得分:12)
我找到了一种将List
转换为Results
的简单方法,如果使用过滤器方法,它总是会返回Results
个对象。只是给了它一个真正的谓词。
dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.
答案 1 :(得分:7)
List
和Results
(以及LinkingObjects
)都可以转换为AnyRealmCollection
类型。我认为这可能是标准化所有Realm的数组类型类型的最佳方法:
var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId)
dataSource = AnyRealmCollection(aRealmObject.someList)