Domanda

Diciamo che ho un codice come questo ...

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

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

Voglio anche di animare l'elemento dello stato così ho creato 6 varianti del "aggiornamento" icona elemento dello stato e loop su un NSTimer, con metodo di destinazione simile al precedente. Le domande sono:

  1. Come posso efficientemente assegnare un'immagine? per esempio. Va bene se uso una trattenuta / precaricato NSImage?
  2. C'è un modo per animare la voce di stato in modo più efficiente? Io non conosco nessun roba Core Animation, quindi per favore abbiate pazienza con me.
È stato utile?

Soluzione

Come dice il proverbio, l'ottimizzazione prematura è la radice di tutti i mali. Misurare prima, poi ottimizzare tutto quello che è lento, quindi misurare nuovamente per assicurarsi lo ha aiutato.

Detto questo, imageNamed: è lento. Si dovrebbe quasi sempre usare NSBundle e -[NSImage initWithContentsOfFile:] invece.

  

E 'ok se uso una trattenuta / precaricato NSImage?

Perché non si? E perché sarebbe importato l'elemento dello stato se l'immagine viene trattenuta da qualcosa d'altro o no?

  

C'è un modo per animare la voce di stato in modo più efficiente?

setImage: è l'unico modo. Finché non sta caricando ogni immagine, ogni volta, non dovreste avere problemi di efficienza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top