我是 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 ...
}
通过触摸按钮,我收到以下错误:
怎么了?
.m 文件:
h 文件:
最佳答案
我假设您为此项目启用了 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/