2012-07-04 19 views
0

从icns文件构建NSImage然后在ImageAndTextCell上绘制NSImage时,速度非常慢。但是,如果我从PNG,JPG等创建NSImage,它的绘制速度非常快。NSImage(from icns)slow painting

如何加速?从icns创建一个JPG(等)?保持创建的NSImages的缓存?

我很欣赏你的指教,谢谢

更新(从下面的评论):

看来,因为这是当一个ICNS文件被加载的是正在放缓的执行代码:

NSImage * image = [ [ [ NSImage alloc ] initWithContentsOfFile: 
         filename ] autorelease ];

从名为: -

(id) tableView : (NSTableView *) aTableView objectValueForTableColumn : 
     (NSTableColumn *) aTableColumn row : (NSInteger) rowIndex

如果我删除它,那么NSTableView绘画非常快。当它不是一个icns文件,而是一个JPG,PNG等,那么这幅画非常快。任何提示?

+0

看来,因为这是当一个ICNS文件被加载的是正在放缓的执行代码: NSImage中*图像= [[[NSImage alloc] initWithContentsOfFile:filename] autorelease]; (NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row :(NSInteger)rowIndex 如果我删除它,那么NSTableView绘画是非常快的。当它不是一个icns文件,而是一个JPG,PNG等,那么这幅画非常快。 任何提示? –

回答

1

解决!

真正快速使用:

NSImage * image = [ [ NSWorkspace sharedWorkspace ] iconForFile: bundleName ]; 

很慢的使用:

NSImage * image = [ [ [ NSImage alloc ] initWithContentsOfFile: filename ] autorelease ]; 
+0

即bundleName是MyApp.app,文件名是MyApp.icns –