Как избежать NSCachedImageRep - PullRequest
       31

Как избежать NSCachedImageRep

2 голосов
/ 27 августа 2009

Я работаю с NSImage, который приходит из PDF. Когда я изначально создаю образ, у него есть только один NSImageRep, и это NSPDFImageRep. Это хорошо. Я могу работать с этим. Я могу узнать, сколько у него страниц, и перейти на указанную страницу, нарисовать ее и т. Д.

Проблема в том, что, как только я поворачиваюсь спиной, он превращается в NSCachedImageRep, который, кажется, не имеет нескольких страниц. Теперь, если я сохраню PDFImageRep в отдельной переменной, он будет отслеживаться, но он больше не будет связан с изображением, поэтому, когда я рисую изображение, оно остается на той же странице.

Чего мне не хватает?

спасибо.

Ответы [ 2 ]

2 голосов
/ 27 августа 2009

Вам необходимо вызвать [image setDataRetained: YES] для изображения, чтобы сохранить ваши исходные данные PDF, иначе они будут кэшированы в растровое изображение.

Если у вас все еще есть проблемы, вы можете полностью отключить кэширование, используя [image setCacheMode: NSImageCacheNever].

0 голосов
/ 29 августа 2009

Попробуйте на 10.6. Проблема, вероятно, испарилась.

Подробные сведения об изменениях NSImage см. В примечаниях к выпуску AppKit .

...