Question

Disons que j'ai un code comme ça ...

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

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

Je veux aussi animer l'élément d'état ainsi j'ai créé 6 variantes de l'icône de l'élément d'état « mise à jour » et en boucle sur une NSTimer, avec la méthode cible similaire à ce qui précède. Les questions sont:

  1. Comment puis-je attribuer efficacement une image? par exemple. est-il OK si j'utilise une retenue / préchargé NSImage?
  2. Est-il possible d'animer l'élément d'état d'une manière plus efficace? Je ne sais pas choses Core Animation, alors s'il vous plaît garder avec moi.
Était-ce utile?

La solution

Comme dit le proverbe, l'optimisation prématurée est la racine de tous les maux. Mesurez d'abord, puis optimiser tout ce qui est la mesure lente, puis de nouveau pour vous assurer qu'il a aidé.

Cela dit, imageNamed: est lent. Vous devriez presque toujours utiliser NSBundle et -[NSImage initWithContentsOfFile:] à la place.

  

est-il OK si j'utilise un NSImage conservé / pré-chargé?

Pourquoi pas? Et pourquoi se soucierait l'élément d'état si l'image est conservée par autre chose ou non?

  

Y at-il un moyen d'animer l'élément d'état d'une manière plus efficace?

setImage: est la seule façon. Tant que vous n'êtes pas le chargement de chaque image à chaque fois, vous devriez avoir aucun problème d'efficacité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top