我需要释放手势识别器吗?

23

如果我给名为cell的表格单元格添加一个手势识别器,例如:

UILongPressGestureRecognizer *_longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellGestureRecognized:)];
_longPressRecognizer.allowableMovement = 20;
_longPressRecognizer.minimumPressDuration = 1.0f;
[cell addGestureRecognizer:_longPressRecognizer];
[_longPressRecognizer release], _longPressRecognizer = nil; 

我是否需要在某个时间点手动调用-removeGestureRecognizer:来移除此单元格上的手势识别器,或者当单元格不再使用时,手势识别器会自动被移除和释放?


需要注意的一点是,目标-动作默认情况下不是强引用。https://dev59.com/lmUq5IYBdhLWcg3wTuqi#21578346 - onmyway133
1个回答

47
手势识别器被添加到视图的内部NSMutableArray中。一旦视图被释放,此数组将被释放。因此,不需要手动调用-removeGestureRecognizer:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接