UITapRecognizer:发送到实例的无法识别的选择器

时间:2013-08-24 19:55:35

标签: uitapgesturerecognizer unrecognized-selector

我收到以下错误:无法识别的选择器发送到实例 并找到了许多对我不起作用的解决方案。我从视图类创建对象。我点击了imageview然后我收到了错误

我有以下代码:

@implementation MyTappableImage

@synthesize myImageView, myRect, isTapped, myTap;

- (id)initWithRect:(CGRect) myRect2
{ 
myRect = &myRect2;
UIImage *image = [UIImage imageNamed: @"hert.png"];
myImageView = [[UIImageView alloc]initWithFrame:*myRect];
myImageView.userInteractionEnabled = YES;
[myImageView setImage:image];
isTapped = NO;
myTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapped:)];
[myImageView addGestureRecognizer:myTap];
return self;
}

-(void)tapped:(UITapGestureRecognizer *)gr {
NSLog(@"druk");
}

1 个答案:

答案 0 :(得分:0)

您忽略了致电[super initWithRect:]或任何其他超级init。根据Apple的文档(重点补充):

  

在初始化对象之前,尚未准备好使用该对象。该   NSObject类中定义的init方法没有初始化;它   只是回归自我。

     

在此方法的自定义实现中,您必须调用super的指定初始值设定项,然后初始化并返回新对象。如果   新对象无法初始化,该方法应返回nil。

由于你没有做必须的事情,你应该期待未定义的行为。

(编辑:我也不确定你要对myRect做什么,但是一旦你回来,它只会是一个无效的指针。