Realm子查询按日期排序

时间:2017-03-24 14:08:48

标签: swift realm

我有以下型号:

class User: Object {
   dynamic var name = ""
   let events = List<Event>() 
}

class Event : Object {
   dynamic var description = ""
   let dates = List<Date>() 
}

class Date : Object {
    dynamic var date = "" //string 
}

有没有什么好方法可以查询/过滤关闭日期到当前日期的(一)事件?如果不可能,应该如何修改模型,我看到子查询仅适用于@count,即realm.objects(Company.self).filter(“employees。@ count&gt; 5”)

1 个答案:

答案 0 :(得分:2)

遗憾的是date不是NSDate属性,因为您可以轻松按降序排序,然后使用LinkingObjects查找Event Date对象所属的那个:

class Event : Object {
   dynamic var description = ""
   let dates = List<Date>() 
}

class Date : Object {
    dynamic var date = NSDate()
    let events = LinkingObjects(fromType: Event.self, property: "dates")
}

let realm = try! Realm()
let latestDate = realm.objects(Date.self).sorted("date", ascending: false).first
let latestEvent = latestDate.events.first

不幸的是,由于date是一个字符串,这可能不起作用。您可以尝试在sorted()上使用date,但它会按字母顺序排序,而不是按时间顺序排序,因此您可能无法获得最新日期。

如果是这种情况,您需要手动实现每个Date对象的循环,解析它并自行执行排序。