2012-07-26 2 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); 

} 

지금 당장은 작동 할 때까지 nil을 반환합니다. connectionDidFinishLoading에서이 메서드를 호출하고 있습니다. 그들은 while 루프 동안 사용 설명서 nsparser를 사용하여 웹 페이지에서 데이터를 추출하려고합니다.

([theScanner isAtEnd] == NO) {} 그러나 또한 스캔 마지막 문자열의 끝 부분에 일정한 데이터 세트에 이러는 그래서 나는 그것이 내가 경계 문제를 겪고있는 이유라고 생각하고있다. RegexKit Framework를 보았는데 파서보다 더 잘 작동 할 수도 있습니다. 내가 while 루프를 알아 냈을 때 나는 for 루프를 가지고 정보를 얻었습니다. 나는 다른 요소의 존재를 확인해야하고, 그렇지 않으면 스캐너가 경계를 벗어나지 않도록 검사해야한다고 생각합니다.

나는 왜 스캐너 위치를 한 번 증가시켜야하는지 혼란 스럽다. '>'를 다른 현자로 내버려 둔다. "지금 무슨 노래인가?" initWithContentsOfUrl을 사용하는 것이 더 간단 할 수도 있지만 데이터를 얻기 위해 NSURLConnection을 사용하고 있습니다.하지만 연결 경로를 경험하는 것이 좋습니다.

두 번째 청크가 작동하지 않는 결과 인 UITextView에 내 결과를 추가하려고합니다. 나는 설정해야하지 않아야한다. 디스플레이가 있어야합니까? 나는 그것이 코드에서 뷰를 그릴 때만 있다고 생각했다. 제안 해 주셔서 감사합니다. 첫째

답변

0

제 2 부 :

당신은이 같은 시도 :

그것을 버리고 다음 레이블의 텍스트에 여분의 텍스트를 추가하고있어 : 1이 많이

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

파트 속임수. HTML 다루기

내가 그 라이브러리를 사용한 적이 없으니까. 문제 here on stack overflow에 좋은 답이있다, 그러나 :(악명 어려운 문제가 있지만 +61 투표 아마 꽤 좋은 징조 :

+0

헥타르이다. 고마워. 나는 다른 파서를 조사 할 것이다. 그러나 나는 그것을 이해했다고 생각합니다. 그것을 설명서에서 그것은 반환 값을 사용할 수있는 방법을 파서 메서드의 부울을 보여줍니다 existance 만약 내가 그것을 사용할 수있는 조건 안에있는 동안 나는 내가 말할 수있는 것 같아요 ([파서 findsSomething]) {} else {quit = true} 반복 할 조건으로 quit을 사용하십시오. – mavriksc

+0

대신 nsregularexpressions을 사용할 수 있으며 캡쳐 된 것 같습니다. 콘텐츠를 동적으로 찾기 위해 nsscanner를 사용하여 경계가 문제가되는 것 같습니다. – mavriksc

관련 문제