【发布时间】:2017-11-14 11:48:22
【问题描述】:
我有一个这样的模型:
class CalendarEvent: Object, Mappable {
dynamic var exId = ""
@objc dynamic var title:String = ""
@objc dynamic var desc:String = ""
dynamic var fullDate = Date()
dynamic var date = ""
dynamic var time = ""
dynamic var location = ""
dynamic var subcategory:Subcategory?
dynamic var update = false
var participants = List<Participant>()
}
class Category:Object, Mappable{
dynamic var exId = ""
@objc dynamic var name="";
var subcategories = List<Subcategory>()
}
class Subcategory:Object, Mappable{
dynamic var exId = ""
dynamic var name = ""
let category = LinkingObjects(fromType: Category.self, property: "subcategories")
dynamic var active:Bool = true
dynamic var update = false
}
我需要知道哪些 CalendarEvents 来自一个类别,什么时候来自一个子类别我可以做到:
var results = realm.objects(CalendarEvent.self)
results = results.filter("ANY subcategory.exId == %@", subcategory!.exId)
但是当我需要获取按类别过滤的 CalendarEvents 时,我不知道该怎么做。我照顾了解决方案,但没有找到任何地方。请帮忙!
【问题讨论】:
-
用例有点不清楚; Category 和 Subcategory 之间存在关系,并且 Subcategory 与 Category 之间存在反向关系。但是在 CalendarEvent 和 Subcategory 之间存在单向关系,即 CalendarEvent 可以有一个 Subcategory。为什么?如果您希望一个类别有多个日历事件,为什么不在 Category 和 CalendarEvent 之间建立一对多关系,或者在 SubCategory 和 CalendarEvent 之间建立一对一关系。
-
例如类别可以是:会议、特别活动...。会议子类别的示例可以是财务、行政...。而 calendarEvent 的示例是发生的财务类型会议3 月 19 日凌晨 12:00。
标签: ios swift swift3 realm nested-queries