OStack程序员社区-中国程序员成长平台

标题: c# - MonoTouch - 异步 UISearchBar [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 18:48
标题: c# - MonoTouch - 异步 UISearchBar

我有一个异步 UISearchBar 设置如下:

第一次搜索时一切正常,我可以退格或键入并查看异步弹出的新结果。

如果我完成搜索或取消它,然后再试一次,对 ReloadData() 的调用会导致以下崩溃:

2012-01-04 23:05:11.589 myApp[98047:2407] -[MainController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xb0ea840
Stacktrace:

  at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication.UIApplicationMain (int,string[],intptr,intptr) <IL 0x0009f, 0xffffffff>
  at MonoTouch.UIKit.UIApplication.Main (string[],string,string) [0x00042] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29
  at MyApp.Application.Main (string[]) [0x00000] in /Users/jonathanpeppers/Projects/MyApp/Main.cs:13
  at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff>

我不处理任何东西,并将我的所有代表都保存在成员变量中以防止 GC 问题。每个后台线程似乎也在正确调用 BeginInvokeOnMainThread()

这很可能是 MonoTouch 中的错误吗?如果有可能,我可以创建一个重现。

否则,如果我做错了,请告诉我。



Best Answer-推荐答案


这不是绑定(bind)错误(我检查了它们以确定)。数据源应设置在 UISearchDisplayController 上,而不是 table view 上(例如 SearchDisplayController.SearchResultsTableView)。

IOW 替换:

        SearchDisplayController.SearchResultsTableView.Source = _tableSource;

与:

        SearchDisplayController.SearchResultsSource = _tableSource;

这将确保 UISearchDisplayController 的内部状态在使用之间正确更新。

关于c# - MonoTouch - 异步 UISearchBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8738013/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4