我有一个班级:
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
会是一样的吗?不是吗?
答案 0 :(得分:2)
如果我理解你所追求的是什么,我会做更多这样的事情:
struct GlobalQueue {
static let globalBackgroundQueue = GlobalQueue()
let backgroundQueue = NSOperationQueue()
private init () {
backgroundQueue.maxConcurrentOperationCount = 5
//... more settings
}
}
这是一个 singleton ,它拥有自己的实例。您可以在初始化程序中初始化所需的任何值。请注意private关键字,它确保您不能创建此类的多个实例。
强制性免责声明:当心单身人士......