2012-07-26 36 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