CoreData和Codable:避免重复

时间:2019-02-13 13:21:25

标签: ios xcode core-data codable

我有NSManagedObject子类(CarBrand),它只有两个属性:

public class CarBrand: NSManagedObject, CDCodable {
    @NSManaged public var id: Int64
    @NSManaged public var name: String
}

我还使用Codable协议从服务器响应的JSON解析它。如果响应与我的模型匹配(或几乎匹配),则对象复制没有问题(我在该类上有静态方法,该方法从CoreData返回对象或创建new并返回它)。

但是其中一个响应具有以下结构:

class CarBrandsResponse: Codable {
    let offset: Int
    let count: Int
    let results: [CarBrand]
}

在这种情况下,我找不到为每个CarBrand调用该静态方法的解决方案,因为如果我编写

self.results = try container.decode([CarBrand].self, forKey: .results)

它为每个条目在CarBrand中调用init(from :),这意味着实体重复...

我试图重复Decodable行为,但是在那里我没有找到合适的API方法。 (unkeyedContainer(), nestedContainer(), etc.

希望您能帮助我解决此问题,或提出另一种避免重复的方法。

谢谢。

0 个答案:

没有答案