相关疑难解决方法(0)

这是MonoTouch GC中的错误吗?

注意:我创建了一个简单的项目 - 您可以看到故事板之间UIButtonCustomButton故事板中的切换类型如何改变GC行为.

我正试图让我的脑袋缠绕着MonoTouch垃圾收集器.
该问题类似于MT 4.0中修复的问题,但是使用了继承类型.

为了说明它,请考虑两个视图控制器,父级和子级.

子视图包含一个UIButton可以随时写入控制台的视图.
Controller的Dispose方法会引发异常,因此很难错过.

这里是子视图控制器:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    sayHiButton.TouchUpInside += (sender, e) =>
        SayHi();
    }
}

void SayHi()
{
    Console.WriteLine("Hi");
}

protected override void Dispose (bool disposing)
{
    throw new Exception("Hey! I've just been collected.");
    base.Dispose (disposing);
}
Run Code Online (Sandbox Code Playgroud)

父视图控制器只显示子控制器并设置一个计时器来关闭它并运行GC:

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    var child = (ChildViewController)Storyboard.InstantiateViewController("ChildViewController");

    NSTimer.CreateScheduledTimer(2, () => {
        DismissViewController(false, null);
        GC.Collect();
    }); …
Run Code Online (Sandbox Code Playgroud)

garbage-collection xamarin.ios xamarin

33
推荐指数
1
解决办法
9408
查看次数

标签 统计

garbage-collection ×1

xamarin ×1

xamarin.ios ×1