ここ数日、私を悩ませている問題がありました。
RSS フィードを NSXMLParser で解析し、結果を UITableView にフィードしています。残念ながら、フィードは次のメソッドで解析する HTML を返します。
- (NSString *)flattenHTML:(NSString *)html {
NSScanner *theScanner;
NSString *text = nil;
theScanner = [NSScanner scannerWithString:html];
while ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString:@"<" intoString:NULL] ;
[theScanner scanUpToString:@">" intoString:&text] ;
html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>", text] withString:@""];
}
html = [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
return html;
}
現在、NSXMLParser デリゲート メソッドでこのメソッドを呼び出しています。
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
これは美しく機能しますが、HTML を解析してテキストにフラット化し、セルを埋めるのにほぼ 1 分以上かかります。その非常に長い間、私の UITableView は完全に空で、スピナーが 1 つだけ回転しています。それは良いことではありません。これは、そうでなければ素晴らしく機能するアプリを出荷する前に、つぶす最後の「バグ」です。
驚くべきことではありませんが、iOS シミュレーターでかなり速く動作します。
アドバイスをよろしくお願いします。