1

我有一个类的类别,它创建一个使用以下选项正确初始化的按钮

[cancelButton addTarget:self action:@selector(cancelReconnect:) forControlEvents:UIControlEventTouchUpInside];

然后在同一个 category.m 文件中我有方法

-(void)cancelReconnect{ NSLog(@"here!"); }

当在导入类别的视图控制器中按下按钮时,我得到一个 EXC_BAD_ACCESS 并且看起来我的方法/类似乎已被释放。

如果我将相同的 cancelReconnect 方法放在“self”所在的视图控制器中。这是相同的结果。

我的 addTarget 正确吗?我的选择器方法被释放了吗?如何解决这个问题?

请注意,我的自定义类的 .h 文件中的 toolBarItems 数组很强大,但我不知道数组中的按钮是否是。视图控制器是否保留指向类的类别方法的强指针

4

1 回答 1

3

你犯了一个常见的错误。您的实际方法已命名cancelReconnect,但您告诉按钮选择器已命名cancelReconnect:(注意冒号)。

将您的方法更改为:

- (void)cancelReconnect:(UIButton *)button {
    NSLog(@"here!");
}
于 2013-04-11T01:39:21.420 回答