Codable кажется очень интересной особенностью. Но интересно, как мы можем использовать его в Core Data? В частности, возможно ли напрямую кодировать/декодировать JSON из/в объект NSManagedObject?
Я попробовал очень простой пример:
и определил Foo
сам:
import CoreData
@objc(Foo)
public class Foo: NSManagedObject, Codable {}
Но при использовании его вот так:
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)
Ошибка компилятора с этим ошибкой:
super.init isn't called on all paths before returning from initializer
и целевой файл был файлом, который определил Foo
Думаю, я, наверное, сделал это неправильно, так как я даже не пропустил NSManagedObjectContext
, но я понятия не имею, где его придерживаться.
Поддерживает ли Core Data Codable
?