我有一堂课:
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
}会是一样的?还是不?
发布于 2016-02-12 14:45:10
如果我明白你想要什么,我会做更像这样的事情:
struct GlobalQueue {
static let globalBackgroundQueue = GlobalQueue()
let backgroundQueue = NSOperationQueue()
private init () {
backgroundQueue.maxConcurrentOperationCount = 5
//... more settings
}
}这是一个单独的实例,它保存着自己的一个实例。您可以在您的初始化器中初始化任何您想要的值。注意私有关键字,它确保您不能创建这个类的多个实例。
义务免责声明:小心单身人士..。
https://stackoverflow.com/questions/35364623
复制相似问题