如何避免NSCachedImageRep

时间:2009-08-26 20:39:47

标签: objective-c nsimage nsimagerep

我正在使用来自PDF的NSImage。当我最初创建图像时,它只有一个NSImageRep,即NSPDFImageRep。这很好。我可以用它。我可以找出它有多少页面,然后转到指定页面,然后绘制它等等。

问题是,只要我转过身,它就会变成NSCachedImageRep,它似乎没有多个页面。现在,如果我将PDFImageRep保存在一个单独的变量中,它会被跟踪,但它不再与图像相关联,所以当我绘制图像时,它仍然在同一页面上。

我错过了什么?

感谢。

2 个答案:

答案 0 :(得分:2)

您需要在图像上调用[image setDataRetained:YES],以便保留原始PDF数据,否则它将被缓存到位图。

如果您仍然遇到问题,可以使用[image setCacheMode:NSImageCacheNever]完全关闭缓存。

答案 1 :(得分:0)

在10.6上试试。这个问题可能已经消失了。

有关NSImage更改的详细信息,请参阅AppKit release notes