2012-07-04 60 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 –