Когда вы используете конструкцию «using», вы вызываете Dispose () в веб-представлении, которое отображается на сообщение «release» во время выполнения Cocoa.
Итак, вы освобождаете объект webview, но вы все еще держитесь за ссылку в вашем классе. При первой попытке доступа к нему вы получаете доступ к выпущенному экземпляру.
Разве вы не добавляете веб-просмотр в свой вид в качестве подпредставления? Если да, то в какой момент?
Правильный код, ИМХО, будет:
public class EventDetailView : UIViewController
{
public WmcStarEventService.Event _event;
public UIWebView webView;
public EventDetailView ()
{
}
public EventDetailView (WmcStarEventService.Event eventParam)
{
_event = eventParam;
}
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
var webRect = new RectangleF(0f, 0f, 320f, 460f);
webView = new UIWebView(webRect);
View.AddSubView(webView);
}
protected override void Dispose(bool disposing)
{
if (disposing)
webView.Dispose();
base.Dispose(disposing);
}
}
Обратите внимание, что переопределение Dispose () не требуется, но оно должно помочь освободить память раньше, чем просто полагаться на сборщик мусора.