1

代码下面的想法是在两个类之间进行交互。按下按钮时,我想在另一个类中打印一条语句。当我按下按钮时,我无法打印“测试”。

按钮类.m:

 HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init];
    [knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside];

HjulGenkendelse.h

 @interface HjulGenkendelse : UIGestureRecognizer
 - (void)hjul:(UIButton *) sender;

HjulGenkendelse.m

- (void)hjul:(UIButton *) sender
{
  NSLog(@"Test!");
}

有人对我的问题有任何解决方案吗?

提前感谢:)

4

1 回答 1

3

问题很可能出在这里:

HjulGenkendelse *hjulRecognizer;
[knap addTarget:hjulRecognizer action:@selector(hjul:) forControlEvents:UIControlEventTouchUpInside];

在第一行中,您声明了一个对象。但是您实际上并没有创建对象。因此,如果您使用 ARC,则将其初始化为nil. 然后,您将添加nil为操作的目标。因为它没有目标,所以没有发送操作。(严格来说这并不正确,但您应该查看以 Nil 为目标的操作和响应者链以了解原因)。

解决方法是简单地将对象实例化为操作的目标。将第一行更改为

HjulGenkendelse *hjulRecognizer = [[HjulGenkendelse alloc] init];

如果 init 不适合 HjulGenkendelse 类,请使用任何合适的初始化程序。

于 2012-11-25T12:49:20.753 回答