iPad向けにアプリケーション開発を行うべくフィージビリティースタディーを行なっている。開発環境(言語)も iOS 10.0.1リリースに伴い Xcode 8/Swift3.0へ変更して、鋭意、Protoアプリを作成中である。
さて、検討を進める中で永続的なデータを扱う事になり、Core Dataの調査を始めるが… 検索に引っかかるサンプルコードやドキュメントや資料は古いものが多い…そんな中、四苦八苦しながら以下の記事を参考にし、サンプルを動かしてみたので備忘録
- What’s New in Core Data in macOS 10.12, iOS 10.0, tvOS 10.0, and watchOS 3.0
- What’s new in Core Data Swift 3.0
環境
Xcode | 8.0 |
Swift | 3.0 |
1. プロジェクトの作成
- File->New->Project->SingleView Application->Next
- Product name: CoreDataSample
- User CoreDataのチェックボックスをチェック->Next
2. Main.Storyboardカスタマイズ
- Defaultの ViewControllerに Navigation Controllerを Embed(Editor->Embed in->Navigation Controller)
- TableView+TableViewCellを追加
- データ追加と削除等にいくつかボタンを追加
- 子データの表示管理用Viewを複製、Segueで接続
3. Entity作成(CoreDataSample.xcdatamodeld)
- Manager(親)とStaff(子)は、Relationで 1:多の関係で作成
4. Entity Classの生成
- Managerと Staffの Entityを選択した状態で、Editor->Create NSManagedObject Subclass …->Next->Next
- 4つのファイルが生成される
※上の写真ではエラーは除去してあるが、余分な Import文が挿入されていて 〜Properties.swiftファイルはどちらもエラーになるので、不要な Import文を削除する
5. CoreDataの読み込み処理を追加
- 読み込み
- 追加
- 検索
- 削除
以上、サンプルコードはこちら