我在启用 arc 的项目中添加了 uiviewcontroller 子类,我添加了一个为其创建 ibaction 的按钮,并且内部不包含任何代码,所有操作都是通过界面生成器完成的,没有手动代码,但是当我点击按钮时,我得到了 exc_bad_acess。按下按钮时仪器显示这是僵尸攻击。我真的不明白出了什么问题。我创建了新项目并做了同样的事情,它运行得很好。当我定义关闭键盘的方法(辞去第一响应者)时,也会发生同样的事情。
当我从按钮拖动到界面实现时生成此代码,我选择 ibaction 和名称并生成此代码。
- (IBAction)pushh:(id)sender;
以及.m文件内的实现
- (IBAction)pushh:(id)sender {
}
仅此而已...
最佳答案
为了结束线下对话,我有几点想法:
你的僵尸无疑是 ecnObj 超出范围的结果。如果它是 View Controller 的 ivar,那么过早释放的问题就会消失。
您不想创建一个新的 View Controller ,然后在
transitionFromView
中使用它的 View 。 .如果你想在 View Controller 之间转换(在 iOS5 中),你应该使用pushViewController
或presentViewController
(或者,如果您使用容器 View Controller ,则可以执行transitionFromViewController
)。请参阅查看 Controller 编程指南对“Presenting View Controllers from Other View Controllers ”的讨论。
关于ios方法变成僵尸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10176499/