创建全局 NSOperationQueue

Create global NSOperationQueue

我有一个 class:

class Item: NSManagedObject {
    func fetchProducts() {
         let backgroundQueue = NSOperationQueue()
         backgroundQueue.maxConcurrentOperationCount = 5
         for n in items {
             backgroundQueue.addOperationWithBlock(){
                self.someFunc(n)
             }
        }
    }
}

据我所知,我为每个实例最多创建 5 个线程。但我想创建全局 NSOperationQueue()

我创建了全局结构:

struct GVariables {
    static let globalBackgroundQueue = NSOperationQueue()
}

问题:如何设置maxConcurrentOperationCount等设置?

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

func fetchProducts() {
   GVariables.globalBackgroundQueue.maxConcurrentOperationCount = 5
}

会一样吗?还是不是?

如果我明白你想要什么,我会做更多这样的事情:

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

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

    }
}

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

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