看板 MacDev 關於我們 聯絡資訊
請教一下關於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 請問有哪裡做錯嗎? 怎樣才能修正回來呢? 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.200.200 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1437248054.A.AEF.html
uranusjr: 請給 blockMethod1 實作 07/19 03:55
valda: blockMethod1是用AFNetworking call web api 07/19 04:03
Crazyming411: 如同 uranusjr 提到,這與 blockMethod1 實作有關。 07/19 11:33
Crazyming411: 簡單實驗了一下的結果,你可以參考看看: 07/19 11:34
Crazyming411: https://goo.gl/tf9rdu 07/19 11:34