NSManagedObjectサブクラスの@objc宣言忘れでNSExceptionエラー

スポンサーリンク

Swift の CoreData / MagicalRecord を使った Xcode プロジェクトで、ビルドして実行したら以下のエラーが発生。iOS 開発で Xcode でビルドした後の実行時エラーのメッセージは、なんか分かりにくいものが多い…。

— 環境 —
Xcode 6.3.2
Swift 1.2

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

モデルのファイルに @objc の宣言を追加して解決

ぐぐりまくってたら、以下の Stack Overflow ページを発見しました。

There is a simple solution to this issue. Just add @objc(ClassName) before the swift NSManagedObject subclass.

CoreData のモデルを設定した後に作成したモデル用のファイルで、@objc の宣言を忘れていたのが原因でした。Stack Overflow のアドバイス通り、モデル用のファイルである Todo.swift で、NSManagedObject のサブクラスである Todo クラス宣言の直前に、@objc(Todo) の行を追加したら解決できました。

Todo.swift

@objc(Todo) の行が抜けていたために、NSException エラーが発生していました。追加したら解決。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!