UIColor が 32byteほど メモリの残っていたので気になってしらめてみました。
UIColor は使い方によっては UIImage の imageNamed と同じようにキャッシュされ、UICachedDeviceRGBColor , UICachedDeviceWhiteColor といった形に変えてメモリに残るようです。
キャッシュされる場合の使い方は、
1 2 3 |
{ UIColor* color = [UIColor redColor]; } |
という、記述する場合です。
この記述ができるクラスメソッドは 15種類ほどしかありませんから、メモリに残ったとしても 480byteぐらいが上限になり増殖し続けることはありませんでした。 iPhoneならあまり気にしなくていいですよ。
余談ですが僕は256byteのメモリのキーチェーンの開発をしたことあります。色だけで、メモリに収まらない….
どうしても、この32byteをキャッシュさせたくない場合は
1 2 3 |
{ UIColor* color = [[UIColor alloc] initWithRed:1.0f green:0.0f blue:0.0f alpha:1.0f]; } |
という記述しましょう。[UIColor redColor]の記述に慣れていると、 alloc を書くのを忘れがちになりますね。気をつけましょう。
UIView の backgroundColor プロパティに [UIColor] を設定した場合の解放は気にしなくて大丈夫です。
imageNamedは、かなりのメモリ消費量なので慎重になりますが、UIcolorは大丈夫そうですね。
おわり。
コメント