我想製作一個簡單的基於文檔的可可應用程序,可以保存和加載PDF文件中的圖像。NSImage readFromData問題
對於保存部分,我使用
- (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在這裏。
找出的錯誤是什麼將是一個良好的開端。 – 2009-12-26 03:36:44
問題解決了。 錯誤處理不正確。 但還有一個問題是:我試圖從加載的圖像更新視圖(它屬於另一個類),該視圖沒有被readFromData初始化:被調用,所以我發送消息到零目的。 所以我在類中聲明瞭一個新的NSImage屬性,以保持從readFromData加載的圖像:並更新windowControllerDidLoadNib:中的視圖。有用。 任何更簡單的方法來做到這一點? – ccy 2009-12-26 08:00:25