10

我正在使用 RealmList/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是一个列表。

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

  • 将 dataSource 设为 aList并将Results对象转换为List? 如何??
  • 将 dataSource 设为 aResults并将其转换ListResults? 如何??
  • 或者你有更好的方法,请与我分享。

谢谢,

4

2 回答 2

14

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

   dataSource = aRealmObject.someList.filter("TRUEPREDICATE") //this is a Results object.
于 2016-05-12T10:50:49.290 回答
8

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

var dataSource:AnyRealmCollection!
let aRealmObject = realm.objectForPrimaryKey(SomeObject.self, key: objectId) 
dataSource = AnyRealmCollection(aRealmObject.someList)
于 2016-05-13T07:04:18.337 回答