2012年4月3日火曜日

Resource Bundle/リソースバンドル

プロジェクトへ追加したリソース(画像ファイルやデータファイル等)ファイルへのパスの取得方法です。 今まであまり理解しておらず、誤った方法で強引にパス情報を取得してしまっていたので、リファレンス見ました。

因みに誤った方法ですが、、、NSHomeDirectory()でホームディレクトリを取得して、その文字列の後に XXX.app/resource.xmlとかをアペンドして強引にリソースパスを生成していました(汗)

ただ、色々な方法があるらしく以下の方法が全てでは無いと思います。

リソースパスの取得
例えばプロジェクトに「IMG.jpg」という画像ファイルを追加している場合、実行環境でのパスを取得するには 以下のようなコードになります。
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *path1 = [bundle pathForResource:@"IMG" ofType:@"jpg"];

単純にリソースファイルが格納されるディレクトリパスのみを取得するには以下のようになります。 多分、拡張子が無いようなリソースファイルのパスを取得する時にディレクトリパスを取得してその後に リソースパスをアペンドするような使い方を想定しているのではないかと思います。
    NSBundle *bundle = [NSBundle mainBundle];
    NSString *resourceDirectoryPath = [bundle bundlePath];



参考URL: Accessing a Bundle's Contents

0 件のコメント :

コメントを投稿