我正在创建一个表视图,每行显示一些小图像。 data source
保存表格每行的图像。我通过set img to NSImage()'s alloc()'s initWithContentsOfFile_(thePath)
创建图像。接下来,我通过set imageView's image to img
在更大的浏览器视图中显示所选行的图像。问题是我的内存不足,因为我对两个视图使用相同的表示。 (图像大约为500x400)。
我试图弄清楚如何从较大的版本制作较小的版本,然后发布更大的图像。
我从发布图片开始..
我试过img's release()
但是没有用。除Garbage Collection, ARC, and managing memory之外,我无法找到有关该主题的任何信息。我在Objective-C Automatic Reference Counting
中启用了XCode
,但它可能不适用于Applescript部分的交易。有没有办法在纯ApplescriptObjC中实现它?
答案 0 :(得分:0)
尝试此代码(调整变量名称和UI控件属性):
set curImage to current application's NSImage's alloc()'s initWithContentsOfFile:thePath
-- create a smaller image
set newImage to current application's NSImage's alloc()'s initWithSize:{48, 48}
newImage's lockFocus()
curImage's drawInRect:{{0,0}, {48, 48}} fromRect:{{0,0},{0,0}} operation:2 fraction:1.0
newImage's unlockFocus()
imgArtwork's setImage:newImage
set curImage to missing value -- release large image