¿Cómo usar swift 4 Codable en Core Data?

Codificable parece una característica muy emocionante. Pero me pregunto cómo podemos usarlo en Core Data. En particular, ¿es posible codificar / decodificar directamente un JSON desde / a un NSManagedObject?

Intenté un ejemplo muy simple:

y definidoFoo yo mismo:

import CoreData

@objc(Foo)
public class Foo: NSManagedObject, Codable {}

Pero cuando lo usas así:

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)

El compilador falló con este error:

super.init isn't called on all paths before returning from initializer

y el archivo de destino era el archivo que definíaFoo

Supongo que probablemente lo hice mal, ya que ni siquiera pasé unNSManagedObjectContext, pero no tengo idea de dónde pegarlo.

¿Soporta Core Data?Codable?

Respuestas a la pregunta(4)

Su respuesta a la pregunta