1.首先你要知道GCD倒计时不受runloop的影响。
2.Nstimer是受runloop影响的。
NSRunLoopMode则是runloop的模式。
kCFRunLoopDefaultMode: App的默认 Mode,通常主线程是在这个 Mode 下运行的。
UITrackingRunLoopMode: 界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响。
UIInitializationRunLoopMode: 在刚启动 App 时第进入的第一个 Mode,启动完成后就不再使用。
NSRunLoopCommonModes: 包含了多种模式:default, modal, 和tracking modes。
dispatch_source_cancel(self.timer);
这个方法是取消定时器,实则有效