Codable は非常にエキサイティングな機能のようです。しかし、それを Core Data でどのように使用できるのだろうか? 特に、NSManagedObject との間で JSON を直接エンコード/デコードすることは可能ですか?
私は非常に簡単な例を試しました:
そして自分自身を定義しました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
ますか?