Amarronの日記

iOSやMac、Web系の記事を書きます。

iOS 保存領域 比較 〜NSUserDefaults, CoreData,Keychain,等〜

アプリ容量の制限について


アプリのストレージの最大容量は、おそらく制限なし(20M以上だとDL時にwifiが必要となる)

f:id:Amarron:20150314205528j:plain

保存領域について


種類 説明
アプリ領域 アプリが自由に使え、他のアプリから参照できない領域
OS領域 OSが使用するデータが保存されており、基本的にアプリから参照できない領域
共有領域 メディアライブラリ(写真、音楽等)やイベント(カレンダー等)、連絡先は全てのアプリから参照することができる領域(アプリからできる内容は、書き込みと閲覧のみ)

永続データの復元(比較)について


  • 復元時にデータも復元するには、外部サーバーにデータを保存するかiCloudを利用しないと殆ど初期化される
  • 保存領域が共有領域であれば、アプリ自体にiCloudの処理をいれなくても、共有領域のデータは復元できそう
種類 復元可否 備考
アーカイブ オブジェクトをバイナリ形式に変換してからファイルに永続化(一番基礎的な技術)
プロパティリスト - ユーザーが変更しないもの(定数)、plist
NSUserDefaults ユーザーが変更するもの
CoreData データ量多い
Keychain パスワードや個人情報(暗号化されていない場合復元されない)

アプリ内にDBとして保存したい場合realmがオススメです。(日本語のドキュメントもしっかりしていて、組み込みも簡単で、ブラウザも用意されています)

参考URL