小编Yur*_*nov的帖子

丢失了与iOS 8模拟器的连接

我使用Xcode 6 beta 4和iOS 8模拟器时遇到问题.每次我尝试运行我的项目时,Xcode都会向我发送"Connection lost"错误.我试图删除并创建新的模拟器,为Xcode 6设置命令行工具,但仍然没有发生任何事情.我该怎么办?

截图

xcode ios ios-simulator xcode6 ios8

12
推荐指数
1
解决办法
9015
查看次数

viewDidLoad中的DispatchQueue.main.async {}

我想知道如果我从viewDidLoad方法在主队列中异步调用某些内容会发生什么.一个小实验向我展示了这些结果:

这段代码:

override func viewDidLoad() {
    super.viewDidLoad()

    firstSelector()
    DispatchQueue.main.async {
        self.secondSelector()
    }
    for i in 1...10 {
        print(i)
    }
    thirdSelector()

}

func firstSelector() {
    print("First selector fired")
}

func secondSelector() {
    print("Second selector fired")
}

func thirdSelector() {
    print("Third selector fired")
}
Run Code Online (Sandbox Code Playgroud)

给出这些印刷品:

First selector fired
1
2
3
4
5
6
7
8
9
10
Third selector fired
Second selector fired
Run Code Online (Sandbox Code Playgroud)

所以最后一个被调用的方法是secondSelector.我认为这是因为主队列是串行的,当我异步调用某个方法(在本例中为secondSelector)时,它立即返回并等待直到所有其他方法都完成.在队列没有任务之后,它完成了我异步调用的方法.我的想法是对的吗?

concurrency asynchronous grand-central-dispatch ios swift

6
推荐指数
1
解决办法
3302
查看次数