nsoperationqueue

    0熱度

    1回答

    我有opeationqueue我打電話cancelAllOpeations,但如果我問 OpearationQueue.operationcount它沒有回到我零。 我重寫取消方法一切正常,但opertioncount不是zero.is預計?

    0熱度

    1回答

    我正在使用PageViewController,我可能有多個圖像作爲內容。我從服務中獲得以下圖像。但是,當網絡操作仍在繼續時用戶單擊以關閉視圖控制器時,應用程序崩潰。 queue = [[NSOperationQueue alloc] init]; operation = [NSBlockOperation blockOperationWithBlock:^{ [self addA

    3熱度

    2回答

    在我的應用程序中,按鈕觸擊從Internet站點下載數據。該網站是包含二進制數據的鏈接列表。有時,第一個鏈接可能不包含正確的數據。在這種情況下,應用程序將獲取數組中的下一個鏈接並從中獲取數據。鏈接是正確的。 我遇到的問題是,當我點擊按鈕時,應用程序頻繁(並非總是)會凍結數秒。 5-30秒後,正常解凍並下載工具。我明白,有些東西阻止了主線程。當停止在Xcode的過程中,我得到這個(semaphore

    1熱度

    1回答

    我在使用Operation和OperationQueue的Alamofire時遇到問題。 我有一個名爲OperationQueue和NetworkingQueue我推一些操作(包裝AlamofireRequest)進去,一切工作正常,但在應用程序生活,在某一時刻都Alamofire請求不被髮送。我的隊列越來越大,沒有任何要求結束。 我沒有計劃隨時重現它。 有沒有人有幫助我的線索? 下面是代碼的示例

    1熱度

    1回答

    使用operation.cancel()不會取消當前操作。如果在隊列中有一個操作,它似乎取消它,但如果它正在執行,那麼它似乎不會阻止它。 我需要發回一些東西回到我的子類操作中的main()函數來讓它停下來嗎? for operation in downloadQueue.operations { if operation.name == opName { if operati

    4熱度

    2回答

    之前完成我有一個操作的子類和操作隊列maxConcurrentOperationCount = 1 這將執行我的操作按順序,我將它們添加這是很好的,但現在我需要等到所有操作完成後再運行另一個進程。 我正在嘗試使用通知組,但因爲這是在for循環中運行,只要操作已被添加到通知組觸發的隊列中。如何等待所有操作在運行前離開隊列另一個過程? for (index, _) in self.packArray.

    2熱度

    1回答

    我在學習NSOperations & NSOperationQueue。 我有一組NSBlockOperation: 「上傳」 & 「DELETE」。刪除必須等待上傳完成後再執行。 我想要發生的是在進行下一組前完成一項操作。 我已經使用NSThread sleepForTimeInterval來模擬上傳等待和刪除延遲時間。 但是,操作並未等待設置完成。 我將maxConcurrentOperati

    2熱度

    1回答

    即時通訊使用NSOperation下載每個單元格的圖像,所以我不會超載用戶沉重的圖像加載。這工作99%的時間,但不時我得到一個零我的操作塊和應用程序崩潰。 這是代碼: cell.blockImage.image = nil cell.queue.cancelAllOperations() let cacheKey = indexPath.row if(self.i

    0熱度

    1回答

    如果在使用NSOperation的同時如果使用GCD,則任務可以被取消,然後一旦將任務分配給隊列,我們​​無法取消它,因此我不知道如何將我的後續實現轉換爲GCD到NSOperation dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) { [self addAl

    0熱度

    1回答

    我正在閱讀OperationQueue上的文檔。 我有這個疑問,我們正在創建的操作BlockOperation和OperationQueue的同步和異步狀態是什麼。 正如我所理解的那樣,它將作爲同步操作運行,但如果我們想以異步方式運行它,我們必須使用dispatch.async以異步方式調度它。 我理解它嗎?