Como as imagens de forma eficiente atribuir NSStatusItem e imagens alternativas?
-
19-09-2019 - |
Pergunta
Vamos dizer que tenho um código como este ...
- (id) init {
...
self.myImage1 = [NSImage imageNamed:@"some_image_name"]; // setter retains
...
}
- (void) setStatusItemImage
{
[self.statusItem setImage:self.myImage1];
}
Eu também quero animar o item de status então eu criei 6 variantes do ícone "atualizar" item de status e loop-lo sobre um NSTimer, com método de destino semelhante ao anterior. As perguntas são:
- Como posso eficiente atribuir uma imagem? por exemplo. Está tudo bem se eu usar uma retidos / pré-carregado NSImage?
- Existe uma maneira de animar o item de status de uma forma mais eficiente? Eu não sei qualquer coisa Core Animation, por isso, tenha comigo.
Solução
Como diz o provérbio, otimização prematura é a raiz de todo o mal. Meça em primeiro lugar, em seguida, otimizar o que for lento, em seguida, medir novamente para ter certeza que ajudou.
Dito isso, imageNamed:
é lento. Você quase sempre deve usar NSBundle e -[NSImage initWithContentsOfFile:]
vez.
é OK se eu usar um retidas / pré-carregado NSImage?
Por que você não? E por que o cuidado item de status se a imagem é mantida por outra coisa ou não?
Existe uma maneira de animar o item de status de uma forma mais eficiente?
setImage:
é a única maneira. Contanto que você não está carregando cada imagem de cada vez, você não deverá ter problemas de eficiência.