延迟UISearchbar解析

hmt*_*hur 4 iphone objective-c nsxmlparser uisearchbar

我的应用程序中有一个UISearchbar.这是一个动态搜索,当用户输入文本时,通过远程API调用(我认为是通过REST)搜索远程数据库.

当用户键入时,表视图会动态刷新.我正在使用NSXMLParser来解析XML结果.(所以3个委托方法; didStartElement,didEndElement)

在某些情况下,结果中显示重复的条目,例如,如果用户键入了YAH,则显示YAHOO 3-4次.我不知道为什么.

如何减少解析完成的次数,或者如何延迟解析,以便它不会对用户输入/删除的每个字符发出请求.

我假设,这可能会解决问题.

Dav*_*har 10

您可以做的一件事是在发送远程API调用之前引入延迟,而不是为每个字符发送一个查询.

// Whenever UISearchbar text changes, schedule a lookup
- (void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)text {
        // cancel any scheduled lookup
        [NSObject cancelPreviousPerformRequestsWithTarget:self];
        // start a new one in 0.3 seconds
        [self performSelector:@selector(doRemoteQuery) withObject:nil afterDelay:0.3];
}
Run Code Online (Sandbox Code Playgroud)