57

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ますか?

4

4 に答える 4