Como evitar um nscachedImagerep
-
20-09-2019 - |
Pergunta
Estou trabalhando com uma NSImage que vem de um PDF. Quando eu criei a imagem inicialmente, ela possui apenas um NSImageRep e isso é NSPDFIMAGEREP. Isso é bom. Eu posso trabalhar com isso. Eu posso descobrir quantas páginas ele tem, e ir para uma página especificada e desenhá -la etc.
O problema é que, assim que eu viro as costas, ele se transforma em um NSCACHEDIMAGEREP, que parece não ter várias páginas. Agora, se eu mantiver o PDFIMAGEREP em uma variável separada, ela é mantida mais, mas não está mais associada à imagem; portanto, quando eu desenho a imagem, ela ainda está na mesma página.
o que estou perdendo?
obrigado.
Solução
Você precisa ligar para [Image SetDataretined: Sim] na imagem, para que seus dados PDF originais sejam mantidos por perto, caso contrário, serão armazenados em cache em um bitmap.
Se você ainda está tendo problemas, poderá desligar completamente o cache usando [Image SetCachemode: NSIMAGECACHENEVER].
Outras dicas
Experimente no 10.6. O problema provavelmente evaporou.
por favor veja o Notas de lançamento do Appkit Para detalhes das alterações do NSimage.