单击+ UIWebView =随机崩溃

我正在iOS 5.0 iPhone和iPad上使用最新的Mono / Monotouch / MonoDevelop稳定版本。 我有一个UIWebView在模拟器从不崩溃,但实际设备上崩溃EXC_BAD_ACCESS随机。 基于我用UIWebViews读取的所有内容,这些内容很可能在UIWebView在完成加载之前处理完毕。

这里是我在我的ViewDidLoad()中使用的代码:

var urlAddress = BASE_URL + _page; var nsURL = new NSUrl(urlAddress); var nsURLRequest = new NSUrlRequest(nsURL); _webView.Tag = 10; _webView.ScalesPageToFit = true; _webView.AutosizesSubviews = true; _webView.LoadStarted += HandleWebViewLoadStarted; _webView.LoadFinished += HandleWebViewLoadFinished; _webView.LoadRequest(nsURLRequest); this.Add(_webView); 

任何想法,为什么它会在实际的设备随机崩溃,但从来没有在模拟器?

我需要看到崩溃的细节和更多的源代码是100%肯定的,但我相信这是因为你的NSUrlRequest实例声明为局部variables。 推广这个variables到你的types的领域应该解决这个问题。

一旦方法完成执行,实例仍然可以被需要。 但是那个时候不再被引用,垃圾收集器可以随时收集。 如果收集,那么你可能会像你提到的一样崩溃。

它在模拟器上没有发生的事实可能是由于它比设备更快而且在GC收集该实例之前代码可以完成。 即使它可能会崩溃,它只是一个时间的事情,使它在模拟器上大部分时间工作,几乎从不在设备上。