2011-11-28 61 views
0

我有这样的代码在viewDidLoad中:IOS:UILongPressGestureRecognizer EXC_BAD_ACCESS

UILongPressGestureRecognizer *change = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(dragGestureChange:)]; 
    [imageView addGestureRecognizer:change]; 
    for (UILongPressGestureRecognizer *gestureRecognizer in imageView.gestureRecognizers) 
    { 
     [gestureRecognizer requireGestureRecognizerToFail:change]; 
    } 

当我调用类这是哪里的代码,第一次这一切都不错,但第二次就崩溃,因为EXC_BAD_ACCESS;它不会发生,而不是一个imageView我使用scrollView,为什么?

+1

没有看到你的一些更多的代码,我不能帮你...尝试启用NSZombiesEnabled或为僵尸分析。 –

+0

- [CFSet countByEnumeratingWithState:objects:count:]:发送到解除分配实例0x14ab30的消息(这是消息) – CrazyDev

+0

您是否手动释放视图的手势识别器?你不应该那样做。 –

回答

0

也许试试这个:UIButtonLongTab。为图像使用背景图像。我在一个ScrollView中的应用程序中使用它,它的工作原理没有问题。

2

有了这个代码,你需要的所有识别器(包括变更)失败变革成功,不能很好

UILongPressGestureRecognizer *change = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(dragGestureChange:)]; 
[imageView addGestureRecognizer:change]; 
for (UILongPressGestureRecognizer *gestureRecognizer in imageView.gestureRecognizers) 
{ 
    [gestureRecognizer requireGestureRecognizerToFail:change]; 
} 

您应将其更改为这个

UILongPressGestureRecognizer *change = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(dragGestureChange:)]; 
for (UILongPressGestureRecognizer *gestureRecognizer in imageView.gestureRecognizers) 
{ 
    [gestureRecognizer requireGestureRecognizerToFail:change]; 
} 
[imageView addGestureRecognizer:change]; 

你应该在这里发布变化。不知道这是否能够真正解决您的问题,在您发布的内容中看不到任何其他问题。

+0

我不能发布“改变”,因为在我的项目中我选择了“使用自动参考计数” – CrazyDev

+0

好的答案!它为我工作。我认为它应该被接受。 – echo