Core Data - 过滤实体及其关系字段
Core Data - filter entity and its relationship field
假设我有这样一个核心数据模型:
这是 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="evening" 进行过滤,我想获取 Day1 和 Day3,并且在该字段中,daynews 只有 News2 表示 Day1,News6 表示 Day3
获取天数时,在您的获取请求中使用此谓词:
let filter = NSPredicate(format: "ANY daynews.type = %@", "morning")
request.predicate = filter
显示当天的新闻时,使用
day.daynews.filteredSetUsingPredicate(filter)
您可以将一个方便的方法放入您的托管对象子类中。
假设我有这样一个核心数据模型:
这是 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="evening" 进行过滤,我想获取 Day1 和 Day3,并且在该字段中,daynews 只有 News2 表示 Day1,News6 表示 Day3
获取天数时,在您的获取请求中使用此谓词:
let filter = NSPredicate(format: "ANY daynews.type = %@", "morning")
request.predicate = filter
显示当天的新闻时,使用
day.daynews.filteredSetUsingPredicate(filter)
您可以将一个方便的方法放入您的托管对象子类中。