2012-07-26 42 views
0
-(NSMutableArray *)titlesFromString:(NSString *) pageData 
{ 
    NSMutableArray *foundTitles=[[NSMutableArray alloc] init]; 
NSScanner *scaningPage = [NSScanner scannerWithString:pageData]; 

    NSString *title; 
    for (int i =0;i<4;i++) { 
    [scaningPage scanUpToString:@"class='topic_title" intoString:NULL]; 
    [scaningPage scanUpToString:@">" intoString:NULL]; 
    scaningPage.scanLocation++; 
    [scaningPage scanUpToString:@"</a></h4>" intoString:&title]; 
    [foundTitles addObject:title]; 
    } 


    status.text = [[NSNumber numberWithInt:[foundTitles count]] stringValue]; 
    for (NSString *titlesLife in foundTitles){ 
     [results.text stringByAppendingString:@"\n"]; 
     [results.text stringByAppendingString:titlesLife]; 
    } 
    return(nil); 

} 

现在我回来零直到得到它的工作。 我从connectionDidFinishLoading调用此方法。我试图从使用nsparser的网页中提取数据

他们使用一个while循环 而文档中

([theScanner isAtEnd] ==否){} 但他们也这样做定期数据集,其中扫描的最后一件事是在字符串的末尾所以我猜这就是为什么我遇到了一个界限问题。 我也看到了RegexKit框架,并且可能比解析器更好。 直到我得到while循环想通了我有一个for循环只是获取一些信息。 我想我需要检查是否有其他元素的存在,如果没有的话,为了不具有扫描仪扫描出界。

我也困惑,为什么我需要增加扫描仪的位置,一旦扫描“>”为空其他明智我结束了像琴弦“>歌曲是什么在现在吗???” 我还使用一个NSURLConnection的获取数据时,我认为这可能是简单的使用initWithContentsOfUrl但它与连接路线得到很好的经验。

第二块是我想我的结果添加到结果的UITextView这似乎并不奏效。我不应该需要setNeedsDisplay应该吗?我认为这只是在代码中绘制视图时。 感谢您的任何建议。第一

回答

0

第2部分:

您要添加额外的文本到标签的文本,然后把它扔了:)

尝试是这样的:

results.text = [results.text stringByAppendingString:@"\n"]; 

第1部分是多少tricker。

与HTML打交道是出了名的棘手的问题:(然而,有一个很好的回答你的问题here on stack overflow。我从来没有使用的库,但+61票可能是一个相当不错的迹象:)

+0

公顷。甜蜜的谢谢你。我会检查出其他解析器。但我想我想通了。在文档中它显示了如何使用的解析器方法的返回值作为一个布尔值显示它的所有脑干如果我使用的是作为一个条件,如果同时我想我只能说里面如果([解析器findsSomething]) {} else {quit = true}并使用quit作为重复条件。 – mavriksc 2012-07-26 21:44:21

+0

看起来像我可以使用nsregularexpressions,而不是捕获。似乎我正在使用nsscanner动态查找内容的界限。 – mavriksc 2012-08-22 16:51:44