Por que QLPreviewRequestSetDataRepresentation no Mavericks retorna o erro "CGImageCreate: tamanho de imagem inválido: 0 x 0" para png
Meu gerador de olhar rápido costumava funcionar corretamente, mas agora está quebrado.
É um bug ou estou fazendo algo errado?
Aqui está o meu código:
OSStatus GeneratePreviewForURL(void *thisInterface, QLPreviewRequestRef preview, CFURLRef url, CFStringRef contentTypeUTI, CFDictionaryRef options) { NSDictionary * myDoc = [NSDictionary dictionaryWithContentsOfURL:(NSURL *)url]; if (myDoc) { NSData * pngData = [myDoc valueForKey:@"pngPreview"]; if (pngData) { QLPreviewRequestSetDataRepresentation(preview,(__bridge CFDataRef)pngData, kUTTypeImage,NULL); } } }
Meu documento é uma lista normal com uma visualização em png armazenada como dados.
Verifiquei que pngPreview contém dados png, criei a imagem e seu tamanho era 350 × 350.
No entanto, estou constantemente recebendo esses erros:
qlmanage[702] : CGImageCreate: invalid image size: 0 x 0.
qlmanage[702:303] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9e27, name = 'com.apple.tsm.portname' See /usr/include/servers/bootstrap_defs.h for the error codes.
qlmanage[702:303] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x3f2b, name = 'com.apple.CFPasteboardClient' See /usr/include/servers/bootstrap_defs.h for the error codes.
qlmanage[702:303] Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions
Meu aplicativo não está na área restrita, então não acho que os três últimos erros sejam importantes.
Eu costumava usar o kUTTypePNG, mas tentei o kUTTypeImage sem sucesso (os documentos para QLPreviewRequestSetDataRepresentation dizem que as UTIs atualmente suportadas são kUTTypeImage, kUTTypePDF, kUTTypeHTML, kUTTypeXML, kUTTypePlainText, kUTTypeRTF, kUTTypeRTF, kUTTypeRT
Outros pontos a serem considerados: Os documentos afirmam: "O binário de um gerador de Quick Look deve ser universal e deve ser apenas de 32 bits".Esta página Masesta página afirma: "Para o OS X v10.6 e posterior, você deve criar geradores do Quick Look para 32 e 64 bits." O que não é claro ...
Como faço para definir meu alvo?