我这里有一个奇怪的问题。

我有一门课,我将其称为MainView。在MainView中,我有一个NSImageView,我将其称为imageView。我已经通过Interface Builder将其连接到图像视图。我还已经在Interface Builder中初始化了MainView的实例,并将该实例的插座连接到具有icc名称的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的联播问题,因为我在记录对象时得到了一个内存地址。有任何想法吗?

最佳答案

错误讯息


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


表示imageView指向NSImage对象而不是NSImageView对象。您似乎在代码中的某个地方正在重新分配imageView出口,使其指向NSImage实例。

关于objective-c - 访问提供EXC_BAD_ACCESS的NSImageView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6052551/

10-10 23:45