Я пытаюсь кодировать тип данных CGPDFPageRef примерно так (Исходный код), но получаю следующую ошибку (сообщение об ошибке консоли):
Исходный код:
//Get a CGPDFPageRef to page 20 of the current PDF document ref
CGPDFPageRef pageRef = CGPDFDocumentGetPage(myDocumentRef, 20);
//Set up the paths for writing
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"thisPage.wrapit"];
//Encode the CGPDFPageRef to the path
NSValue *pageRefObj = [NSValue value:&pageRef withObjCType:@encode(CGPDFPageRef)];
[NSKeyedArchiver archiveRootObject:pageRefObj toFile:path];
Сообщение об ошибке консоли:
-[NSKeyedArchiver encodeValueOfObjCType:at:]: unknown type encoding ('^')'
Моя теория:Я думаю, что ошибка в том, что тип CGPDFPageRef не распознается кодировщиком.Итак ... Как я могу кодировать / архивировать / хранить не-объектный тип данных (не C)?Кстати, ЛЮБОЙ способ, который позволил бы мне сохранить CGPDFPageRef на диск, будет достаточным.Спасибо.
Примечание:Apple Docs также заявляет, что структуры данных переменной длины не могут быть закодированы?Я не знаю, может ли это быть проблемой.PDFPages различаются по размеру на диске, поэтому будет ли непрозрачный тип CGPDFPageRef рассматриваться как переменная длина?Я не знаю.Жаль, что это непрозрачно.