GCD延时操作怎么停止并释放?

GCD
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//这里执行动画操作
    });

如上所示,我利用上面这个方法实现延时5秒后执行某个动画操作,但如果我想在5秒之前点击按钮停止这个CGD并释放,如何做呢?

一个线程一旦开始了就必须完成,不能再中间暂停!
解决方案:

1.在block里面加判断

  1. 用NSTimer,我相信同样可以达到你想要的效果,并且timer可以暂停/继续/停止/销毁.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,171评论 1 32
  • 之前要做一个发送短信验证码的倒计时功能,打算用NSTimer来实现,做的过程中发现坑还是有不少的。 基本使用 NS...
    WeiHing阅读 4,417评论 1 8
  • 1.常见提问: (1)有什么擅长? 这个要好好想想 (2)技术上研究的最深入的是那一块? 这个要好好想想,会问的很...
    树懒啊树懒阅读 1,036评论 0 11
  • 最近看其他人的代码时,发现其使用了github.com/sony/gobreaker包,了解了下,这个是熔断器模式...
    kker阅读 1,669评论 0 1
  • 深夜睡不着随意写点文字 文/岠山剑客 1. 星子把夜照亮, 那凌晨三点四十分鸣唱的鸡啼声里, 有一位新娘正迈着春天...
    岠山剑客阅读 199评论 0 1