来自UITapGestureRecognizer的CGPoint

Bru*_*ite 7 iphone objective-c ios

我需要获取UITapGestureRecognizer的x和y位置,但这样做会导致应用程序崩溃

这是我创建识别器的代码

-(void)imagePickerController:(UIImagePickerController *) picker didFinishPickingMediaWithInfo:(NSDictionary *) info
{

    [[picker parentViewController] dismissModalViewControllerAnimated:YES];

    UIImage * image =[info objectForKey:@"UIImagePickerControllerOriginalImage"];

    [image drawInRect:CGRectMake(0,0, 200, 400)];

    MyImg =[[UIImageView alloc] initWithImage:image]; 

    UITapGestureRecognizer *recognizer;

    MyImg.userInteractionEnabled=YES;

    recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(getTouchColor:)];
    [MyImg addGestureRecognizer:recognizer];    
    [recognizer release];

    [self.view addSubview:MyImg];

    [picker release];

}
Run Code Online (Sandbox Code Playgroud)

我的事件GetTouchColor

-(void)getTouchColor:(UITapGestureRecognizer *) recognizer
{
    if (recognizer.state==UIGestureRecognizerStateEnded)
    {

    CGPoint point = [recognizer locationInView:MyImg];

        NSLog(@"%@", NSStringFromCGPoint(point));
}
Run Code Online (Sandbox Code Playgroud)

如果我删除该行

 CGPoint point = [recognizer locationInView:MyImg];
Run Code Online (Sandbox Code Playgroud)

代码完美运行,应用程序不会崩溃.

我究竟做错了什么?

谢谢

/ /抱歉,谷歌的英语

Jef*_*ley 2

检查一下recognizer是不是nil。发送消息nil通常返回nil或 0,具体取决于返回类型,但是当它\xe2\x80\x99a 结构体返回类型时,结果是未定义的,并且可能(除其他外)导致崩溃。

\n