Tôi đã có một thời gian thực sự khó khăn để thử tắt bộ đệm ẩn trong khung công tác Restkit. Tôi đã cố gắng đặt chính sách bộ nhớ cache thành không, không ảnh hưởng gì cả. Cách chính xác để làm điều này là gì?Bộ nhớ cache, tắt bộ nhớ đệm
Trả lời
Vì vậy, một khi bạn đã có một khách hàng, hoặc rõ ràng khởi tạo nó:
RKClient *client = [RKClient clientWithBaseURL:url];
hoặc bằng cách cho phép người quản lý đối tượng làm điều đó:
RKObjectManager* om = [RKObjectManager managerWithBaseURLString:url];
RKClient *client = om.client;
Nó phải là một vấn đề đơn giản chỉ việc thiết chính sách bộ nhớ cache:
client.cachePolicy = RKRequestCachePolicyNone;
Đó có phải là những gì bạn đang làm không?
Cập nhật: Vì thông điệp ghi nhật ký là điều duy nhất đáng lo ngại nên tôi quyết định theo dõi nguồn của nó. Phiên bản tl; dr là để bỏ qua thông báo và tin tưởng proxy ghi nhật ký đang nói gì với bạn.
Để kiểm tra kỹ, tôi đã tìm kiếm "Invalid cache at path" và tìm thấy nó ở hai vị trí RKCache invalidateSubDirectory:
và RKCache invalidateAll
và đặt điểm ngắt trên chúng. Dưới đây là một vết đống phần từ một số mã của tôi:
#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
Những gì tôi học kinh nghiệm tìm kiếm thông qua điều này là có hai sự đếm điều khiển bộ nhớ đệm:
RKRequestCachePolicy
đó là những gì bạn thiết lập trên máy khách, nó kiểm soát khi bộ nhớ cache được tham vấn.RKRequestCacheStoragePolicy
xác định khoảng thời gian kết quả được lưu trữ trên thiết bị (không bao giờ, thời lượng phiên, vĩnh viễn).
Là một phần của việc thiết lập máy khách, khi URL được đặt, máy khách sẽ tạo bộ nhớ cache mới với RKRequestCacheStoragePolicyPermanently
thiết lập chính sách lưu trữ liên quan đến việc xóa bộ nhớ cache phiên trước và — nếu bộ nhớ cache bị tắt — bộ nhớ cache vĩnh viễn. Đó là thanh toán bù trừ mà bạn đang nhìn thấy trong các thông điệp đăng nhập.
- 1. Symfony2 tắt bộ nhớ cache?
- 2. Tắt dịch bộ nhớ cache
- 3. Tắt/xóa bộ nhớ cache OleDbConnection
- 4. Bộ nhớ đệm mùa xuân so với bộ nhớ đệm
- 5. Drupal - tắt bộ nhớ cache CSS
- 6. Tắt bộ nhớ cache trong Apache Felix
- 7. Bộ nhớ đệm Hibernate?
- 8. Tắt bộ nhớ đệm JavaScript trong Google Chrome
- 9. Rails - etags so với bộ nhớ đệm trang (bộ nhớ cache tập tin)
- 10. Sự khác nhau giữa bộ nhớ đệm và bộ nhớ cache trống là gì?
- 11. Làm thế nào để xóa bộ nhớ cache/bộ nhớ đệm in trên MacOSX
- 12. crossdomain.xml ngăn bộ nhớ đệm
- 13. Cách tắt bộ nhớ đệm proxy bằng .htaccess
- 14. Làm cách nào để tắt bộ nhớ đệm trên Firefox?
- 15. SDWebImage xoá bộ nhớ cache
- 16. Class.forName() bộ nhớ đệm
- 17. CakePHP 2.1: Bộ nhớ cache của trình duyệt vs Xem bộ nhớ cache
- 18. Làm cách nào để tắt hoàn toàn bộ nhớ cache?
- 19. Bộ nhớ cache dành riêng
- 20. Lý thuyết bộ nhớ đệm
- 21. Android - Bộ nhớ cache bitmap chiếm rất nhiều bộ nhớ
- 22. Grails \ Hibernate: Để lưu bộ nhớ cache hoặc không lưu vào bộ nhớ cache?
- 23. Chiến lược lưu bộ nhớ cache, Bộ nhớ cache đầu ra so với Bộ nhớ cache dữ liệu hoặc cả hai?
- 24. Cách kết xuất bộ nhớ cache: json
- 25. Hết hạn bộ nhớ cache NHibernate
- 26. Cách tắt bộ nhớ cache trong InternetExplorer 8
- 27. Xóa bộ nhớ cache ActiveRecord
- 28. Xóa bộ nhớ cache NSURLConnection
- 29. Buộc xóa bộ nhớ cache
- 30. Mod_pagespeed xoá bộ nhớ cache?
Cảm ơn bạn đã trả lời. Tôi vừa mới thử và vẫn nhận được thông báo "restkit.support:RKCache.m:178 Lỗi bộ nhớ đệm không hợp lệ tại đường dẫn:" –
Đó có phải là điều duy nhất gợi ý bộ nhớ đệm của nó không? Bạn đã thử sử dụng Charles hoặc một proxy đăng nhập khác để xem những gì đang xảy ra với máy chủ chưa? – drewish
Tôi đã thử đăng nhập proxy, không có gì sai, tôi đã nhận được dữ liệu dự kiến của máy chủ. Trong thực tế, không có gì sai trong hành vi của ứng dụng, dữ liệu của tôi là tốt, mọi thứ diễn ra như mong đợi. Tuy nhiên, logger của tôi giữ cho tôi những thông điệp "Invalidating cache at path: ....". Có vẻ như bộ lưu trữ cố gắng xóa tệp bộ nhớ cache hiện có nhưng không thể. Như đã nói, tôi chỉ lo lắng rằng những hành động đó không tốt cho hiệu suất, hoặc xác thực của Apple. –