带有 IBACTION 的 EXC_BAD_ACCESS
问题描述
我已经阅读了很多关于这个问题的信息,但我的似乎仍然有所不同.所以据我了解,EXC_BAD_ACCESS 会出现内存管理问题.
I have read a lot about this issue but mine still seems to be different somehow. So from what I understood, EXC_BAD_ACCESS occurs with memory management problems.
问题是,我的似乎 (!:)) 不在那里.问题是,我简单地在 IB 中添加了一个按钮,圆角矩形,没有图像.我将它与我在课堂上定义的 IBACTION 连接起来.顺便说一下,这个方法什么都不做(!).
The thing is, mine does not seem (! :)) to be there. The thing is, I simple added a button in IB, rounded rect, no image. The I hooked it up with an IBACTION I defined in my class. This method does nothing (!) by the way.
无论如何,只要我点击按钮,应用程序就会崩溃,并显示EXC_BAD_ACCESS".
Anyway, as soon as I click the button, the App crashes, with "EXC_BAD_ACCESS".
据我所知,我肯定不会过度发布任何东西.有什么问题?
I am surely not overreleasing anything, as far as I can see, that is. What is wrong there?
有什么线索吗?
这是我的控制台日志:
这是我上栈后得到的:
推荐答案
我也被这个折磨了几个小时.正如预期的那样,结果是内存问题.作为按钮目标的控制器已被释放.它是导航控制器的根控制器,其视图直接添加到窗口中.我的代码如下所示:
I was tortured by this for a few hours as well. It turned out to be a memory problem as expected. The controller acting as the target for the button was deallocated. It was the root controller of a navigation controller whose view was added directly to the window. My code looked like this:
我的假设是 myController
在作为 UINavigationController
的根控制器传递时会被保留,但结果证明这是错误的.解决方案是将控制器分配给一个局部变量并在 dealloc
中释放它.包含上述代码的对象的接口应该有:
My assumption was that myController
would be retained when it's passed as the root controller of the UINavigationController
, but that turned out to be wrong. The solution was to assign the controller to a local variable and release it in dealloc
. The interface of the object containing the above code should have:
以及实现:
这篇关于带有 IBACTION 的 EXC_BAD_ACCESS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!