У меня есть несколько функций, которые должны выполняться в порядке. И function1
и function3
бежать в задней нитке. Их функции: findObjectsInBackgroundWithBlock
. Function 2
может происходить на основной нити или на обратной нити, но она должна работать после function 1
и function 3
должна произойти сразу после function2
. Я узнал о NSOperation
и NSOperationQueue
, но я не уверен, как его использовать. Основываясь на том, что я исследовал, я могу сделать класс только для подкласса NSOperation
. Это верно? Я хотел бы сделать каждую функцию ниже NSOpeation
. Ниже я думаю, что это правильно. Это правильный подход? И правильно ли поставить функцию1() внутри NSOperation
, как показано ниже? Наконец, это влияет на NSOperationQueue
, когда некоторые функции происходят в обратной нити, например function 1 & 3
? СпасибоNSOperation для управления рядом функций
var operationQueue = NSOperationQueue()
let operation1 : NSOperation = NSOperation(function1())
let operation2 : NSOperation = NSOperation(function2())
let operation3 : NSOperation = NSOperation(function3())
operation2.addDependency(operation1)
operation3.addDependency(operation2)
operationQueue.addOperation(operation1)
operationQueue.addOperation(operation2)
operationQueue.addOperation(operation3)
func function1() {
//do something and save data in this class's property
}
func function2() {
//get data from class's property(data from function1) and do something
//save the result in class's property
}
func function3() {
//get data from class's property(data from function2) and do something
//save the result in class's property
}
Использование операций блока. – nanjunda