Coredata 当swift中没有children时删除Parent条记录 5
Coredata Delete Parent record when there is no children in swift 5
我有一个 AlbumDB(Parent) 和 SongInfoDB(Children)。当没有 children 时,我需要删除一个 parent 以及 AlbumDB。
图中这里没有SongInfoDB,我需要去掉AlbumDB。换句话说,当我删除所有 songs 时,album 将自动删除。
我检查了一些 Whosebug link 并尝试了核心数据删除规则。
Nullify、Cascade、Deny 但 none 这些对我有用!
对此有什么建议吗?谢谢!
没有自动方式。如果删除了父对象,您可以自动删除子对象,反之亦然。
一个可能的解决方案是创建一个删除歌曲的函数,然后检查专辑(关系)是否为空,如果是,则也删除专辑。
类似
func deleteSong(_ song : Song) {
context.delete(song)
let album = song.album!
if album.songs.isEmpty {
context.delete(album)
}
context.save()
}
我有一个 AlbumDB(Parent) 和 SongInfoDB(Children)。当没有 children 时,我需要删除一个 parent 以及 AlbumDB。
图中这里没有SongInfoDB,我需要去掉AlbumDB。换句话说,当我删除所有 songs 时,album 将自动删除。
我检查了一些 Whosebug link 并尝试了核心数据删除规则。 Nullify、Cascade、Deny 但 none 这些对我有用!
对此有什么建议吗?谢谢!
没有自动方式。如果删除了父对象,您可以自动删除子对象,反之亦然。
一个可能的解决方案是创建一个删除歌曲的函数,然后检查专辑(关系)是否为空,如果是,则也删除专辑。
类似
func deleteSong(_ song : Song) {
context.delete(song)
let album = song.album!
if album.songs.isEmpty {
context.delete(album)
}
context.save()
}