我有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.
)
希望您能帮助我解决此问题,或提出另一种避免重复的方法。
谢谢。