[問題] NSOperationQueue by order execute

作者: valda (valda)   2015-07-19 03:34:12
請教一下關於NSOperationQueue的問題
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
NSOperation *done = [NSBlockOperation blockOperationWithBlock:^{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
NSLog(@"success");
}];
}];
NSOperation *op = [NSBlockOperation blockOperationWithBlock:^{
[self blockMethod1:^{
NSLog(@"method1 done");
}];
}];
[done addDependency:op];
[queue addOperation:done];
[queue addOperation:op];
我期望的結果是先print method1 done再print success出來
已經設定好done需要在op執行後再執行
但事與願違
真正的結果是先print success再print method1 done
請問有哪裡做錯嗎?
怎樣才能修正回來呢?
感謝
作者: uranusjr (←這人是超級笨蛋)   2015-07-19 03:55:00
請給 blockMethod1 實作
作者: valda (valda)   2015-07-19 04:03:00
blockMethod1是用AFNetworking call web api
作者: Crazyming411   2015-07-19 11:33:00
如同 uranusjr 提到,這與 blockMethod1 實作有關。簡單實驗了一下的結果,你可以參考看看:https://goo.gl/tf9rdu

Links booklink

Contact Us: admin [ a t ] ucptt.com