从其他班级访问时属性为零?

时间:2014-02-17 00:46:54

标签: objective-c cocoa properties nsdata

我有两个类,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

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

您需要确保theCanvas实际指向您知道数据正确设置的类实例。可能是您有两个不同的同一个类的实例。