相关疑难解决方法(0)

当NSOperationQueue完成所有任务时获取通知

NSOperationQueuewaitUntilAllOperationsAreFinished,但我不想同步等待它.我只想在队列完成时隐藏UI中的进度指示器.

实现这一目标的最佳方法是什么?

我不能发送来自我NSOperation的通知,因为我不知道哪一个会是最后一个,并且[queue operations]在收到通知时可能不会是空的(或者更糟糕的是 - 重新填充).

iphone queue notifications asynchronous nsoperation

89
推荐指数
6
解决办法
5万
查看次数

我怎么知道Grand Central Dispatch的所有任务完成了?

我需要向Grand Central Dispatch发送多个任务才能运行.有些任务会先完成,有些则最后完成.

我怎么知道Grand Central Dispatch的所有任务完成了?

我应该使用计数器记录完成的任务数量吗?任何更聪明的方法?

ios

9
推荐指数
1
解决办法
5005
查看次数

如何等待所有NSOperations完成?

我有以下代码:

func testFunc(completion: (Bool) -> Void) {
    let queue = NSOperationQueue()
    queue.maxConcurrentOperationCount = 1

    for i in 1...3 {
        queue.addOperationWithBlock{
            Alamofire.request(.GET, "https://httpbin.org/get").responseJSON { response in
                switch (response.result){
                case .Failure:
                    print("error")
                    break;
                case .Success:
                    print("i = \(i)")
                }
            }
        }
        //queue.addOperationAfterLast(operation)
    }
    queue.waitUntilAllOperationsAreFinished()
    print("finished")
}
Run Code Online (Sandbox Code Playgroud)

输出是:

finished
i = 3
i = 1
i = 2
Run Code Online (Sandbox Code Playgroud)

但我希望以下内容:

i = 3
i = 1
i = 2
finished
Run Code Online (Sandbox Code Playgroud)

那么,为什么queue.waitUntilAllOperationsAreFinished()不等待?

nsoperation nsoperationqueue ios swift

3
推荐指数
1
解决办法
1801
查看次数