Como usar o Swift 4 Codable no Core Data?
Codable parece um recurso muito interessante. Mas eu me pergunto como podemos usá-lo no Core Data? Em particular, é possível codificar / decodificar diretamente um JSON de / para um NSManagedObject?
Eu tentei um exemplo muito simples:
e definidoFoo
Eu mesmo:
import CoreData
@objc(Foo)
public class Foo: NSManagedObject, Codable {}
Mas ao usá-lo assim:
let json = """
{
"name": "foo",
"bars": [{
"name": "bar1",
}], [{
"name": "bar2"
}]
}
""".data(using: .utf8)!
let decoder = JSONDecoder()
let foo = try! decoder.decode(Foo.self, from: json)
print(foo)
O compilador falhou com este erro:
super.init isn't called on all paths before returning from initializer
e o arquivo de destino foi o arquivo que definiuFoo
Eu acho que provavelmente fiz errado, já que eu nem passei umNSManagedObjectContext
, mas não tenho ideia de onde colocá-lo.
O Core Data suportaCodable
?