iosでアプリのコンフィグファイルなどを格納するディレクトリはどこがベストですか

投稿者: Anonymous

iosアプリで書き換え不要な起動時とかの初期データを持つファイルを格納したいと思っているのですが下記をみていてよくわからなくなってしましました。
なんとなく「/Library/Preferences」かなぁと思ったのですが、
「iTunesでバックアップされる」とあり、書き換えたりしないファイルをバックアップされるようなディレクトリにいれるものなのだろうか…と悩んでいます。
有識者の方々は通常コンフィグファイル等はどこに保存しているのでしょうか。
ご意見をうかがえると助かります。

http://d.hatena.ne.jp/glass-_-onion/20110904/1315142404
https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

解決

リソースに保存してください。「リソースって、なに?」は、リソースResourceBundleNSBundleをキーワードにして調べてください。
すこしお付き合いください。Macの上で、Finderの「アプリケーしょん」フォルダを開いてください。どのアプリケーションアイコンでもかまいません。右クリックないしControlキー+クリックして、プルダウンメニューを出し、パッケージの内容を表示を選びます。

画像の説明をここに入力

すると、「Contents」フォルダがひとつだけある新しくウインドウが開きます。ファイルだと思っていたアプリケーションが、じつはフォルダだったことがわかります。この特殊なフォルダを、OS Xではパッケージ(Package)と呼びます。
iOSのアプリケーションも、このパッケージの形態を踏襲しています。
「Contents」フォルダを開くと、いくつかあるアイコンの中に、「Resources」フォルダがあります。最初にいったリソースの実体は、このフォルダです。Resourcesフォルダを開くと、アプリケーションアイコンの画像ファイルや、ボタンなどのアイコンの画像ファイル、ローカライズするための、各言語ごとのデータなどがあります。
「書き換え不要な起動時とかの初期データ」まさしくそういうファイルが、このResourcesフォルダに保存されていることがわかります。
このResourcesフォルダにファイルを保存する方法は、簡単です。

画像の説明をここに入力

XcodeのProject Navigator。ここにドロップしたファイルは、すべてResourcesフォルダに、ビルド時コピーされ、保存されます。
そして、Resourcesフォルダの各ファイル(フォルダ)にアクセスするには、NSBundleクラスを使います。NSBundleクラスのリファレンスをお読みください。

※iOSのアプリケーションのパッケージは、暗号化されているので、リソースファイルも、一般的なレベルのセキュリティは保証されていると判断していいかと思います。(OS Xの方は、ご覧のとおり、バレバレですが……)

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *