1. hanoopy

    No comment

    hanoopy
Changes in title
-【SwiftでCoreDataを使う】NSDataObjectSubclassを作っても、Entityが「Class not found」になるとき
+【SwiftでCoreDataを使う】NSDataObjectSubclassを作っても、Entityが「Class not found」になるときの解決策
Changes in body
Source | HTML | Preview
@@ -1,41 +1,41 @@
### エラー概要
SwiftでCoreDataにアクセスする処理を書いて実行すると、下記のようなエラーになった。
> CoreData: warning: Unable to load class named 'SampleEntity' for entity 'SampleEntity'. Class not found, using default NSManagedObject instead.
![エクスプローラ](http://i.gyazo.com/00b4646743be6834f8fa77229ab29bf4.png)
SampleEntity.swiftファイルがプロジェクト上にあり、SampleEntityクラスも作成済みである。
-### 解決
+### 解決
http://stackoverflow.com/questions/25076276/unabled-to-find-specific-subclass-of-nsmanagedobject
質問サイトの中で下記ドキュメントが示されている。
https://developer.apple.com/library/mac/documentation/Swift/Conceptual/BuildingCocoaApps/WritingSwiftClassesWithObjective-CBehavior.html
ドキュメントで「Entity」でページ内検索すると、ヒットした箇所に、Xcode上でエンティティのClassについて、「Name:Person、Class: **MyCoreDataApp.**Person」に設定するという説明がある。
![](http://i.gyazo.com/36c2abe42662e809fe09bae7d4a4739c.png)
これを参考にして、自分のXcode上でやってみる。
![ad53c98a78af656ecbe19886b872884d.png](https://qiita-image-store.s3.amazonaws.com/0/28556/868d07c2-e93b-232f-153e-f91187801143.png "ad53c98a78af656ecbe19886b872884d.png")
(1)左ペインで「.xdatamodeld」ファイルを選択、(2)「ENTITIES」から該当のエンティティを選択、(3)右ペインで「Show model inspector」を選択、(4)「Entity」の「Class」名入力欄を表示させる。ここで
**「SampleEntity」→「CoreDataaSample.SampleEntity」**
に変更する。
修正後の動作状況
![](http://i.gyazo.com/42fe1d47c53f307c7e71a01d1df69fb2.gif)
### 前提条件
元々のプログラムは、下記のサイトを参考にさせて頂きました。
http://hidef.jp/post-652/
更に元々は、新プロジェクト作成のサンプル「Master-Detail Application」である。
これって「.xdatamodeld」ファイルもGUIで作成したし、NSDataObjectSubclassクラスも自動生成だ。Xcodeの自動生成時のバグじゃないの。
### ソース
アップしました。
https://github.com/hanoopy/CoreDataaSample