我有两个类,NSDocument的子类(A类)和NSView的子类(B类)。在我的NSView子类中,在完成所有绘制之后,我将视图保存到NSData中。在B级drawRect:
self.viewData = [[[NSBitmapImageRep alloc] initWithFocusedViewRect:[self bounds]]TIFFRepresentation];
在下一行设置断点显示值:
_viewData OS_dispatch_data * 1003522 bytes 0x0000618000069cc0
但是,在dataOfType:error:在A类中,以下行:(注意B类在这里被命名为theCanvas)
return [[[NSBitmapImageRep alloc]initWithData:[theCanvas viewData]]representationUsingType:NSPNGFileType properties:nil];
导致错误:
ImageIO:CGImageSourceCreateWithData数据参数为nil
该方法中的断点显示viewData为nil:
_viewData NSData * nil 0x0000000000000000
我在这里错过了什么吗?
答案 0 :(得分:0)
您需要确保theCanvas
实际指向您知道数据正确设置的类实例。可能是您有两个不同的同一个类的实例。