我正在尝试制作一个简单的基于文档的可可应用程序,该应用程序可以将图像保存和加载为pdf文件。

对于保存部分,我正在使用

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError
{
    return [imageView dataWithPDFInsideRect:[imageView bounds]];
}


这样可以将图像保存为PDF文件。

对于负载部分,我正在使用

- (BOOL)readFromData:(NSData *)data ofType:(NSString *)typeName error:(NSError **)outError
{
    NSData *dataFromFile = [data retain];
    NSImage *image = [[NSImage alloc] initWithData:dataFromFile];
    NSLog(@"Load image as: %@", image);
    // Do something about the image
    if (outError != NULL) {
        NSLog(@"Error when loading data ...");
        *outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr userInfo:NULL];
        return NO;
    }
    return YES;
}


这总是失败,但是NSLog会打印出该映像不是NULL:

Load image as: NSImage 0x16ead890 Size={1023, 601} Reps=(NSPDFImageRep 0x16e97480 Size={1023, 601} ColorSpace=NSCalibrateRGBColorSpace BPS=0 Pixels=1023x601 Alpha=NO)

Error when loading data ...


我不太了解在readFromData中发生什么问题,从而使outError!= NULL在这里。

最佳答案

您的图片已成功创建。

您不太了解error参数的工作方式。您的-readFromData:ofType:error:方法将传递一个指向指针的指针,以供您在无法从NSData实例创建映像时使用。

您应该阅读有关NSError的文档,以了解如何创建和使用NSError实例。

09-17 23:56