我需要使用一個沒有正確啓動的庫。調用一些方法後,它會創建一些NSOperation
,它永遠不會完成,並與睡眠狀態錯誤結束了和,因爲我沒有這些操作的情況下,我無法將其取消。 有沒有可能取消它沒有訪問?是否有可能在無法訪問的情況下取消nsoperation?
回答
請注意,即使你有機會訪問到NSOperation
或它的隊列中,「取消」並不意味着「讓走。」這隻意味着「如果它尚未啓動,則不啓動,如果它已啓動,則設置取消標誌。」如果NSOperation
沒有檢查其取消標誌,那麼它仍然不會終止。沒有辦法做你想做的事情,這是故意的。強行終止操作會使程序處於未定義狀態。
這聽起來像你要麼在圖書館中的錯誤,或者您是如何使用該庫中的錯誤(我懷疑後者之前前者,但它取決於庫)。你將需要追蹤該錯誤並解決它。
你可以訪問NSOperationQueue
其中這些操作已被添加? 如果是的話,你可以像這樣訪問:
var queue = NSOperationQueue.mainQueue()
// or
queue = NSOperationQueue.currentQueue()!
let operations = queue.operations
for operation in operations{
if operation.name == "name of operation if you know it" {
operation.cancel()
}
}
如果你要做到這一點,你可以使用'cancelAllOperations()'。相關操作不太可能位於主隊列或當前隊列中(如果它位於當前隊列中,那麼此代碼將不會運行,因爲當前隊列將被阻塞,並且如果它位於主隊列中,整個用戶界面將被鎖定,操作系統將殺死我們)。 –
同意你Rob,但爲什麼這個代碼不會在當前隊列的情況下運行。我認爲行動可以同時進行 –
- 1. 是否有可能在不訪問代碼庫的情況下使用CodedUI
- 2. 是否有可能在沒有PHP的情況下創建註冊可能性?
- 3. 是否有可能在沒有分佈式計算引擎的情況下訪問MATLAB中的MPI功能
- 4. 是否可以在沒有Google API的情況下從Android訪問Google App Engine?
- 5. 是否可以在沒有Hibernate的情況下訪問Hibernate託管數據庫?
- 6. 是否可以在沒有shell訪問的情況下執行SVN導出?
- 7. 是否可以在沒有SQL Server的情況下訪問.mdf數據庫?
- 8. 是否有任何情況下圖像可能無法正確縮放?
- 9. 是否有可能避免在此情況下
- 10. 是否有可能在默認情況下
- 11. 是否有可能使一個XSS在這種情況下
- 12. 是否有任何情況下DateTimeOffset可能不可靠?
- 13. 是否有可能訪問
- 14. 是否可以在不需要下載的情況下訪問遠程SWF?
- 15. 是否有可能在沒有GUI的情況下使用Vim的clientserver功能?
- 16. NSOperation取消問題
- 17. 爲什麼在以下情況下資源ID無法訪問?
- 18. NSULLConnection可取消NSOperation
- 19. 是否有可能在IsHighResolution = false的情況下模擬秒錶,默認情況下它是真的?
- 20. 是否有可能在沒有PS4套件的情況下訪問DualShock 4控制器中的揚聲器?
- 21. 是否有可能在沒有http請求的情況下訪問GAE數據存儲?
- 22. 是否有可能在沒有用戶登錄的情況下訪問Google日曆programmaticaly?
- 23. 如何在無法訪問iPhone的情況下測試iPhone?
- 24. 是否可以在不消耗流的情況下讀取HttpRequest參數?
- 25. 我可以在沒有鍵盤的情況下訪問stdin嗎?
- 26. 我可以在沒有api_key的情況下訪問Facebook API嗎?
- 27. 在沒有獲取者的情況下訪問Scala字段
- 28. 在沒有瀏覽器的情況下獲取訪問令牌
- 29. 是否可以在不初始化類的情況下訪問類屬性?
- 30. 是否有可能在不運行它們的情況下訪問張量張量的形狀?
號停止/取消'NSOperation'你應該能夠訪問它。 –
技術上講,你也將能夠取消操作,如果你有機會訪問託管'NSOperationQueue',我敢肯定你沒有訪問要麼... –