문제

이것은 두 부분의 질문입니다. RSS 피드를 다운로드하려면 nsxmlparser를 사용하고 있습니다.

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

XML의 머리글을 원격으로 읽고 마지막 업데이트 시간 소인을 확인하여 파서 코드를 실행하고 실제로 변경이 있으면 실제로 전체 XML을 가져와야하는지 궁금합니다.

더 이렇게하면 이는 두 부분의 질문입니다. 외부에서 호스팅되는 Plist와 동일한 생각을 가지고 있습니다.이것은 현재 다음과 같이 호출됩니다 : -

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

다시는 마지막 업데이트 시간 동안 헤더를 원격으로 확인하고 변경이 있으면 전체 파일 만 다운로드하는 방법이 있습니까?

도움이 되었습니까?

해결책

예,하지만 NSURLConnection 또는 NSURLSession를 사용하여 NSXMLParser를 사용하는 대신 데이터를 다운로드해야합니다.

NSMutableURLRequest를 사용하여 원하는 것을 설명하여 HTTP 헤더 (마지막 수정 날짜 포함)를 가져올 수 있습니다.setHTTPMethod:라는 메소드가 있으며 HEAD에 메서드를 설정할 수 있습니다.연결을하고 헤더를 가져 와서 다음에 수행 할 작업을 결정하십시오.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top