我需要使用一个没有正确启动的库。调用一些方法后,它会创建一些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',我敢肯定你没有访问要么... –