访问NSImageView,提供EXC_BAD_ACCESS

时间:2011-05-19 00:30:54

标签: objective-c cocoa macos

我在这里遇到了一个奇怪的问题。

我有一个课程,我称之为MainView。在MainView我有一个NSImageView,我称之为imageView。我通过Interface Builder将其连接到图像视图。我还在Interface Builder中初始化了一个MainView实例,并将该实例的插座连接到另一个名为mainView的类。那么,我就像这样访问图像视图:

[mainView imageView]

那么,对于测试NSLog'imageView,它返回了对象的地址。到目前为止一切都很好。

问题在于:现在我试图通过这样做来获得imageView的起源:

NSPoint point = [[mainView imageView] frame].origin;

这应该有用,对吗?我在这里得到一个EXC_BAD_ACCESS(也有一次SIGABRT)警告,控制台出现错误:-[NSImage frame]: unrecognized selector sent to instance 0x1001d5fd0

奇怪的是,这总是使用的工作很好,但我改变了一些ivar的名字,它似乎弄乱了整个事情。我几乎肯定知道这不是IB的连接问题,因为我在记录对象时得到了一个内存地址。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

错误消息

  

- [NSImage frame]:无法识别的选择器发送到实例0x1001d5fd0

表示imageView指向NSImage对象而不是NSImageView对象。看起来您的代码中的某个位置正在重新分配imageView插座,使其指向NSImage实例。