Почему QLPreviewRequestSetDataRepresentation на Mavericks возвращает ошибку «CGImageCreate: неверный размер изображения: 0 x 0» для png
Мой генератор быстрого просмотра раньше работал правильно, но теперь не работает.
Это ошибка или я что-то не так делаю?
Вот мой код:
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); } } }
Мой документ - это обычный список с предварительным просмотром в формате png, который хранится в нем.
Я проверил, что pngPreview содержит данные png, я создал изображение, и его размер был 350 × 350.
Тем не менее, я постоянно получаю эти ошибки:
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
Мое приложение не помещено в «песочницу», поэтому я не думаю, что последние 3 ошибки важны.
Раньше я использовал kUTTypePNG, но пытался kUTTypeImage безрезультатно (документы для QLPreviewRequestSetDataRepresentation говорят, что в настоящее время поддерживаемые UTI являются kUTTypeImage, kUTTypePDF, kUTTypeHTML, kUTTypeXML, kUTTyTyTyTyTepeTeTeTeTeTeTeTepeTelain).
Другие моменты, которые следует учитывать: Документы утверждают: «Двоичный файл генератора Quick Look должен быть универсальным и должен быть только 32-разрядным».Эта страница Ноэта страница гласит: «Для OS X v10.6 и более поздних версий вы должны создать генераторы Quick Look для 32- и 64-разрядных систем». Что довольно непонятно ...
Как мне установить мою цель?