static dispatch_source_t _timerEveryFive; //宏定义
viewWillAppear加入要执行的代码
//设置时间间隔
NSTimeInterval period = 5.f; //时间随时可以修改
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
_timerEveryFive = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
dispatch_source_set_timer(_timerEveryFive, dispatch_walltime(NULL, 0), period * NSEC_PER_SEC, 0);
// 事件回调
dispatch_source_set_event_handler(_timerEveryFive, ^{
dispatch_async(dispatch_get_main_queue(), ^{
//网络请求 doSomeThing...
DLog(@"每隔5秒钟执行一次");
});
});
// 开启定时器
dispatch_resume(_timerEveryFive);
最后记得关闭gcd定时器
viewWillDisappear里面写
// 关闭定时器
dispatch_source_cancel(_timerEveryFive);
完美解决!!