创建全球NSOperationQueue

时间:2016-02-12 14:07:50

标签: ios swift nsoperationqueue

我有一个班级:

SignalR

如果我理解,对于每个实例,我创建最多5个线程。但我想创建全局class Item: NSManagedObject { func fetchProducts() { let backgroundQueue = NSOperationQueue() backgroundQueue.maxConcurrentOperationCount = 5 for n in items { backgroundQueue.addOperationWithBlock(){ self.someFunc(n) } } } }

我创建了全局结构:

NSOperationQueue()

问题:如何设置struct GVariables { static let globalBackgroundQueue = NSOperationQueue() } 和其他设置?

因为如果我修改这样的方法:

maxConcurrentOperationCount

会是一样的吗?不是吗?

1 个答案:

答案 0 :(得分:2)

如果我理解你所追求的是什么,我会做更多这样的事情:

struct GlobalQueue {
    static let globalBackgroundQueue = GlobalQueue()
    let backgroundQueue = NSOperationQueue()

    private init () {
         backgroundQueue.maxConcurrentOperationCount = 5
         //... more settings

    }
}

这是一个 singleton ,它拥有自己的实例。您可以在初始化程序中初始化所需的任何值。请注意private关键字,它确保您不能创建此类的多个实例。

强制性免责声明:当心单身人士......