Ios 创建全局NSOperationQueue
我有一门课:Ios 创建全局NSOperationQueue,ios,swift,nsoperationqueue,Ios,Swift,Nsoperationqueue,我有一门课: class Item: NSManagedObject { func fetchProducts() { let backgroundQueue = NSOperationQueue() backgroundQueue.maxConcurrentOperationCount = 5 for n in items { backgroundQueue.addOperationWithBlock(){
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
}
}
会是一样的吗?还是不?如果我明白你在追求什么,我会做更多类似的事情:
func fetchProducts() {
GVariables.globalBackgroundQueue.maxConcurrentOperationCount = 5
}
struct GlobalQueue {
static let globalBackgroundQueue = GlobalQueue()
let backgroundQueue = NSOperationQueue()
private init () {
backgroundQueue.maxConcurrentOperationCount = 5
//... more settings
}
}
这是一个保存自身实例的单例。可以在初始值设定项中初始化所需的任何值。注意private关键字,它确保您不能创建该类的多个实例
强制性免责声明:当心单例…为什么不将其添加到扩展中,但如果我想将其用于其他类等?在模型类中尝试?我看到您正在使用核心数据。记住,托管对象只能在其上下文队列中安全访问。