캐싱을 활용하여 URL 로딩 프레임 워크를 사용하여 URL을로드하는 방법을 파악하려고합니다.NSURLConnection은 NSURLCache를 활용합니까?
NSURLConnections를 사용하고 있으며 NSURLRequests를 제공하고 있습니다. NSURLRequestReturnCacheDataElseLoad 요청에 대한 cachePolicy를 설정했습니다. 처음 요청을로드하면 자동으로 캐시에 저장됩니다 ([NSURLCache sharedCache]
있음). 그러나 다음에 동일한 요청을로드 할 때 NSURLConnection은 캐시에있는 내용을 무시하고 데이터를 다시로드하는 것으로 보입니다.
수동으로 캐시 조회를 구현하고 캐시 된 데이터를 반환하겠습니까? NSURLConnection은 이것을하지 않습니까? 아니면 프레임 워크에서 캐시를 원활하게 사용할 수있는 방법이 있습니까?
UPDATE :
- 이
NSURLRequestReturnCacheDataElseLoad
대신 NSURLRequestUseProtocolCachePolicy
의 다시 사용하여 요청 객체를 대신 새- 을
+[NSURLConnection sendSynchronousRequest:returningResponse:error:]
사용을 요청 캐시 정책을 설정 :는 성공없이 다음 시도 비동기 적으로로드하는 대신
동일한 NSURLRequest 객체를 제공합니까? NSURLCache는 NSURLCache가 특정 응답 데이터에 특정 NSURLRequest 객체를 매핑하여 작동하므로 동일한 URL에 대한 요청을하더라도 여전히 캐시 누락이 발생할 수 있습니다. – ImHuntingWabbits
아니요, 새로운 NSURLRequest를 만들고 있습니다. 그러나 새 요청 객체로 [[NSURLCache sharedURLCache] cachedResponseForRequest :]'를 수행하면 캐시 된 응답이 있습니다. 따라서 NSURLCache는 요청이 동일하다는 것을 어떻게 든 알고 있습니다. – jasoncrawford
추 신 : NSURLRequest 객체 재사용을 시도했습니다. 차이를 만들지 않습니다. – jasoncrawford