我的 iOS 应用程序的一个视图是 UISearchDisplay。我将其设计为预先输入的搜索,这样每当用户输入一个新字符时,表格就会重新填充。我通过实现 UISearchDisplayDelegate 协议方法做到了这一点:
searchDisplayController:shouldReloadTableForSearchString:
在这种方法中,我将提供的字符串附加到我的查询 URL 中。然后我创建一个新的 NSURLConnection 并提交一个新的异步请求。我通过委托方法接收和附加数据:
connection:didReceiveData:
连接完成下载数据后,通过以下方法:
connectionDidFinishLoading
我将数据传递给 NSXMLParser 的一个实例。接收到的数据是我的数据库中与给定字符串匹配的所有联系人的 XML 文件。数据解析完成后,我重新加载表。
我的问题:如果用户输入文本的速度足够快,就会有多个连接和解析任务同时进行。这是一个问题,因为我有一个 NSMutableData 实例,我将数据附加到并解析。希望你能看到我的目标。
有没有人对改进我的实施和/或解决这个关键部分问题有任何建议?