【IOS ARC】 UIColorがメモリに残っているような気がする

Pocket

 UIColor が 32byteほど メモリの残っていたので気になってしらめてみました。

 UIColor は使い方によっては UIImage の imageNamed と同じようにキャッシュされ、UICachedDeviceRGBColor , UICachedDeviceWhiteColor といった形に変えてメモリに残るようです。

 キャッシュされる場合の使い方は、

 という、記述する場合です。

 この記述ができるクラスメソッドは 15種類ほどしかありませんから、メモリに残ったとしても 480byteぐらいが上限になり増殖し続けることはありませんでした。 iPhoneならあまり気にしなくていいですよ。

 余談ですが僕は256byteのメモリのキーチェーンの開発をしたことあります。色だけで、メモリに収まらない….

 どうしても、この32byteをキャッシュさせたくない場合は

 という記述しましょう。[UIColor redColor]の記述に慣れていると、 alloc を書くのを忘れがちになりますね。気をつけましょう。

 UIView の backgroundColor プロパティに [UIColor] を設定した場合の解放は気にしなくて大丈夫です。

 imageNamedは、かなりのメモリ消費量なので慎重になりますが、UIcolorは大丈夫そうですね。

 おわり。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*