タグ

imageNamedに関するsilemのブックマーク (2)

  • UIImageの読み替え(releaseからの再ロード)の罠。 - mswar's はてなブログ

    UIImageでイメージロードしてたら、releaseしてるにも関わらず、メモリが一向に減らない・・・。 UIImageのクラスリファレンス読むとわかるんだが、どうやら一度読んだイメージをキャッシュしてくれちゃってるらしい。(限られたリソースしか使わないなら確かに便利だが) 内部的にはimageNamedに渡したファイル名と、生成されたイメージオブジェクトのポインタを対で覚えてるっぽい。 そのせいで、一度releaseしたのと同名のイメージを再度ロードした場合、そのreleaseしたはずのオブジェクトを返してくるせいか、それにさわるとBAD_ACCESS例外で止まる。 最初は、なんでこんな例外がスルーされるのか分からず、小一時間悩んでしまった・・・。 んで↓のように解決。 × UIImage* imageTmp = [UIImage imageNamed:@"imageName1.png"

    UIImageの読み替え(releaseからの再ロード)の罠。 - mswar's はてなブログ
  • [iPhone開発]UIImageのimageNamedについて

    最近、iPhoneアプリ開発の勉強をしてます。ちょこちょこ書くかもしれません。 UIImageのimageNamedというメッセージでちょっとはまったので書いておきます。 UIImageのimageNamedはMainBandleからファイル名で簡単に画像をロードできます。 UIImageView *image = [UIImageView imageNamed: @"image.png"]; このメソッドは読み込んだ画像をパスをキーにしてキャッシュします。なのでreleaseして再度同じ画像を読み込もうとするとクラッシュします。また、アプリ内で何度も使う画像を読むのには向いていますが、サムネイル表示のような、一時的に使う画像を大量に扱うのには向いていません。そのときは NSString *path= [[NSBundle mainBundle] pathForResource:@"sta

  • 1