__blockNSInteger timeout = 300;
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_source_t _timer =dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,0, 0, queue);
dispatch_source_set_timer(_timer,dispatch_walltime(NULL,0), 1.0*SEC_PER_MSEC,0);//每秒执行
dispatch_source_set_event_handler(_timer, ^{
if (timeout <=0) {
dispatch_source_cancel(_timer);
//dispatch_release(_timer);
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示
});
}
else
{
NSInteger minutes = timeout/60;
NSInteger seconds = timeout%60;
NSString *strTime = [NSStringstringWithFormat:@"%d分%d秒后重新获取验证码",minutes,seconds];
dispatch_async(dispatch_get_main_queue(), ^{
//设置界面的按钮显示
});
timeout--;
}
});
dispatch_resume(_timer);