【问题标题】:Coredata Delete Parent record when there is no children in swift 5swift 5中没有孩子时Coredata删除父记录
【发布时间】:2021-05-12 07:25:14
【问题描述】:

我有一个 AlbumDB(父)和 SongInfoDB(儿童)。当没有孩子时,我也需要删除父母,这意味着 AlbumDB。

在图片中,当没有 SongInfoDB 时,我需要删除 AlbumDB。换句话说,当我删除所有歌曲时,专辑会自动被删除。

我检查了一些 StackOverflow 链接并尝试了核心数据删除规则。 Nullify、Cascade、Deny,但这些都不适合我!

对此有什么建议吗?谢谢!

【问题讨论】:

    标签: ios swift core-data swift5 cascade


    【解决方案1】:

    没有自动的方法。如果父对象被删除,您可以自动删除子对象,反之则不行。

    一个可行的解决方案是创建一个删除歌曲的函数,然后检查专辑(关系)是否为空,如果是,则删除专辑。

    类似

    func deleteSong(_ song : Song) {
        context.delete(song)
        let album = song.album!
        if album.songs.isEmpty {
            context.delete(album)
        }
        context.save()
    }
    

    【讨论】:

    • 感谢您的回复。这里,在歌曲中,我应该选择删除规则进行级联吗?
    • 是的,你可以这样做,当专辑被删除时,它会删除所有附加的歌曲。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    相关资源
    最近更新 更多