もう、わざわざ動いている物をSwiftに移行するのも止めてしまおうか。どうせならAndroidに移植する方がまだよいか、、と思ってしまうほどでしたが、クラスが読み込めずで書いた問題が解決しました。
問題のエラーログ
CoreData: warning:
Unable to load class named 'Item' for entity 'Item'.
Class not found, using default NSManagedObject instead.
もしかしたらXcode6.2では問題でなくなっているかもしれませんが、とりあえず解決方法は以下。
- xcdatamodeldファイルを選択
- CONFIGURATIONSを選択
- 右に出てくるEntitiies以下のClass名を
ディレクトリー名.Entity名
にする
※ 注意点は上記の場合kitchen.Item
では無くtapas.Item
と、xcdatamodeld名では無く、ディレクトリ名を入れる事。見事にハマりました。
(散歩中に「もしや、ディレクトリー名では。。」と閃きました。なんでわざわざkitchen.xcdatamodeld
という名前にしているのかは、自分で作ったのに不明。なんで余計な事をする?と自分に問い詰めたい。。)
うまく行かない場合
- キャッシュをクリアーする
- DerivedDataのデーターを消す
- 新しいプロジェクトを作って、Modelを移行して試す
※ 使っていたプロジェクトのままで動いた場合と(tapas)、キャッシュやDerivedDataのデーターを抜いてもうまく行かず、新しいプロジェクトを作り直してうまく行く場合がありました(ohaYo)。
蛇足:ネットでぱっと見て試すもうまく行かず、後で読み返すとその注意点が書いてあったりします。 小学校の通信簿に「少し聞いただけで、全部理解したと思ってしまうところがあります。もう少しじっくりと。(やれどーだこーだ)。」書いてあった事をふと思い出す。
See Also
🌷 tipping
🌻 sat ⚡️ goozenlab@getalby.com