Как избежать NSCachedImageRep
-
20-09-2019 - |
Вопрос
Я работаю с NSImage, который взят из PDF-файла.Когда я изначально создаю изображение, у него есть только один NSImageRep — NSPDFImageRep.Это хорошо.Я могу с этим работать.Я могу узнать, сколько в нем страниц, перейти на указанную страницу, нарисовать ее и т. д.
Проблема в том, что как только я поворачиваюсь спиной, он превращается в NSCachedImageRep, который, похоже, не содержит нескольких страниц.Теперь, если я сохраняю PDFImageRep в отдельной переменной, он отслеживается, но больше не связан с изображением, поэтому, когда я рисую изображение, оно все еще находится на той же странице.
Что мне не хватает?
Спасибо.
Решение
Вам нужно вызвать [image setDataRetained:YES] для изображения, чтобы исходные данные PDF сохранялись, иначе они будут кэшированы в растровое изображение.
Если у вас по-прежнему возникают проблемы, вы можете полностью отключить кеширование, используя [image setCacheMode:NSImageCacheNever].
Другие советы
Попробуйте на 10.6.Вероятно, проблема испарилась.
Пожалуйста, ознакомьтесь с Примечания к выпуску AppKit для получения подробной информации об изменениях NSImage.