2010-12-02 6 views
1

나는 아이폰에 URL (또는 실제로 url이 가리키는 파일)을 문자열로로드 할 수 있기를 원합니다. 내가 이것을 할 수 있기를 원하는 이유는 태그를 찾는 문자열을 파싱하고 그 값을 추출 할 수 있기 때문입니다.웹 페이지의 내용을 문자열로 읽어 데이터를 파싱 할 수 있습니까?

파일은 주로 웹 페이지 HTML 또는 .ASP 등 나에게 내가 무엇을해야하는지에 대한 몇 가지 힌트를 줄 수

누구 좀 이런 일을 달성 할 수 있도록인가?

많은 감사, -code

답변

3

먼저 얻는 URL

NSURL *anUrl = [NSURL URLWithString:@"http://google.com"]; 
다음

문자열로 돌려

NSError *error; 
NSString *htmlString = [NSString stringWithContentsOfURL:anUrl encoding:NSUTF8Encoding error:&error]; 

UPDATE :에 대한 문서가

있다 내용 가져 오기 거기에서 ADC site

에서있는 NSURLConnection을 사용하여 URL의 당신은 내가이 질문과 대답 된 것을 감사

NSString *htmlString = [[NSString alloc] initWithData:urlData encoding:NSUTF8Encoding]; 
+2

URL이 완전히 다운로드 될 때까지 응용 프로그램의 호출 스레드가 차단됩니다. 다운로드를 비동기 적으로 진행해야하는 경우 NSURLConnection을 사용해야합니다. –

+0

좋은 지적 -하지만 시작이었고 OP는 힌트를 요청했습니다. ;-) – Abizern

2

사용하여 다운로드 된 데이터의 문자열 표현을 얻을 수 있지만, 나는 강력하게 제안했다 NSString의 stringWithContentsOfURL : encoding : error : 메서드를 사용하지 않는 것이 좋습니다. 지난 해 Apple이 iOS 개발자에게 보낸 메시지 중 하나가 인 경우 메인 스레드에서 동기식 네트워크 호출을하지 마십시오..

요청에 응답하는 데 20 초 이상 걸리며 3G 또는 EDGE 연결로는 거의 발생하지 않으며 Wi-Fi 연결에서도 가능한 경우 iOS가 앱을 종료합니다. 더 중요한 것은, 반환하는 데 약 0.5 초 이상 걸리면 사용자가 응답이없는 전화를 사기 위해 사용자를 분노하게된다는 것입니다.

NSURLConnection은 사용하기가 어렵지 않으며 콘텐츠를 다운로드하는 동안 장치가 이벤트에 계속 응답 할 수 있습니다.

+0

좋은 지적 - 나는 나의 대답을 업데이트했다. – Abizern

관련 문제