我已经搜索了SO以获得对我的问题有意义的答案,所以如果这是一个简单的问题,不要恨我!
我在窗口中添加了两个视图:
self.appView = [[AppViewController alloc] initWithNibName:nil bundle:nil] ;
self.buttonBar = [[ButtonBar alloc] initWithNibName:nil bundle:nil];
[window insertSubview:[self.appView view] belowSubview:[self.launchScreen view]];
[window insertSubview:[self.buttonBar view] belowSubview:[self.launchScreen view]];
删除self.launchScreen之前。
当我向appView添加元素(它是一个uitableviewcontroller)时,它们按预期工作,但是当我向buttonBar添加一个按钮(在XIB中或通过代码)时,单击它们会导致EXC_BAD_ACCESS。
这是buttonBar的init代码(添加一个按钮):
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.settingsButton = [[UIButton alloc] initWithFrame:CGRectMake(0,10,40,28)];
[self.settingsButton addTarget:self action:@selector(settings:) forControlEvents:UIControlEventTouchUpInside];
UIImage *btnImage = [UIImage imageNamed:@"play.png"];
[self.settingsButton setImage:btnImage forState:UIControlStateNormal];
[btnImage release];
[self.view addSubview:self.settingsButton];
}
return self;
}
我的问题分为两部分,1)提供什么?!我一直这么做太久了,2)我怎么调试这个东西?当我确信XCODE的调试工具可以帮助我跟踪这些东西时,我讨厌来SO去询问n00b问题......
答案 0 :(得分:1)
改为使用@selector(settings)
。
答案 1 :(得分:0)
我不确定这是不是问题,但我认为你不需要在这一行的末尾“保留”
self.settingsButton = [[[UIButton alloc] initWithFrame:CGRectMake(0,10,40,28)] retain];
我假设settingsButton已经在您的头文件中,并带有@property(保留),并且您已在.m文件中合成它。
在dealloc方法中释放它。