让我们说有一个这样的代码...

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

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

我还要激活状态的项目,所以我创造了6种变体"更新"地位项目标和环它在NSTimer,与目标的方法与上述类似。问题是:

  1. 我如何可以有效地分配图像?例如它是确定如果我用了保留/预装NSImage?
  2. 有没有办法激活状态的项目的一个更有效的方式?我不知道任何核动画的东西,所以请原谅我。
有帮助吗?

解决方案

正如谚语所说,过早的最优化的根源的所有邪恶。衡量第一,那么最优化,无论是缓慢的,然后再测一次,以确保它有所帮助。

这就是说, imageNamed: 慢。你几乎总是应该使用和NSBundle -[NSImage initWithContentsOfFile:] 代替。

它是确定如果我用了保留/预装NSImage?

为什么你不呢?为什么会状况的项目护理的图像是否是保留通过其他东西没有?

有没有办法激活状态的项目的一个更有效的方式?

setImage: 是唯一的方法。只要你不装载的每一个图像每次你应该没有效率的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top