Core Data
发布
更新
字数
236
阅读
2 分钟
阅读量
2571
Core Data 实践备忘
Delete rule
定义当拥有该关联(relationship)的对象(owner)被删除时要如何处理。 例如有两个实体:用户 User、帖子 Post ,是一对多的关系,且帖子必须归属于某一个用户,那么我们需要当删除用户时,同时删除该用户的帖子,而删除帖子时不需要删除用户。
因此我们需要:
- 定义用户到帖子的关联
posts是to many,删除规则为cascade - 定义反向关联,帖子到用户的关联
user是to one,删除规则为no action即可
参考:https://cocoacasts.com/core-data-relationships-and-delete-rules
Observer
使用 willSave 更新对象本身或存在关联时,可能会反复调用该方法造成死循环,可以通过 setPrimitiveValue(_, forKey) 解决
extension Item {
override func willSave() {
super.willSave()
setPrimitiveValue(Date(), forKey: #keyPath(Item.lastModifiedDate))
}
}
未完待续……