自作iPhoneアプリ一覧(無料)
住所検索
MySpotNavi
SignPhotoR
HairManager
WebIDMemo

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[objective-c技術情報メモ]画像ファイルパスを簡単に生成

今まで作ってきたアプリで、共通的に使っている技術がある。
言わば私なりの共通関数的な物である。

この記事を見る方々、
今後、アプリを作っていく方々が少しでも楽になるよう、
まとまり次第少しずつでも公開していこうと思う。

今日は画像のファイルパスについてである。
iPhoneアプリを作成していると画像の読み込みはよく使う技術である。

画像を読み込むには下記の2つの方法がある
(1)UIImage* image = [UIImage imageNamed:@"画像ファイル名"];
(2)UIImage* image = [UIImage imageWithContentsOfFile:@画像ファイルのファイルパス];

(1)はファイル名だけ指定すればいいので簡単である。
この方法は読み込んだファイルを自動的にキャッシュする。
良い解釈をすればメモリの制御に気を配らなくていいのだが、
何かのタイミングで自動で解放されてしまう事があるので、
画像を表示しようとした際に、既に解放されてしまっており、
エラーが発生する可能性もある。

(2)は画像のファイルパスを指定する方法である。
この方法は(1)と違い、読み込んだファイルを自動的にキャッシュしない。
そのため、メモリの配慮が必要なのだが、
勝手に自動的に解放されたりしないので、その点心配はない。


私が画像を読み込む場合は、(2)を使っている。
ただし、(2)の気をつけておきたい点は、
指定するのは画像ファイル名ではなく画像ファイルパスである。
このファイルパスを取得するのが面倒なのだ。

通常ファイルパスを取得する場合、下記コードで取得できる。
 [NSBundle mainBundle] pathForResource:@ファイル名(拡張子なし) ofType:@ファイルの拡張子]

このファイル名と拡張子、わざわざ分けるのが面倒(ファイル名だけ指定したい)ため、
下記のような関数を作ってみた。


// **************************************************
/*
* ファイルパスの取得
*/
+ (NSString *)getFilePath:(NSString *)fileName {
NSMutableString *returnValue = [NSMutableString string];

[returnValue setString:[[NSBundle mainBundle]
pathForResource:[self getFileNameWithoutExtension:fileName] ofType:[fileName pathExtension]]];

return returnValue;
}

/*
* ファイル名の取得(拡張子抜き)
*/
+ (NSString *)getFileNameWithoutExtension:(NSString *)fileName {
NSMutableString *returnValue = [NSMutableString string];

NSString *extension = [fileName pathExtension]; // 拡張子取り出し
NSRange range = NSMakeRange(0, ([fileName length] - [extension length] -1)); // 範囲指定(1文字目から、拡張子と"."の1文字分を除く文字数)
[returnValue setString:[fileName substringWithRange:range]];

return returnValue;
}
// **************************************************


使い方は下記のような感じである
 UIImage *image = [UIImage imageWithContentsOfFile:[self getFilePath:@"ファイル名(拡張子付き)"]];

これでファイルの読み込みが楽になれる。


よかったら押してあげてください
にほんブログ村 IT技術ブログ iPhoneアプリ開発へ
にほんブログ村


無料ですので、よかったらダウンロードしてあげてください

コメントの投稿

管理者にだけ表示を許可する

プロフィール

きまぐれユリアン

Author:きまぐれユリアン


こんにちは。ユリアンです。
10年程ソフトウェア開発会社に勤め、プログラマやSEと言われるような事、その他、簡単な経理など色々な事をやっていました。
2011年12月末に退職。今はフリーでやっています。


ここではそんな仕事ネタは置いといて、日々の出来事や時事ネタ、それらに対して自分が思う事を思うがままに書いていく予定です。

どうぞよろしくお願いします。

最新記事
カテゴリ
月別アーカイブ
最新コメント
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。