C# Monotouch应用程序崩溃,没有StackTrace或日志(从未调用析构函数)

C# Monotouch应用程序崩溃,没有StackTrace或日志(从未调用析构函数),c#,iphone,ipad,crash,xamarin.ios,C#,Iphone,Ipad,Crash,Xamarin.ios,我的MonoTouch应用程序不断崩溃,我不知道该怎么办。在这一点上,我觉得我已经尝试了一切。我有一个RootViewController,它可以转换成无数个vewcontroller。每次传输发生时,我都手动调用上一个ViewController上的dispose并显示新的 对我来说,这就像是一个内存泄漏,因为应用程序崩溃了大约20-40个ViewController,而且在运行之前肯定会变得更加缓慢 如何在设备上查看MonoTouch应用程序的内存使用情况?(不在模拟器中崩溃) 有没有更多的

我的MonoTouch应用程序不断崩溃,我不知道该怎么办。在这一点上,我觉得我已经尝试了一切。我有一个RootViewController,它可以转换成无数个vewcontroller。每次传输发生时,我都手动调用上一个ViewController上的dispose并显示新的

对我来说,这就像是一个内存泄漏,因为应用程序崩溃了大约20-40个ViewController,而且在运行之前肯定会变得更加缓慢

  • 如何在设备上查看MonoTouch应用程序的内存使用情况?(不在模拟器中崩溃)

  • 有没有更多的诊断方法来找出它崩溃的原因

  • 任何帮助都将不胜感激

    更新我已将以下内容添加到我的VC中

    而且它永远不会被调用。

    C#GC类可以为您提供所使用内存总量的指示,但它非常不准确,而且大多是错误的。但是,它可以告诉您内存使用是增加、减少还是稳定。一般来说,我在执行GC.Collect时遇到的问题比没有GC.Collect时更多。因此,我的总体建议是不要使用这种方法

    您可以使用描述的技术在设备上进行调试。但是,我有这个问题,如果你在设备调试中遇到问题,建议联系Monotouch

    您的问题可能是Monotouch将ViewController保留在内存中,尽管您调用Dispose。创建一个列表类型的属性,并将您的VCs保留在那里。这可以使MonoTouch更容易检测和收集未使用的VCs。此外,在从集合中释放VCs内容之前,请尽可能从中移除VCs内容。我见过Monotouch保留对其父对象的子对象的引用


    总之,Monotouch不是一款成熟的产品,您必须习惯于联系他们的支持团队。和请将您的解决方案张贴在此处,以便我们大家都可以学习!:)

    确保处置不需要的对象。尽管mono touch为您做了一些这方面的工作,但我发现在我的代码中这样做更好。在循环中的大量例程中,当代码生成大量一次性对象时,始终强制GC。另外,我不认为Monotouch是不成熟的。平台在晃动

    ~TargetPromptController(){
        Console.WriteLine("TargetPromptController Released from memory!");
     }