Swift3.0学习之GCD
来源:互联网 发布:阿里云虚拟主机能装ss 编辑:程序博客网 时间:2024/05/20 16:12
昨天开始学习了swift3.0这门语言,发现它和c、c++、Object-c、java有很多相同的地方,她很好地融入了以上4种语言,并且它可以用SQS来形容,simply、qucikly、stably,意思就是更简洁、更快、更稳定。 但随着学习的深入,我觉得对swift3.0有些许不适应,体现在Object-C语言中的GCD,NSThread、NSOperation等线程通信。在Swift语言中对以上几种线程通信进行了重写,写法和以前完全不同。为了让读者更好地理解,我举了一个闭包回调+线程通信的例子,如下:
swift2.0写法
class HttpTool: NSObject { var callBack : (()->())? // 闭包的类型:(参数列表)->(返回值) // 建议:以后写闭包类型直接:()->() func requestData(callBack : ()->()) { self.callBack = callBack dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in print("正在网络请求:\(NSThread.currentThread())") dispatch_async(dispatch_get_main_queue(), { () -> Void in callBack() }) } }}
swift3.0写法
//在一个异步队列中读取数据, 然后再返回主线程更新 UI, 这种操作在新的 Swift 语法中是这样的 DispatchQueue.global(qos: .background).async { [weak self] () -> Void in self?.flickrPhoto.loadLargeImage { loadedFlickrPhoto, error in if error != nil { print("error:\(error)") } else { DispatchQueue.main.async { () -> Void in activityIndicator.removeFromSuperview() self?.imageView.image = self?.flickrPhoto.largeImage } } } }
0 0
- Swift3.0学习之GCD
- Swift3.0 gcd学习(1)
- Swift3.0 gcd学习(2)
- Swift3.0 gcd学习(3)
- swift3.0 GCD
- swift3.0 gcd 变化
- swift3.0 GCD
- swift3.0 gcd 变化
- IOS GCD Swift3.0
- swift学习笔记 - swift3.0用GCD实现计时器
- Swift3.0--GCD
- swift3.0 GCD DispatchSourceTimer注意事项
- Swift3.0 GCD多线程详解
- swift3.0+GCD小小的尝试
- Swift3.0中GCD定时器的使用
- [绍棠_Swift] Swift3.0中的GCD
- Swift3.0学习
- swift3中的多线程GCD
- HashMap HashTable ConCurrentHashMap
- Fiddler对手机或模拟器的网络请求抓包
- RTX:RTX系统调用函数分类、声明、功能及注意事项
- swift 判断/比较两张图片是否相同
- 【GDOI2017第三轮模拟day1】影魔(主席树)
- Swift3.0学习之GCD
- NC portal通过表头主键查询子表vo数据集合
- Maven依赖治理的规则
- 用递归的方法实现输出一个十进制数的每一位
- RTX:多个任务实例、外部引用、信箱使用
- 上传图片
- 手把手教你深度定制tiny4412安卓5.0系统(一)---开发板如何预置文件到android系统
- 树状数组
- nvm中卸载node报错