【发布时间】:2014-02-16 13:37:05
【问题描述】:
我正在尝试从自定义类中以编程方式向按钮添加操作。但是,我在执行操作时不断收到错误消息。我已经阅读了很多有关如何执行此操作的信息,但显然在某处犯了错误,无法弄清楚在哪里。
首先通过将按钮拖到情节提要上来创建按钮。然后我控制拖动到 ViewControler.h 文件来得到这个:
@property (strong, nonatomic) IBOutlet UIButton *testButtonForClass;
在 ViewControler.m 中,我这样做:
- (void)viewDidLoad
{
[super viewDidLoad];
testClass *myClass = [[testClass alloc]init];
myClass.myButton = self.testButtonForClass;
[myClass assignActionTargets];
}
下面是自定义类的Header和Implementation文件。
头文件
#import <Foundation/Foundation.h>
@interface testClass : NSObject
@property (nonatomic, strong) UIButton *myButton;
-(void)assignActionTargets;
@end
实施文件
#import "testClass.h"
@implementation testClass
-(void)assignActionTargets{
[self.myButton addTarget:
self action:@selector(myButtonInnerTap)
forControlEvents:(UIControlEventTouchUpInside)];
}
-(void)myButtonInnerTap{
UIAlertView *a = [[UIAlertView alloc]initWithTitle:nil
message:@"testClass says hello"
delegate:nil
cancelButtonTitle:@"Dismiss"
otherButtonTitles:nil, nil];
[a show];
}
@end
【问题讨论】:
-
你遇到了什么错误?
-
我是 Objective-C 的新手,不擅长使用调试器。程序可以编译,但是当我单击已分配类按钮的按钮时,我得到了这个:EXC_BAD_ACCESS(code=2, address=0x8), in Main.m
-
添加异常断点,看看能不能得到更好的信息。请参阅此问题以了解如何设置stackoverflow.com/questions/17802662/…
-
otherButtonTitles:nil, nil];也尝试删除多余的 nil -
你能粘贴控制器的代码吗?你是如何在点击按钮时调用函数的。
标签: iphone objective-c