假设我有一个像这样的核心数据模型:
这是NSManagedObject:
class Day: NSManagedObject {
@NSManaged var date: String
@NSManaged var daynews: NSSet
}
class News: NSManagedObject {
@NSManaged var content: String
@NSManaged var type: String
@NSManaged var day: Day
}
所以我在Day和News之间有一对多的关系:一天与一些新闻有关。每条新闻都有一个类型:
我希望能够使用特定类型的新闻获取所有日期,并在这一天过滤daynews字段,使其仅包含此特定类型的新闻。 例如:
Day1 has News1{type:"morning", content:"..."} and News2{type:"evening", content:"..."}.
Day2 has News3{type:"morning", content:"..."} and News4{type:"morning", content:"..."}.
Day3 has News5{type:"morning", content:"..."} and News6{type:"evening", content:"..."}.
在这种情况下,如果尝试使用type =“night”进行过滤,我想获得Day1和Day3,并且在daynews中只有Day2的News2和Day3的News6
答案 0 :(得分:2)
获取天数时,请在获取请求中使用此谓词:
let filter = NSPredicate(format: "ANY daynews.type = %@", "morning")
request.predicate = filter
当显示当天的新闻时,请使用
day.daynews.filteredSetUsingPredicate(filter)
您可以将一个方便的方法放入您的托管对象子类。