2014-04-11 2 views
0

두 부분으로 나뉩니다. NSXMLParser를 사용하여 RSS 피드를 다운로드하고 있습니다. 이 있었는지 난 단지 파서 코드를 실행하고 실제로 전체 XML을 당길 필요가 있으므로, 단순히 원격 XML의 헤더를 읽고 마지막 업데이트 타임 스탬프를 확인하는 방법이 있는지iOS 다운로드하기 전에 원격 파일에 업데이트가 있는지 확인하십시오.

NSURL *url = [NSURL URLWithString:@"linktorssxml"]; 
parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
[parser setDelegate:self]; 
[parser setShouldResolveExternalEntities:NO]; 
[parser parse]; 

이 궁금하네요 변화?

또한 내가 말했듯이 이것은 두 부분으로 된 질문입니다. 나는 외부에서 호스팅되는 plist와 같은 생각을 가지고 있습니다. 다음과 같이 현재라고 : -

_content = [[NSArray alloc] initWithContentsOfURL:[NSURL URLWithString:@"pathto.plist"]]; 

을 다시 원격 마지막 업데이트 시간에 대한 헤더를 확인하는 방법이 있으며, 변경이있는 경우, 따라서 단지 전체 파일을 다운로드?

답변

1

예. 데이터를 다운로드하려면 NSXMLParser 대신에 NSURLConnection 또는 NSURLSession을 사용해야합니다.

원하는 내용을 설명하기 위해 NSMutableURLRequest을 사용하여 HTTP 헤더 (최종 수정 날짜가 포함되었을 수 있음)를 가져올 수 있습니다. 그 방법은 setHTTPMethod:이며, 방법을 HEAD으로 설정할 수 있습니다. 연결을 만들고 헤더를 가져 와서 다음에 할 일을 결정하십시오.

XML이 매우 큰 경우가 아니라면, 아마도 가장 효과적인 방법은 아닙니다. 파일이 수정 된 경우 가져 오기 위해 두 번째 네트워크 요청 만하면됩니다. 네트워크 요청이 느리므로 네트워크 요청을 최소한으로 유지해야합니다. 대부분의 경우 파일을 얻으려면 NSURLConnection 또는 NSURLSession을 사용하는 것이 좋습니다. 응답에는 HTTP 헤더가 포함되므로 여전히 날짜가 표시되며 파서를 실행할지 여부는 여전히 결정할 수 있습니다.

+0

감사합니다. 여러 요청에 대한 귀하의 요지는 제가 수표를 발행하는 것에 대한 우려였습니다. 조언 해주셔서 감사합니다. NSXMLParser보다 데이터를 가져 오는 데 NSURLConnection/NSURLSession이 더 빠릅니까? 아니면 차이가 있습니까? – MrNeilM

+0

차이가 없습니다. 한도는 네트워크 연결을 설정하는 데 걸리는 시간과 데이터를 전송하는 데 걸리는 시간입니다. NSXMLParser가 데이터를 얻는 것이 더 편리하지만 빠르지도 느리지도 않습니다. –

+0

다시 한번 감사드립니다. 당신의 도움을 주셔서 감사합니다. – MrNeilM