我已设置以下谓词:
fetchRequest.predicate = NSCompoundPredicate(andPredicateWithSubpredicates: [
NSPredicate(format: "start >= %@", NSDate.init(timeIntervalSinceNow: 0).dateByRemovingTime()),
NSPredicate(format: "product.filter.enabled == %@", true)
])
获取请求的实体是Activity
,然后包含产品。然后每个产品都有一个过滤器,可以启用或禁用。
布尔enabled
改变后是否应该重新加载?
如果没有:我该如何触发?更改willChangeValueForKey
时会didChangeValueForKey
和enabled
?
答案 0 :(得分:0)
NSFetchedResultController是一个KVO控制器,它只能监视已在控制器中获取的数据,或者在获取控制器后插入。如果更新控制器中没有的数据或更新数据的关系数据,控制器将不会调用代理或KVO观察。 有两种方法可以解决问题: 1.您可以在实体中添加BOOL属性,例如“hasChanged”,如果关系数据已更改,则更改“hasChanged”。 2.您可以在关系数据上添加KVO