jop*_*pes 1 cocoa objective-c nstimer nsimage nsstatusitem
假设我有这样的代码......
- (id) init {
...
self.myImage1 = [NSImage imageNamed:@"some_image_name"]; // setter retains
...
}
- (void) setStatusItemImage
{
[self.statusItem setImage:self.myImage1];
}
Run Code Online (Sandbox Code Playgroud)
我还想为状态项设置动画,因此我创建了6个"更新"状态项图标的变体,并将其循环到NSTimer上,目标方法与上面类似.问题是:
正如谚语所说,过早优化是万恶之源.首先测量,然后优化任何慢速,然后再次测量以确保它有所帮助.
那说,imageNamed: 很慢.你几乎总是应该使用NSBundle -[NSImage initWithContentsOfFile:]而是.
如果我使用保留/预加载的NSImage,可以吗?
你为什么不呢?为什么状态项会关心图像是否被其他东西保留?
有没有办法以更有效的方式为状态项设置动画?
setImage:是唯一的方法.只要您不是每次都加载每个图像,就应该没有效率问题.