gpt4 book ai didi

ios - 在 monotuch 中处理 ObjC 异常

转载 作者:可可西里 更新时间:2023-11-01 04:36:23 26 4
gpt4 key购买 nike

有时我会从 objective-c 代码中得到异常。在我的示例中,这些异常并不重要,我希望应用程序继续运行。问题是我如何处理这些异常?

例如,当我使用 GeoCoder 类时,我的应用程序有时会崩溃。我真的不在乎地理编码器是否无法对位置进行地理编码并且想让我的应用程序保持事件状态。在 try-catch block 中包含地理编码器调用并不能解决问题。

任何帮助将不胜感激!

最佳答案

MonoTouch在一定程度上试图将ObjC异常转化为托管异常。这是通过为 ObjC 异常添加一个未处理的异常处理程序来完成的,并在其中抛出一个托管异常。这适用于辅助线程,但不适用于主线程,因为 iOS 在其主运行循环中有一个 try-catch 处理程序,如果有任何异常到达它,它将终止您的应用程序(换句话说,异常已被处理,因此它永远不会到达 MonoTouch 的未处理异常处理程序)。

最好的方法是首先避免 ObjC 异常(Apple 的文档指出 ObjC 异常应该只用于真正的异常情况,因为它们有很多问题 - 例如内存泄漏很常见)。

显然不可能避免所有 ObjC 异常,因此我们尝试为那些仍然发生的情况寻找解决方法。针对您的特定案例完成这项工作的最佳方法是创建一个完整的测试案例并在此处打开错误报告:http://bugzilla.xamarin.com , 附上测试用例。

关于ios - 在 monotuch 中处理 ObjC 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com