iPad向けにアプリケーション開発を行うべくフィージビリティースタディーを行なっている。開発環境(言語)も iOS 10.0.1リリースに伴い Xcode 8/Swift3.0へ変更して、鋭意、Protoアプリを作成中である。

さて、検討を進める中で永続的なデータを扱う事になり、Core Dataの調査を始めるが… 検索に引っかかるサンプルコードやドキュメントや資料は古いものが多い…そんな中、四苦八苦しながら以下の記事を参考にし、サンプルを動かしてみたので備忘録

環境

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の読み込み処理を追加

  • 読み込み

  • 追加

  • 検索

  • 削除

以上、サンプルコードはこちら