Core Data
发布
更新
字数
236
阅读
2 分钟
阅读量
1218
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))
}
}
未完待续……