Hatena::Groupiphone-dev

grimleaperの開発日誌

ついったー

2009-02-21UIImageとキャッシュ

UIImageとキャッシュ

| 05:26

 http://d.hatena.ne.jp/mswar/20090221/1235238034 を読んで、僕もUIImageを触っているときに UIImageがキャッシュされるときとそうでないときがあったりして困ったのでまとめておこうと思う。

 -initや+image系

 ほかのクラスと同じように、retainCountが0になると解放される。ここまでは何も悩むことはないんですが、

 +imagedNamed:

 こいつはアップルのドキュメントに書いてあるように、パスをKeyとして、イメージをキャッシュする。なので、下手にreleaseするとメモリーリークが発生する。+imageAtPath:というundocumentedなAPIも同じようにキャッシュしてくれるので、同じ画像を何度も使うときには最適。

 問題は、ビューアーやゲームで何度も違う画像を読み込む場合。+imageNamed:だと、どんどんキャッシュが溜まっていって、いつかはメモリが足りなくなり落ちます。僕が適当に試してみた結果、10M位を超えると落ちる感じでしょうか。この辺は環境によるかもしれませんが。

 なので、基本的にはinit系で画像を作り、何度も使い回す場合はimageNamed:で読み込む。という感じでしょう。一応、undocumentedなAPIに+removeImageNameFromCache:ってのがあるけど、僕の使い方が間違っていたのか、うまく消せている感じがしなかった。

で、サンプルコード。書いてみるとやっぱりimageNamed:が使いたくなる理由はわかる。

initWithContentsOfFile:

NSString *aImagePath = [[NSBundle mainBundle] pathForResource:@"gazou" ofType:@"png"];
UIImage *aImage = [[UIImage alloc] initWithContentsOfFile:aImagePath];
aImageView.image = aImage;
[aImage release];

imageWithContentsOfFile:

NSString *aImagePath = [[NSBundle mainBundle] pathForResource:@"gazou" ofType:@"png"];
aImageView.image = [UIImage imageWithContentsOfFile:aImagePath];

imageNamed:

aImageView.image = [UIImage imageNamed:@"gazou.png"];

続きを読む

sftyv2sftyv22013/12/17 16:21渡辺麻友 水着画像
http://www.gazouzou.com/AKB48/watanabe-mayu/

2009-02-08UIChangesNotificationView update

2009-02-07日記始めました

日記始めました

19:13

 HatenaTwitterで皆様が色々有益な情報を交換していらっしゃるので、僭越ですが僕も受け取るだけでなく何か発信できないかと思い、この日記を立ち上げました。

皆様よろしくお願いします。


UIChangesNotificationView

| 19:18

 http://twitter.com/fladdict/status/1185313843 を聞いて、そういやそうか、と思い作成。見た目は以下のような感じです。

f:id:grimleaper:20090207191214p:image

続きを読む

fladdictfladdict2009/02/07 21:40ちょwwww、さっき作り始めたのにできてるwwwwww
おつかれさまです!!!

grimleapergrimleaper2009/02/07 21:46けっこう暇だったのですw
どこかおかしかったらコメントくださいなー

fladdictfladdict2009/02/08 10:30ちょっと気になることが。 iTunesConnect の挙動みてると。 ver 1.2 と 1.15 があった場合、 1.15 が最新として判断されるようです。 メジャーバージョン 1, マイナーバージョンが 2 と 15 になるみたいですね。なので単純に > で判別すると、2桁バージョンを拾えないです。 最後にラウンチしたときのバージョンと、現在のバージョンがことなりディクショナリに現在のバージョンが存在する、で判別するといいかもしれません。

grimleapergrimleaper2009/02/08 17:29バグ報告ありがとうございます。

1.2よりも1.15の方が最新版ですか...
そういえば、以前にもMac OS 10.4.9の次に10.4.10なるものが出ましたね

改めてバグ報告ありがとうございました。すぐに修正しますね。

BubberBubber2011/09/16 12:57Great post with lots of impotrnat stuff.

cutfkecutfke2011/09/16 21:05CjWKlx <a href="http://oxdjjpoawpdb.com/">oxdjjpoawpdb</a>

jqhqdunjqhqdun2011/09/17 01:38sVr4zc , [url=http://kwmakyuqbufb.com/]kwmakyuqbufb[/url], [link=http://ayifqrqtrsap.com/]ayifqrqtrsap[/link], http://vocecpwidbuq.com/

wxkxfmzvvwxkxfmzvv2011/09/19 00:23R8OalA <a href="http://nslptjdhtjfc.com/">nslptjdhtjfc</a>

lozmoalozmoa2011/09/19 19:56CGXY49 , [url=http://zmdqtzldxkzy.com/]zmdqtzldxkzy[/url], [link=http://szqwlnwldnve.com/]szqwlnwldnve[/link], http://tgtotxitqswr.com/