【问题标题】:Crash related to UITableViewController / UISearchDisplayController in MonoTouch/Xamarin.iOSMonoTouch/Xamarin.iOS 中与 UITableViewController / UISearchDisplayController 相关的崩溃
【发布时间】:2013-08-05 21:06:25
【问题描述】:

我无法在我的应用程序中找到随机崩溃的原因。仅当我在发布模式下构建并在 iPhone 或 iPad 等设备上运行时才会发生崩溃。在模拟器上调试运行时不会发生崩溃。我的猜测是问题与崩溃日志中的这两行有关,

6   UIKit                           0x34a193d0 -[UISearchDisplayController _destroyManagedTableView] + 68
7   UIKit                           0x34a2195a -[UISearchDisplayController dealloc] + 94

我已经在这里上传了我的 UITableViewController 的源代码和完整的崩溃日志,https://gist.github.com/Nordis/6128735

非常感谢所有有助于跟踪崩溃原因的帮助!

更新

我现在已经编写了一个错误报告,我查看了 Rolf 在 cmets 中建议的线程。所以我下载了测试用例,应用了修复。但仍然是完全相同的崩溃,堆栈跟踪与我的非常相似。

https://bugzilla.xamarin.com/show_bug.cgi?id=13703

【问题讨论】:

  • 这里的修复:stackoverflow.com/a/6769885/183422 有帮助吗?
  • 感谢 Rolf 的回复,不,修复没有帮助。我实际上已经在我的代码中修复了这个问题,但仍然没有运气。我认为您在我使用 Xamarin 邮件列表进行的有关此问题的对话中获得了 CC:ed。我已经尝试了修复,没有修复,在修复周围使用 BeginInvokeOnMainThread 以及 InvokeOnMainThread。一段时间后应用程序仍然崩溃。通常在使用大约 1-2 分钟后。而且我认为只有当我使用 release 编译时。

标签: xamarin.ios crash uitableview xamarin uisearchdisplaycontroller


【解决方案1】:

Rolf 在 Xamarin 提供的解决方案相当简单,我只需将代码从 Dispose() 移动到 UITableViewController 中的 ViewDidDisappear(),

public override void ViewDidDisappear (bool animated)
{
    searchController.SearchResultsSource = null;
    searchController.Delegate = null;

    base.ViewDidDisappear (animated);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多