我在这里遇到了一个奇怪的问题。
我有一个课程,我称之为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的连接问题,因为我在记录对象时得到了一个内存地址。有什么想法吗?
答案 0 :(得分:2)
错误消息
- [NSImage frame]:无法识别的选择器发送到实例0x1001d5fd0
表示imageView
指向NSImage
对象而不是NSImageView
对象。看起来您的代码中的某个位置正在重新分配imageView
插座,使其指向NSImage
实例。