Ios 在iPhone上解析Google自动完成XML

Ios 在iPhone上解析Google自动完成XML,ios,xml,autocomplete,nsxmlparser,Ios,Xml,Autocomplete,Nsxmlparser,我试图让谷歌搜索自动完成在我的应用程序工作,但我遇到了一些麻烦。我使用的是UISearchBar,它是textDidChangedelegate方法。当文本发生更改时,我使用NSXmlParser读取如下XML文件: <toplevel> <CompleteSuggestion> <suggestion data="searchterms"/> <num_queries int="13400000"/> </CompleteSuggestio

我试图让谷歌搜索自动完成在我的应用程序工作,但我遇到了一些麻烦。我使用的是
UISearchBar
,它是
textDidChange
delegate方法。当文本发生更改时,我使用
NSXmlParser
读取如下XML文件:

<toplevel>
<CompleteSuggestion>
<suggestion data="searchterms"/>
<num_queries int="13400000"/>
</CompleteSuggestion>
<CompleteSuggestion>
<suggestion data="searchterms twitter"/>
<num_queries int="52500000"/>
</CompleteSuggestion>
</toplevel>

其中SEARCHTERM将是UISearchBar文本。这将返回一个XML文件,然后我将使用

-(void)解析器:(NSXMLParser*)解析器
didStartElement:(NSString*)元素名称
namespaceURI:(NSString*)namespaceURI
qualifiedName:(NSString*)qualifiedName
属性:(NSDictionary*)属性指令


但是我不太清楚如何使用。

一般的想法是使用
searchSuggestions
可变数组属性。在
parserdistartdocument:
方法中,确保将其初始化为一个新的空数组-类似于
self.searchSuggestions=[NSMutableArray]

然后,在didStartElement委托方法中,执行此操作以获得每个建议项

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
    if ([elementName isEqualToString:@"suggestion"]) {
        NSString *suggestion = attributeDict[@"data"];
        [self.searchSuggestions addObject:suggestion];
    }
}
一旦获得
parserdinddocument:
delegate回调,请确保执行显示它所需的任何操作-这取决于您的解析器委托是什么对象。如果解析器的委托是表视图控制器,则可以重新加载表。如果是某个请求对象,则可以回调请求的委托、执行完成块或发布通知