GCD

Swift 3必看:从使用场景了解GCD新API

常用写法:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {doSomething() // 耗时操作dispatch_async(dispatch_get_main_queue()) {updateUI() // 更新主线程}
}

如果运行一系列的任务,希望当任务全部结束后运行另一个任务:

let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
let group = dispatch_group_create()
for (id obj in array) {dispatch_group_async(group, queue) {self.doWork(obj)}
}
dispatch_group_notify(group, queue) {self.doneWork
}
// 如果是在OS X 10.8或iOS 6以及之后版本中使用,Dispatch Queue将会由ARC自动管理,如果是在此之前的版本,需要自己手动释放
// dispatch_release(group)

延时调用:

func after(inSeconds seconds: Double, closure: () -> ()) {let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(seconds * Double(NSEC_PER_SEC)))dispatch_after(delayTime, dispatch_get_main_queue(), closure)
}
after(0.4) {// do stuff
}

NSOperation

还在用GCD?来看看NSOperation吧

转载于:https://www.cnblogs.com/duelsol/p/4994965.html

Swift中GCD与NSOperation相关相关推荐

  1. Swift 3.0中GCD的常用方法

    随着苹果推出swift3.0,很多API都发生了变化,下面我就来总结下GCD的一些常用API用法. 首先为了方便先定义几个属性: class ViewController:UIViewControll ...

  2. swift 多线程GCD和延时调用

    GCD 是一种非常方便的使用多线程的方式.通过使用 GCD,我们可以在确保尽量简单的语法的前提下进行灵活的多线程编程.在 "复杂必死" 的多线程编程中,保持简单就是避免错误的金科玉 ...

  3. 探索 Swift 中的 MVC-N 模式

    作者:Marcus Zarra(twitter:@mzarra) Marcus 将会为大家介绍一种设计模式,他曾经在那些需要从互联网进行大量频繁数据请求的 iOS 应用当中使用此设计模式.这个设计采用 ...

  4. swift 引用其他类_浅谈swift中闭包修饰符 weak?unowned? 或什么都不用

    浅谈swift中闭包修饰符 weak?unowned? 或什么都不用 平常的开发中,clourse是我们iOSr绕不过去的坎儿. 苹果本身也很重视闭包,像之前的一些老的target-action类型的 ...

  5. Swift中依赖注入的解耦策略

    原文地址:Dependency Injection Strategies in Swift 简书地址:Swift中依赖注入的解耦策略 今天我们将深入研究Swift中的依赖注入,这是软件开发中最重要的技 ...

  6. Swift 中的 @autoclosure

    由于种种原因,掘金等第三方平台博客不再保证能够同步更新,欢迎移步 GitHub:github.com/kingcos/Per-.谢谢! Date Notes Swift Xcode Source Co ...

  7. 指针 与 swift 中的引用

    指针 如果你有 C,C++ 或者 Objective-C 语言的经验,那么你也许会知道这些语言使用指针来引用内存中的地址.一个 Swift 常量或者变量引用一个引用类型的实例与C语言中的指针类似,不同 ...

  8. 在 Swift 中使用闭包实现懒加载

    本文讲的是在 Swift 中使用闭包实现懒加载, 原文地址:Swift Lazy Initialization with Closures 原文作者:Bob Lee 译文出自:掘金翻译计划 译者:ls ...

  9. Swift中@IBDesignable/@IBInspectable的使用

    IB可视化属性调节视图-@IBDesignable/@IBInspectable的使用 在工程中新建一个swift类(继承UIView),将它与某个view关联起来. 在文件中添加下面的代码 //可以 ...

最新文章

  1. 优雅的缓存解决方案--设置过期时间
  2. Leetcode1711. 大餐计数[C++题解]:哈希表和枚举
  3. sqlite c++插入 timestamp_Dqlite,基于sqlite 高可用(HA)数据库
  4. php时间下滑出现选择,JQuery设置时间段下拉选择实例_jquery
  5. 关于出去还是不出去的选择
  6. 腾讯---生成格雷码
  7. 通过 Visual Studio 的“代码度量值”来改进代码质量
  8. 通过了微软的SharePoint认证考试(70-542: Microsoft Office SharePoint Server 2007 - Application Development)...
  9. 通过onkeydown事件来控制只允许数字
  10. C# 判断是否是蜘蛛IP地址
  11. 54 字符流中第一个不重复的字符
  12. 同时带多个文件生成软盘镜像的方法
  13. VolTE注册流程0001 融合HLR HSS
  14. 路由器和交换机的工作原理
  15. 如何解决注塑成型中的毛边问题?
  16. vm虚拟机开启蓝屏问题
  17. blender bpy
  18. 一个 简约 干净 纯净的网址导航 净搜导航
  19. 数据挖掘简介(摘自维基百科)
  20. Linux服务器互信

热门文章

  1. JQuery Smart UI 简介(五) — 框架设计【前篇】(前台UI层架构)
  2. 项目第二周冲刺第六天
  3. 小程序使用wxParse解析html
  4. nginx日志分割脚本
  5. 编程之美----不要被阶乘吓到
  6. android 编译过程
  7. vue ...mapMutations 的第一个参数默认为 数据对象state
  8. spring-MVC源码解读(一)
  9. 【浸入式英文学习方式】山姆莱萌帮助孩子建立扎实语言功底
  10. ruby连接mysql