【Swift】CoreDataの使い方(追加、読込、更新、削除)簡単に。。【入門】

2016年7月21日


こんにちは、iPhoneアプリ開発者の中川です。
“CoreData"使ってますか?

ネットで"CoreData"を調べてみると、原理原則が記述されていて前置きで疲れてしまうということはないでしょうか。"CoreData"はとっかかりこそ難しいものの、慣れてしまえば非常に便利なツールです。慣れるためには、コードを書きながら覚えるのが手っ取り早いのではないでしょうか。
本記事は、"CoreData"におけるデータの追加、読込、更新、削除について説明します。更に、リレーションについても記述します。
まずは今回サンプルとして扱うデータはこちら。
DataSample

商品と店にテーブルを分けています。
例えば、水が売ってあるのは市場で、牛が売ってあるのは牧場。
といった具合です。
ER図を描きます。(エンティティ・リレーション・図)
CoreDataSample

これをXcodeのModelファイル projectname.xcdatamodeldに製図すると。

CoreDataSamplexcdatamodeld

製図が終わると、Xcode → Editor → Create NSManagedObject Subclass…でエンティティのクラスを作成します。すると、Item+CoreDataProperties.swift、Item.swift、Shop+CoreDataProperties.swift、Shop.swiftという4つのファイルができます。

それでは、追加、読込、更新、削除いってみましょう。
と言っても、ItemテーブルはShopテーブルが完成しないと作れない(リレーションできない)ので、Shopテーブルを作っていきましょう。
まずは約束事であるCoreDataのimport

【追加】

【読込】

【更新】

【削除】

このようにデータを追加・読込・更新・削除しながらShopテーブルが完成します。(特に修正させなければ追加だけでShopテーブルは完成します。)
DataSample

【リレーション】
さて、次にItemテーブルを作っていくのですが、Shopテーブルとのリレーションが必要になってきます。
(例:商品テーブルの水のshopは、Shopテーブルのname="市場"の部分)文字にするとややこしいなぁ。。

これでItemテーブルにShopテーブルをリレーションさせるできました。

ここで疑問に思う人もいるかもしれません。
リレーションさせて な・に・が いいの?
それは市場が潰れて、コンビニになった場合です。
その場合、Shopテーブルを読み込んで、市場をコンビニに修正するだけでItemテーブルは変更しなくてもいいということになります。

さて、表題に「簡単に。。」と書いたくせに長くなってしまいました。(極力短くしたつもりなのですが。)
これから初めてCoreDataをいじるという人は何度かこの記事を読みながらコーディングしてみてください。
慣れれば簡単なCoreDataなので、慣れるまで頑張ってくださいね!

(SQLiteをわざわざCoreDataを使ってやってるだけじゃないですかとか言わないでね。)