iphone - 来自 UITapGestureRecognizer 的 CGPoint

标签 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];

}

还有我的事件 GetTouchColor

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

    CGPoint point = [recognizer locationInView:MyImg];

        NSLog(@"%@", NSStringFromCGPoint(point));
}

如果我删除行

 CGPoint point = [recognizer locationInView:MyImg];

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

我做错了什么?

谢谢

//对不起我的英语来自谷歌

最佳答案

检查 recognizer 不是 nil。向 nil 发送消息通常会返回 nil 或 0,这取决于返回类型,但是当它是一个结构返回类型时,结果是未定义的,并且可能(以及其他事情)导致崩溃。

关于iphone - 来自 UITapGestureRecognizer 的 CGPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810929/

相关文章:

ios - AVAudioSessionInterruption 的 AudioKit 处理

Objective-C NSMutableArray removeObjectAtIndex : crashes

objective-c - 使用cocos2d旋转与手机旋转相反的 Sprite ?

iOS:将所有类打包或加载应用程序

iphone - Core Data client+server/后台保存/一般导入问题

iphone - 编译纯armv7架构有什么好处/后果?

ios - react native 文本输入安全输入字体大小轻弹

ios - 在文本字段内点击时如何添加 UIPickerView?

iphone - 呈现模态视图 Controller 后将 BarButtons 添加到 UINavigationBar

ios - ibeacon可连接传输模式