如何解决Coredata在swift 5中没有孩子时删除父记录
我有一个 AlbumDB(家长)和 SongInfoDB(儿童)。如果没有孩子,那么我还需要删除一个父级,这意味着 AlbumDB。
在图中,当没有 SongInfoDB 时,我需要删除 AlbumDB。换句话说,当我删除所有歌曲时,专辑将被自动删除。
我检查了一些 StackOverflow 链接并尝试了核心数据删除规则。 Nullify、Cascade、Deny 但这些都不适合我!
对此有什么建议吗?谢谢!
解决方法
没有自动方式。如果父对象被删除,您可以自动删除子对象,反之则不行。
一个可能的解决方案是创建一个删除歌曲的函数,然后检查专辑(关系)是否为空,如果是,则删除专辑。
类似的东西
func deleteSong(_ song : Song) {
context.delete(song)
let album = song.album!
if album.songs.isEmpty {
context.delete(album)
}
context.save()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。