CoreDataでモデル更新時、サブクラスを更新し忘れた時のエラー

この記事は約1分で読めます。

CoreDataを使用していて、モデルを更新した後、サブクラスを更新し忘れた時にはまったエラー

同じようなミスをする方はいないと思うので、自分用のメモです。

CoreDataを使用していて、データベースに値を代入する箇所で以下のエラーが出ていました。

CoreDataのモデル定義において、TypeをUndefinedとしているattributeにInt型の値を代入しようとした時にエラーが発生します。

Cannot assign value of type 'Int' to type 'NSObject?

エラーの文面からモデル定義が間違っていそうなことは分かったため、attributeを見返してたのですが、Int型になっており問題なかったため、はまってしまいました。

結論は、モデルを更新する際に、CreateNSManaged SubClassを実施していなかったことが原因でした。

はまった経緯

  1. モデルを仮で一旦作成(Typeはundefinedのままにしていた)
  2. 後にモデルのTypeをUndefined→Intに更新
  3. CreateNSManaged SubClassを実施し忘れたままコーディング
  4. エラー発生
タイトルとURLをコピーしました