Coredataとは

iOSのアプリ固有領域にデータを永続化する主な方法は以下の通りです。

オブジェクトアーカイブ

オブジェクトをバイナリ形式に変換してからファイルに永続化する。一般的にはオブジェクトシリアライズと呼ばれる。使用頻度は少ないが SDK の中で頻繁に使われている。データ永続 化の中で一番基礎的な技術。

プロパティリスト

プロパティリストと呼ばれる方式でデータを永続化する Property List Editor を使って簡単にデータの編集ができるのが特徴

NSUserDefaults

アプリ固有の設定値を永続化することに特化したライブラリ。使用頻度は一番高い

Core Data

Core Data と言われる O/R マッピングフレームワークを使用してデータを永続化する方法 難易度が高いが使いこなせるようになると条件指定をしてデータを取得したりデータの一意性保証や Undo Redo などができるようになる。データは SQLite に保存される。

Core Data を使うメリット

モデルオブジェクトを永続化する方法には Core Data 以外にもiOS でオブジェクトをシリアライズしてファイルに保存する方法で説明したオブジェクトアーカイブを使うことができます。

はじめにオブジェクトアーカイブと比べて Core Data の有利な点を挙げてみます。

データ読み込み時にすべてのデータをメモリに展開する必要がない

データ検索時に RDB の機能を使って効率よく検索できる

データのトランザクション管理が出来る

データの量が増えるに従って Core Data の方がオブジェクトアーカイブよりも有利になります。

Core Data では永続化対象のデータのことをエンティティと呼び、永続化対象のデータは全てエンティティを作成する必要があります。エンティティの作成は Xcode のモデルエディタで行います