NSURLCache와 함께 AFNetworking을 사용 중입니다. 요청은 NSURLRequestUseProtocolCachePolicy
으로 생성됩니다.NSURLCache를 사용하는 오프라인 모드
Etag = "1398684731";
Cache-Control = "public";
를 모든 것이 완벽하게 작동합니다 응용 프로그램은 헤더와 응답을받습니다. 하지만 이제 오프라인 모드를 추가해야합니다.
그것이 작동하는 방법 : 인터넷 연결을 사용할 수있는 모든 응용 프로그램은 새로운 데이터를 백엔드를 요청하고 Etag
는 경우가있는 경우 다른 Etag
새로운 데이터가 다운로드됩니다 (보통 로 작동합니다입니다
- 경우 동일한 캐싱 응답 이 사용됩니다.
- 인터넷에 연결되어 있지 않으면 캐시 된 응답이 입니다.
오프라인 모드에서는 요청이 실패하는 것이 문제입니다.
다양한 Cache-Control
옵션을 사용하여이 문제를 해결하려고했지만이 방법으로는 작동하지 않는 것으로 보입니다.
여기서 가능한 해결책을 찾았습니다. https://stackoverflow.com/a/15885318/3140927. 그것은 잘 작동하지만 아주 우아하지는 않습니다. 나는 작년에 무언가가 바뀔 수도 있다고 생각합니다.
또한 "NSURLCache가 명시적인 오프라인 시나리오 용으로 만들어지지 않았으며 Safari의 속도를 높이기 위해 설계되었으므로 수동 다운로드에 사용해서는 안됩니다." SDURLCache가 내 용도로 더 좋을까요?
그럼 오프라인 모드를 구현하는 가장 좋은 방법은 무엇입니까?
나는 URL 자체가 쉽게 수정할 수 있기 때문에 당신이 SDURLCache 및 AFNetworking를 사용한다, 또는, 그것은 당신이 AFNetworking를 사용하지 않는 문제를 해결 생각 당신은 자신의 NSURLConnection 클래스를 작성할 수 있지만, AFNetworking과 솔루션을 가지고 있기 때문에 우리는 – iphonic