需避免重复响应的情况:

  1. 操作具有动画。(在动画仍未执行完成时,按钮仍然可能被点击)
  2. 操作需要请求网络。

解决方案:

1. 使用:


-(void)handleClickButton:(id)sender{

[[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(doSomeThing:) object:sender];
[self performSelector:@selector(doSomeThing:) withObject:sender afterDelay:0.5f];
}

这种方式的优点在于与其他代码耦合性低,缺点是会产生一定时间的延迟。如果这个delay因为动画的原因不得不设置得比较长,则给用户感觉延迟将较长。

2. 使用:
使用doSomeThing中新生成的对象是否为nil作为判断标识。
该方法的优点在于无延迟,缺点在于与其他代码具有较深耦合性。

响应操作时,需避免重复响应

发表评论

电子邮件地址不会被公开。 必填项已用*标注

浙公网安备 33010602005964号