devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

Objective-CのFoundationフレームワークには、オブジェクトをバイト列に変換する仕組みがあります。
嬉しいことに、ファイルへの保存とファイルからの読み込みを行う仕組みまで備わっています。

プログラム内で生成した配列データのファイルへの保存と、ファイルからの読み込みを試してみました。

アーカイブしてファイルに保存

プログラム中で使用している(NSMutableArray *)arrayをアーカイブしてファイルに保存します。

1, 2行目:Documentsディレクトリを取得しファイルパスを生成
4行目:アーカイブするオブジェクトとファイルパスを指定

ファイルからの読み込んでアンアーカイブ

アーカイブされたデータをファイルから読み込み、アンアーカイブしています。

4行目:ファイルパスを指定し、アンアーカイブしたオブジェクトを受け取る
5行目:(NSMutableArray *)arrayへ読み込んだデータをセット

アーカイブされたファイル

プログラム側からアーカイブ+保存したあとに、iOSシミュレータのサンドボックスを覗いてみました。

/Users/(user)/library/Application Support/iPhone Simulator/(version)/Applications/(app_UUID)/Documents/

上記ディレクトリにファイル”data.dat”として保存されていました。

XMLで書かれていたので、ちょっと驚きました。解説書では「バイト列に変換する」と書かれていたので、てっきりバイナリーデータになっているのかと思っていました。
これならば、書き込みの検証も容易に出来ますね。

サンプルアプリ

cocos2dの図形の描画テストも兼ねて、コードを書いてみました。

バーグラフです。Addボタンを押すたびにデータ列にランダムな数が追加されていきます。
loadとsaveでファイルへの読み書きを行なっています。

Pocket
[`evernote` not found]

コメントを残す

Trackback URL: