1

我有一个从 Realm 子类化的对象Object,并且符合以便Codable在与 API 交谈时转换为 JSON 和从 JSON 转换。

如何利用该Codable协议进行深层复制(包括子对象)?

4

1 回答 1

5

这将利用该Codable协议制作对象的深层副本。正如@itai-ferber 所提到的,与NSCopying.

class MyObject: Object, Codable {

    /* details omitted */
    var children = List<ChildObject>()

    func copy() throws -> MyObject {
        let data = try JSONEncoder().encode(self)
        let copy = try JSONDecoder().decode(MyObject.self, from: data)
        return copy
    }

}
于 2018-04-03T01:15:31.967 回答