Frage

Lassen Sie uns sagen, ich habe einen Code wie dieses ...

- (id) init {
    ...
    self.myImage1 = [NSImage imageNamed:@"some_image_name"]; // setter retains
    ...
}

- (void) setStatusItemImage
{
    [self.statusItem setImage:self.myImage1];
}

Ich möchte auch den Status Artikel animieren, so habe ich 6 Varianten der „Aktualisierung“ Statuspunkt-Symbol und Schleife es über einen NSTimer, mit Ziel Verfahren ähnlich dem oben. Fragen sind:

  1. Wie kann ich ein Bild effizient zuweisen? z.B. es ist in Ordnung, wenn ich eine beibehaltene / vorbelastet NSImage?
  2. Gibt es eine Möglichkeit, den Status Element in einer effizienteren Weise zu animieren? Ich kenne keine Sachen Core Animation, so bitte Geduld mit mir.
War es hilfreich?

Lösung

Wie das Sprichwort geht, vorzeitige Optimierung ist die Wurzel aller Übel. Messen Sie zuerst, dann optimieren, was langsam ist, dann erneut messen, um sicherzustellen, es half.

Das heißt, imageNamed: is langsam. Sie fast immer sollten stattdessen NSBundle und -[NSImage initWithContentsOfFile:] verwenden.

  

ist es in Ordnung, wenn ich eine beibehalten / vorbelastet NSImage?

Warum würden Sie nicht? Und warum sollte der Status Artikel Pflege, ob das Bild von etwas anderes festgehalten wird oder nicht?

  

Gibt es eine Möglichkeit, den Status Element in einer effizienteren Weise zu animieren?

setImage: ist der einzige Weg. Solange Sie nicht jedes Bild jedes Mal geladen, sollten Sie keine Effizienzprobleme haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top