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

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

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

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

Благодарю.

2 ответа

Решение

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

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

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

Пожалуйста, смотрите примечания к выпуску AppKit для получения подробной информации об изменениях NSImage.

Другие вопросы по тегам