iPhone&Androidプログラミング記: UIImageを作成する
英語─上達しないのは努力不足が原因ではなかった!
英語が話せない…を解決する博士開発の噂の英語教材!返品保証付!

2009年03月20日

UIImageを作成する

単純にファイル名を指定してUIImage作る場合。

UIImage *image = [UIImage imageNamed:@"hoge.png"];


連番のファイル名からUIImageを作る。

NSString *str;
UIImage *img;

for(int i = 0; i <= 10; i++) {
  str = [NSString stringWithFormat:@"00%d.png", i];
  str = [str substringWithRange:NSMakeRange([str length] - 7, 7)];
  img = [UIImage imageNamed:str];
}

上記のimageNamedによる作成の場合、release後に同じ画像ファイルをUIImageViewの
UIImageにセットしようとするとプログラムが強制終了してしまう。
そういう場合は以下のようにallocを使うと強制終了しなくなる。

NSString *imagePath;
UIImage *img;

imagePath = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"png"];
img = [[UIImage alloc] initWithContentsOfFile:imagePath];


imageNamedで作成した場合、勝手にキャッシュを作ってしまうためreleaseしても残ってしまい、同じ画像を使おうとするとリークが発生してしまうのではないかと思います。
あくまで推測ですので、詳しい事を知っている方が居ましたらコメントをいただけると嬉しいです。


posted by ラキシス at 00:00 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック