セキュリティのため、アプリケーションが書き込むことのできる場所は数か所だけです。アプリケーションが実装されるとアプリケーションのためのホームディレクトリが作成されます。
詳細はここを参照。iPhoneアプリケーションのディレクトリ
ディレクトリ | 説明 |
---|---|
/ AppName.app | アプリケーション自体を含むバンドルディレクトリ。アプリケーションは署名されている必要があるため、実行時にこのディレクトリの内容を変更してはなりません。変更を加えると、後でアプリケーションを起動できなくなります。 →すなわち、icon.pngファイルを書き換えることはできない iPhone OS 2.1以降では、このディレクトリの内容がiTunesによってバックアップされません。ただし、App Storeから購入したアプリケーションの最初の同期はiTunesによって実行されます。 |
/Documents/ | データファイルを書き込むために使用するディレクトリ。ユーザデータや、定期的にバックアップする必要があるその他のデータを保存するために、このディレクトリを使用します。 このディレクトリの内容はiTunesによってバックアップされます。 |
/Library/Preferences | 環境設定ファイルを保存。環境設定ファイルを直接作成しないでください。その代わりに、 NSUserDefaults クラスまたはCFPreferencesAPIを使用して、アプリケーションの環境設定を取得したり設定したりします(「Settingsバンドルの追加」を参照)。このディレクトリの内容はiTunesによってバックアップされます。 |
/Library/Caches | アプリケーションが終了しても次の起動まで保持しておきたいアプリケーション固有のサポートファイルを書き込む。ただし、iTunesは、デバイスの完全復元中にこれらのファイルを削除するので、必要に応じて再作成する必要がある。 iPhone OS 2.2以降では、このディレクトリの内容がiTunesによってバックアップされません。 |
/tmp/ | アプリケーションが終了しても次の起動まで保持しておきたい一時ファイルを書き込む。 iPhone OS 2.1以降では、このディレクトリの内容がiTunesによってバックアップされません。 |
Foundationフレームワークの
NSHomeDirectory
関数は、最上位のホームディレクトリ、つまり、アプリケーション、Documents
、Library
、およびtmp
の各ディレクトリを含んでいるディレクトリへのパスを返します。この関数のほかに、NSSearchPathForDirectoriesInDomains
関数およびNSTemporaryDirectory
関数を使って、Documents
、Caches
、およびtmp
の各ディレクトリへのパスを取得することもできます。NSSearchPathForDirectoriesInDomains
関数は、もともとMac OS X用に設計されているため、1つのパスではなくパスの配列を返します。iPhone OSでは、その結果の配列に、要求したディレクトリへのパスが1つ含まれています。アプリケーションの
Documents/
ディレクトリへのファイルシステムパスの取得NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); |
NSString *documentsDirectory = [paths objectAtIndex:0]; |
ユーザの環境設定を読み書きするには、
NSUserDefaults
クラスまたはCFPreferences
APIを使用します。これらのインターフェイスにより、Library/Preferences/
ディレクトリへのパスを作成したり、環境設定ファイルのディレクトリへ読み書きしたりする必要がなくなります。これらのインターフェイスの使用の詳細については、「Settingsバンドルの追加」を参照してください。アプリケーションバンドルにサウンド、画像、またはその他のリソースが含まれている場合には、
NSBundle
クラスまたはCFBundle
不透過型を使用してこれらのリソースをロードする必要があります。バンドルは、アプリケーション内のリソースの格納場所についてもともと情報を備えています。加えて、バンドルはユーザの言語に関する環境設定を認識し、デフォルトのリソースの代わりにローカライズ済みのリソースを自動的に優先して選択することができます。バンドルの詳細については、「アプリケーションバンドル」を参照してください。
0 件のコメント:
コメントを投稿