SwiftでMagicalRecordを使うときは、@objc(Entity名)を忘れずに。

Swiftを使ってコードを書いています。
Objective-Cで書かれたコードも、しっかりと使えるようにサポートしていて書き方こそ違えど、大体はそのままSwiftに持ち込んでも問題ないと思っています。

しかし、MagicalRecordを使ってCoreDataを触っていると存在しないエンティティにアクセスしていると実行時にエラーでアプリが落ちることがありました。

magicalpanda/MagicalRecord

正直、皆目検討が付かず3時間は悩んでいたと思うのですがふとしたことで、対策を思いつきました。

結局原因は、SwiftのオブジェクトをObjective-C側で操作できるようにする方法を提供していないことでした。

@objec(Entityクラス名)

を書いておくだけです。

これは、NSManagedObjectのサブクラスをSwiftで書いた場合で、MagicalRecordを使う場合には必須の作業っぽいので忘れないようにメモしておきます。

これからも更新を続けていきますので、Feedlyへの登録をお願いします!

follow us in feedly

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です