今天在看別人代碼的時候,有個個60秒獲取驗證碼的功能,做了個定時器,按鈕觸發定時器,點擊按鈕后設置按鈕的enabled為NO,邏輯來講都是沒問題的
但是實際操作的時候,惡意的在短時間內多次點擊那個獲取驗證碼按鈕,按鈕的點擊事件被調用了多次,定時器從而也調用多次,本來一秒減一的事件變成了一秒減多,並且減到0后繼續調用方法,直到響應點擊次數調用完,於是自己進行了下糾正:
按鈕點擊觸發的方法:
在0.2秒時間間隔內多次點擊只響應一次點擊事件。
- (void)clickSecdCodeButton:(UIButton *)button{ NSLog(@"send code"); [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(handleSendSmsResult) object:button]; [self performSelector:@selector(handleSendSmsResult) withObject:button afterDelay:0.2f]; [_selectTextField resignFirstResponder]; // [self requestIdentifyCode:@"" parameters:[@{@"mobilePhoneNumber":self.phoneNumberTextField.text,@"countryCode":@"+86"} mutableCopy]]; }