关于Xcode正确运行swift多线程
想跳过废话直接看解决方案的可以点击这里直接跳转,我这人写博客喜欢瞎逼逼。
还有一些我看过的不错的多线程资料,在此给出链接,点击这里直接跳转查看。
近来为了做操作系统课程设计,不得不去学习了下多线程。
毕坤老师说随便你们用什么语言,C,C++,C#,Java,甚至PHP或者iOS都可以。
好吧,正好自己在自学iOS开发,那就用swift语言好了。
然后,蛋疼的事情就开始啦!!
swift是门新语言,它的语法一直在更新,最明显的就是直接取消了println。
学习swift以来,我也遇到过很多因为语法过期而导致的问题。
而也正是因为swift是门新语言,网上对swift多线程讲解的内容并不是很多。
当我建立了一个command line项目想单纯写一个command line程序的时候,发现。
咦,为什么异步多线程始终无法输出结果。
只要是开辟了一个异步多线程,那就肯定是什么内容都输出不了了。
我和室友研究了好几天,最终发现,在异步多线程下面写一行print函数,这样多线程里面的print函数就能有效。
但是!输出结果还是很诡异,比如有十个输出结果,但是只能输出一两个。和网上的教程案例里面的输出完全不一样啊擦!
我甚至认为,是不是swift语法又更新了,导致网上的多线程教程完全失效了?
于是,所有的swift多线程学习陷入了僵局,一晃又是一星期。
五一的时候在家没事干,突然灵光一现,会不会是因为我项目建错了?
可能不是建立command line,而是应该建立cocoa application?
然后一试,果然!多线程运行成功!
下面是解决方案脑残教程:
首先建立一个cocoa application项目,我选择的是OS X下的cocoa application,这样一会就不用开启模拟器了。
如下图:
点击next,项目名称为test,项目语言选择swift,如下图:
然后next,最后create完成项目创建。接着找到左边的文件导航栏,找到里面的ViewController.swift文件,如下图:
在super.viewDidLoad()下面输入多线程代码:
//多线程
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, )) {
for i in ... {
print("============FirstTask:\(i)")
sleep()
}
}
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, )) {
for i in ... {
print("SecondTask:\(i)")
sleep()
}
}
print("任务结束")
如下图:
运行一把试试,是不是能正确进行多线程运算了?
最新文章
- 【JavaScript】Write和Writeln的区别
- 关于NodeJS的思考
- git之一
- oracle创建、删除账户
- Javascript基础--成员函数(六)
- 无锁算法CAS 概述
- Unity 安卓Jar包的小错误
- SQLServer 复制中移除和加入公布而不初始化全部项目
- 689C - Mike and Chocolate Thieves 二分
- 谷歌安装器扫描时提示“需要root权限”,不用root也可以的!
- 【ShoppingWebCrawler】-基于Webkit内核的爬虫蜘蛛引擎概述
- .NET Core开发日志——简述路由
- Dubbo(6)Dubbo服务集群实现负载均衡
- 剑指offer五之用两个栈实现队列
- 【转】在嵌入式Linux和PC机Linux下使用popen函数时,程序运行结果有差异。
- C#+Aspose.Cells 导出Excel及设置样式 (Webform/Winform)
- UI5-文档-4.16-Dialogs and Fragments
- ADO调用分页查询存储过程
- Gitlab项目用ssh克隆
- PHP扩展功能 ---- 页面静态化(OB缓冲)
热门文章
- 【数论】nefu118 n!后面有多少个0
- 【组合数】【乘法逆元】 Codeforces Round #404 (Div. 2) D. Anton and School - 2
- Codeforces Beta Round #1 C. Ancient Berland Circus 计算几何
- DH密钥交换和ECDH原理(转)
- Oracle 11gR2 RAC连接时ORA-12545错误
- OCP升级(3.7 ->;3.9)
- OpenShift应用镜像构建(4) - fabric8-maven-plugin
- LaTeX之参考文献的写法
- 非docker的jenkins的master如何使用docker的jenkins的slave
- WAF实现扫描器识别