iOS并行程序开发- GCD NSOperationQueue(1)
import UIKit
let imageURLs = [“http://www.planetware.com/photos-large/F/france-paris-eiffel-tower.jpg“, “http://adriatic-lines.com/wp-content/uploads/2015/04/canal-of-Venice.jpg“, “http://algoos.com/wp-content/uploads/2015/08/ireland-02.jpg“, “http://bdo.se/wp-content/uploads/2014/01/Stockholm1.jpg“]
class DonwnLoader {
class func downLoadImageWithURL(url: String) -> UIImage! {
let image = NSData(contentsOfURL: NSURL(string: url)!)
return UIImage(data: image!)
}
}
class ViewController: UIViewController {
@IBOutlet weak var imageView1: UIImageView!
@IBOutlet weak var imageView2: UIImageView!
@IBOutlet weak var imageView3: UIImageView!
@IBOutlet weak var imageView4: UIImageView!
@IBOutlet weak var sliderValueLabel: UILabel!
var queue = NSOperationQueue()override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.
}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.
}@IBAction func didClickOnStart(sender: UIBarButtonItem) {queue = NSOperationQueue()let operation1 = NSBlockOperation { () -> Void inlet img1 = DonwnLoader.downLoadImageWithURL(imageURLs[0])NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void inself.imageView1.image = img1})}operation1.completionBlock = {print("operation1 completed! canceled: \(operation1.cancelled)")}queue.addOperation(operation1)let operation2 = NSBlockOperation { () -> Void inlet img2 = DonwnLoader.downLoadImageWithURL(imageURLs[1])NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void inself.imageView2.image = img2})}operation2.completionBlock = {print("operation2 completed! canceled: \(operation2.cancelled)")}queue.addOperation(operation2)let operation3 = NSBlockOperation { () -> Void inlet img3 = DonwnLoader.downLoadImageWithURL(imageURLs[2])NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void inself.imageView3.image = img3})}operation3.completionBlock = {print("operation3 completed! canceled: \(operation3.cancelled)")}queue.addOperation(operation3)let operation4 = NSBlockOperation { () -> Void inlet img4 = DonwnLoader.downLoadImageWithURL(imageURLs[3])NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void inself.imageView4.image = img4})}operation4.completionBlock = {print("operation4 completed! canceled: \(operation4.cancelled)")}queue.addOperation(operation4)}@IBAction func didClickOnCancel(sender: AnyObject) {queue.cancelAllOperations()}
@IBAction func sliderValueChanged(sender: UISlider) {self.sliderValueLabel.text = "\(sender.value * 100.0)"
}
}
iOS并行程序开发- GCD NSOperationQueue(1)相关推荐
- html ios编程工具,DevmyApp:傻瓜式iOS应用程序开发软件
[搜狐IT消息]北京时间8月1日消息,<移动新发现>今天给大家介绍一款傻瓜式的iOS应用程序开发软件DevmyApp.有了该应用,您就可以创建.设计和开发自己的iOS应用程序,同时还可避免 ...
- 【并行算法】并行算法的设计技术和并行程序开发
并行算法的设计技术 目前普遍使用的并行算法的设计技术: 1).流水线技术 将任务分割成许多子任务,每个处理器完成其中一个,且第一个处理器完成第一个子任务后,第二个处理器可以开始完成第二个子任务- 2) ...
- 2021 年 iOS 应用程序开发七种最佳语言
原文地址 移动应用程序现在几乎是每个在线业务的必备品.最新的 StatCounter 数据显示,多达56% 的在线连接是通过移动设备建立的,这使它们高于平板电脑和计算机.更重要的是,同一个消息来源说, ...
- MPI并行程序开发设计----------------------------------并行编程模型和算法等介绍
---------------------------------------------------------------------------------------------------- ...
- 小程序容器化:基于uni-app的iOS小程序开发
前言 相信越来越多小伙伴发现不少超级APP的页面都采用小程序开发了.例如支付宝客户端,首页有一个小程序中心的入口,支付宝上很多页面都是小程序了. 图1 支付宝小程序入口 第一次打开的一个新功能时,会出 ...
- C# 准备开始学习 并行程序开发
[1]C#中 允许进行加密 System.Security.Cryptography;var aesM = new AesManaged();var md5M = MD5.Create(); 转载于: ...
- 基于Swift的iOS应用程序开发:录音及播放声音
本文所涉及内容适合在SwiftUI架构下使用.文末提供有完整的封装好的类. 欢迎给我留言,或是写邮件给我: randolph.carter.xu@gmail.com 28300098@qq.com 一 ...
- iOS 应用程序开发官方中文手册
http://wenku.baidu.com/view/f0c2b3e8b14e852458fb5749.html
- Android vs iOS 程序开发:我该选哪一个?
移动应用程序开发是软件生产中增长最稳定的领域之一.几年前来移动应用程序数量激增,对快速便捷应用程序的需求一直在增长.仅是在2020年,据估计用户将大约87%的在线时间用于移动应用程序,也就是手机的Ap ...
最新文章
- C3P0_and_pro.properties配置文档代码
- core文件与gdb调试
- 【翻译】WPF中的数据绑定表达式
- 工业交换机如何判断性能的好坏呢?
- 【转】2.3async中必须始终返回Task(@Ron.liang)
- 佛说 :程序员你与我有缘。
- Android源码之路(二、AsyncTask)
- vue 给取data值_一些Vue相关的面试题,帮助求职者提升竞争力
- TCP\IP协议实践:wireshark抓包分析之链路层与网络层
- html mysql查询_mysql查询
- Android复习强化笔记(二)
- 关于nagios 邮件报警问题
- transformClassesWithProfilers-transformForDebug
- 微信小程序:全新独立后台月老办事处一元交友盲盒
- 三星S4使用体验(Markdown版)
- 苏东坡的起伏一生:就算人生不顺利,也要活的潇潇洒洒
- android 竖屏优先,android 强制设置横屏 判断是横屏还是竖屏
- Jquery仿IGoogle实现可拖动窗口(源码)
- Windows自带虚拟机的使用方法
- Mindjet MindManager2022完整版思维导图v22.1.234版本
热门文章
- java碰到边界变颜色_求教!!!小球撞墙怎么改变颜色。
- kl散度度量分布_强化学习新思潮1:值分布强化学习(04)
- Mind Control CodeForces - 1291C(思维)
- Obtain a Permutation(思维)
- TensorFlow2快速模型构建及tensorboard初体验
- 如何给Android添加可视化工具,可视化实现在手机上抓包 方便调试 OkNetworkMonitor...
- 『ACM-算法-二分法』信息竞赛进阶指南--二分法
- XML--XML作用
- OpenSitUp开源项目:零基础开发基于姿态估计的运动健身APP
- Windows驱动开发VXD/WDM/WDF/DDK/WDK的联系和区别