Restkit 프레임 워크에서 캐싱을 사용 중지하는 데 어려움이 있습니다. 캐시 정책을 none으로 설정하려고했습니다. 아무런 효과가 없습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까? 당신이 클라이언트를 가지고 그래서 일단Restkit, 캐싱 사용 안 함
5
A
답변
7
, 명시 적으로 초기화 :
RKClient *client = [RKClient clientWithBaseURL:url];
또는 개체 관리자를 시켜서하면 작업을 수행합니다
RKObjectManager* om = [RKObjectManager managerWithBaseURLString:url];
RKClient *client = om.client;
은 그냥 설정하는 간단한 문제가되어야한다 캐시 정책 :
client.cachePolicy = RKRequestCachePolicyNone;
그게 뭡니까?
업데이트 : 로깅 메시지가 원본을 추적하기로 결정했기 때문에 걱정할 필요가 없습니다. tl; dr 버전은 메시지를 무시하고 로깅 프록시가 말하는 것을 신뢰합니다.
두 번 확인하려면 "경로에서 캐시 무효화 중"을 검색하여 RKCache invalidateSubDirectory:
및 RKCache invalidateAll
의 두 위치에서 찾은 다음 중단 점을 설정하십시오. 여기에 내 코드의 일부에서 부분적인 스택 트레이스의 :이를 통해보고 배운 내용
#0 0x000e6c66 in -[RKCache invalidateSubDirectory:] at RestKit/Code/Support/RKCache.m:189
#1 0x0006b767 in -[RKRequestCache invalidateWithStoragePolicy:] at RestKit/Code/Network/RKRequestCache.m:237
#2 0x0006b958 in -[RKRequestCache setStoragePolicy:] at RestKit/Code/Network/RKRequestCache.m:253
#3 0x00069abf in -[RKRequestCache initWithPath:storagePolicy:] at RestKit/Code/Network/RKRequestCache.m:60
#4 0x000586f3 in -[RKClient baseURLDidChange:] at RestKit/Code/Network/RKClient.m:339
#5 0x000589ce in -[RKClient observeValueForKeyPath:ofObject:change:context:] at RestKit/Code/Network/RKClient.m:373
#6 0x0183cd91 in NSKeyValueNotifyObserver()
#7 0x0183c895 in NSKeyValueDidChange()
#8 0x0182233e in -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:]()
#9 0x01844a82 in _NSSetObjectValueAndNotify()
#10 0x00057404 in -[RKClient initWithBaseURL:] at RestKit/Code/Network/RKClient.m:176
#11 0x00056df3 in +[RKClient clientWithBaseURL:] at RestKit/Code/Network/RKClient.m:130
캐싱을 제어하는 두 열거가 있다는 것입니다 :
클라이언트에 설정 무엇RKRequestCachePolicy
, 캐시가 참조 될 때이를 제어합니다.RKRequestCacheStoragePolicy
결과가 장치에 저장되는 시간 (절대, 세션 지속 시간, 영구)을 결정합니다. URL이 클라이언트를 설정 한 경우, 클라이언트를 설정하는 부분으로
이전 세션 캐시 삭제와 관련 RKRequestCacheStoragePolicyPermanently
가 스토리지 정책을 설정하여 새 캐시를 만들고을-경우 캐싱을 사용하지-영구 캐시입니다. 로깅 메시지에서보고있는 내용입니다.
관련 문제
- 1. MvcSiteMapProvider 캐싱 사용 안 함
- 2. ASP.NET에서 클라이언트 측 캐싱 사용 안 함
- 3. Sharepoint 2010 프로젝트 - 캐싱 사용 안 함
- 4. Sharepoint 2010에서 캐싱 사용 안 함
- 5. JPA (eclipselink)에서 캐싱 사용 안 함
- 6. 최대 절전 캐싱 사용 안 함
- 7. UIPickerView 사용 안 함
- 8. SessionStateModule 사용 안 함
- 9. Quicklook 사용 안 함
- 10. -msse 사용 안 함
- 11. 장치 사용 안 함
- 12. 알림 사용/사용 안 함
- 13. edittext 사용/사용 안 함
- 14. i18n 구문 레일 3에 대한 캐싱 사용 안 함
- 15. Silverlight RIA Services에서 DomainContext/DomainDataSource의 캐싱 사용 안 함
- 16. 파이썬 개발을위한 아파치 2에서 사용 안 함 캐싱
- 17. CXF jax-rs에서 멀티 포트 캐싱 사용 안 함
- 18. 레일 프로덕션 환경에서 서버 측 캐싱 사용 안 함
- 19. dev 모드에서 # {cache} 태그 캐싱 사용 안 함
- 20. Azure에서 실행중인 페이지 및 자바 스크립트 캐싱 사용 안 함
- 21. 전역 적으로 캐시 사용 안 함 .NET
- 22. iframe에서 스크롤 사용 안 함
- 23. android에서 마이크 사용 안 함
- 24. as3로드시 buttonmode 사용 안 함
- 25. 스크롤보기에서 UIButton 사용 안 함
- 26. Vim에서 ':'문자 사용 안 함
- 27. Word에서 SaveAs 사용 안 함
- 28. StyleCop 규칙 사용 안 함
- 29. Zend_Form_Element_Multicheckbox에서 이스케이프 사용 안 함
- 30. 모든 XML보기 사용 안 함
답장을 보내 주셔서 감사합니다. 난 그냥 시도하고 메시지를 여전히 "restkit.support : RKCache.m:178 경로에서 캐시 무효화 :" –
그것이 캐싱을 제안 유일한 건가요? Charles 또는 다른 로깅 프록시를 사용하여 서버에 어떤 정보가 있는지 확인해 보셨습니까? – drewish
프록시 로깅을 시도했지만 아무 것도 잘못되어 서버의 예상 데이터를 받았습니다. 사실, 아무것도 응용 프로그램의 동작에 잘못되어, 내 데이터가 좋다, 모든 것이 예상대로 간다. 그러나 로거가 계속 내게주는 메시지는 "경로에서 캐시 무효화 : ...."입니다. restkit처럼 캐시 기존 파일을 제거하려고 시도하지만 그렇게 할 수는 없습니다. 내가 말한 것처럼, 나는 그 행동이 성능이나 애플의 검증에 좋지 않다고 걱정한다. –