Comment éviter NSCachedImageRep
-
20-09-2019 - |
Question
Je travaille avec un NSImage qui vient d'un PDF. Lorsque je crée d'abord l'image, il n'a qu'un seul NSImageRep et qui est NSPDFImageRep. C'est bon. Je peux travailler avec elle. Je peux savoir combien de pages il a, et aller à une page, et le dessiner, etc.
Le problème est que dès que je tourne le dos, il se transforme en un NSCachedImageRep, ce qui ne semble pas avoir plusieurs pages. Maintenant, si je garde la PDFImageRep dans une variable séparée, il est gardé la trace, mais il est pas associé à l'image plus, quand je dessine l'image, il est toujours sur la même page.
Qu'est-ce que je suis absent?
merci.
La solution
Vous devez appeler [image setDataRetained: OUI]. Sur l'image, afin que vos données PDF original est conservé autour, sinon il sera mis en mémoire cache à un bitmap
Si vous rencontrez toujours des problèmes, vous pouvez désactiver le cache tout à fait en utilisant [image setCacheMode: NSImageCacheNever].
Autres conseils
Essayez sur 10.6. Le problème est probablement évaporé.
S'il vous plaît voir le AppKit notes de version pour plus de détails le change NSImage.