c# - MonoTouch - 异步 UISearchBar
<p><p>我有一个异步 UISearchBar 设置如下:</p>
<ul>
<li>继承 UISearchDisplayDelegate 并为 <code>myController.SearchDisplayController.Delegate 设置它</code></li>
<li>Override <code>ShouldReloadForSearchString</code> -> 启动一个调用 Web 服务的新线程并返回 false 以不重新加载 <code>UITableView</code></li>
<li>Web 服务在后台完成 -> 调用 <code>BeginInvokeOnMainThread()</code></li>
<li>通过<code>myController.SearchDisplayController.SearchResultsTableView.ReloadData()重新加载tableview</code></li>
</ul>
<p>第一次搜索时一切正常,我可以退格或键入并查看异步弹出的新结果。</p>
<p>如果我完成搜索或取消它,然后再试一次,对 ReloadData() 的调用会导致以下崩溃:</p>
<pre><code>2012-01-04 23:05:11.589 myApp -: 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) in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29
at MyApp.Application.Main (string[]) in /Users/jonathanpeppers/Projects/MyApp/Main.cs:13
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <IL 0x00050, 0xffffffff>
</code></pre>
<p>我不处理任何东西,并将我的所有代表都保存在成员变量中以防止 GC 问题。每个后台线程似乎也在正确调用 <code>BeginInvokeOnMainThread()</code>。</p>
<p>这很可能是 MonoTouch 中的错误吗?如果有可能,我可以创建一个重现。</p>
<p>否则,如果我做错了,请告诉我。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>这不是绑定(bind)错误(我检查了它们以确定)。数据源应设置在 <code>UISearchDisplayController</code> 上,而不是 table view 上(例如 <code>SearchDisplayController.SearchResultsTableView</code>)。</p>
<p>IOW 替换:</p>
<pre><code> SearchDisplayController.SearchResultsTableView.Source = _tableSource;
</code></pre>
<p>与:</p>
<pre><code> SearchDisplayController.SearchResultsSource = _tableSource;
</code></pre>
<p>这将确保 <code>UISearchDisplayController</code> 的内部状态在使用之间正确更新。</p></p>
<p style="font-size: 20px;">关于c# - MonoTouch - 异步 UISearchBar,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/8738013/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/8738013/
</a>
</p>
页:
[1]