NSStatusItem イメージと代替イメージを効率的に割り当てるにはどうすればよいですか?
-
19-09-2019 - |
質問
このようなコードがあるとしましょう...
- (id) init {
...
self.myImage1 = [NSImage imageNamed:@"some_image_name"]; // setter retains
...
}
- (void) setStatusItemImage
{
[self.statusItem setImage:self.myImage1];
}
また、ステータス項目をアニメーション化したいので、「更新中」ステータス項目アイコンの 6 つのバリアントを作成し、上記と同様のターゲット メソッドを使用して NSTimer 上でループします。質問は次のとおりです。
- 画像を効率的に割り当てるにはどうすればよいですか?例えば保持/プリロードされた NSImage を使用しても大丈夫ですか?
- より効率的にステータス項目をアニメーション化する方法はありますか?私はコアアニメーションのことは何も知りませんので、ご容赦ください。
解決
ことわざにあるように、
、時期尚早の最適化は諸悪の根源です。それは助けたことを確認するために再度測定し、その後、ゆっくりと何でも最適化し、最初に測定します。
これはimageNamed:
のはの遅い、と述べました。あなたは、ほとんどの場合、代わりにNSBundleと-[NSImage initWithContentsOfFile:]
を使用する必要があります。
は、それOK、私が使用している場合は保持/プリロードNSImageでは?
なぜあなたではないでしょうか?そして、なぜステータス項目は、画像が何か他のものによって保持されているかどうかを気にしますか?
より効率的な方法で、ステータス項目をアニメーション化する方法はありますか?
setImage:
が唯一の方法です。あなたがするたびに各画像をロードしていない限り、あなたは何の効率に問題があってはなりません。
所属していません StackOverflow