objective-c - ios5 - 单击按钮时出现 "EXC_BAD_ACCESS"

标签 objective-c ios button exc-bad-access

我是 Objective C 的初学者。

目前我尝试在我的主窗口中显示一个 View 。此 View 包含一个按钮。由于某种原因,单击此按钮 xcode 会引发错误。

希望你能帮助我理解我做错了什么。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];

    BtnView *btn = [[BtnView alloc] init];
    [self.window addSubview:btn.view];        
    [self.window makeKeyAndVisible];

    return YES;
}

我的按钮 View 的 viewController 有一个用于识别触摸事件的 Action
h 文件:
- (IBAction)touched:(id)sender;

并在 m 文件中
- (IBAction)touched:(id)sender {
    //actions ...
}

通过触摸按钮,我收到以下错误:

enter image description here
怎么了?

.m 文件:

enter image description here

h 文件:
enter image description here

最佳答案

我假设您为此项目启用了 ARC。

当您从 didFinishLaunchingWithOptions: 返回时分配给 btn 的对象将被释放,因为您将其分配给仅在该方法中定义的局部变量。制作 BtnView *btn一个 strong您的类(class)的属性(property),它应该留下来处理按钮按下。 (记得在引用它时使用 self.btn。)

(但是,我很好奇,为什么不首先将按钮放在主视图上,然后不用担心额外的 Controller 和 subview ?)

关于objective-c - ios5 - 单击按钮时出现 "EXC_BAD_ACCESS",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242896/

相关文章:

ios - UITableviewCell 不清理数据?

ios - Objective C 中的属性 - 丢失对象指针

iphone - iOS 魔法记录 & SQLCipher

ios - 如何让 Safari 12 处理来自 soundcloud 的音频?

html - 如何删除表格行或 "column"中两个按钮之间的空格?

android - 如何设置android :width to 0dp in code?

ios - Objective-c 将一个变量设置为另一个变量的值,保持它们独立

iphone - 获取某个CGPoint下的 View 列表

ios - 在 View Controller segue 之间传递数据

css - div边框重叠button边框,如何反转呢?