2013-07-01 17 views
5

Jestem bardzo rozczarowany tym, że restkit usunął zasady dotyczące pamięci podręcznej w ich nowszej wersji.Polityka Restkit Cache 20.x

Jak możemy osiągnąć to samo w nowszej wersji? i czy jest możliwe, że możemy użyć istniejących klas restkit do tego lub w inny sposób do realizacji tego samego?

+0

RestKit zastosowania będą stosowane AFNetworking więc standardowe bufory obsługi adresów URL. Co próbujesz zrobić, a co nie działa? – Wain

+0

We wcześniejszej wersji utworzyłem opakowanie, które będzie również buforować odpowiedź żądania POST. Po prostu przypisywałem wartość do żądania, np. Cownimeout, duration itp. – nik

+0

znalazłem przydatne odpowiedzi, Solution [tutaj] (https://groups.google.com/forum/#!topic/restkit/Va8sPGF7MyE) – nik

Odpowiedz

1

Można tworzyć RKManagedObjectRequestOperation z NSMutableURLRequest i ustaw request.cachePolicy:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:path relativeToURL:self.baseURL]]; 

request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData; 

RKManagedObjectRequestOperation *operation = [[RKManagedObjectRequestOperation alloc] initWithRequest:request responseDescriptors:[RKObjectManager sharedManager].responseDescriptors]; 
operation.managedObjectContext = [[RKManagedObjectStore defaultStore] newChildManagedObjectContextWithConcurrencyType:NSPrivateQueueConcurrencyType tracksChanges:YES]; 
operation.managedObjectCache = [RKManagedObjectStore defaultStore].managedObjectCache; 

[operation setCompletionBlockWithSuccess:success failure:failure]; 

NSOperationQueue *operationQueue = [NSOperationQueue new]; 
[operationQueue addOperation:operation]; 
+0

czy to jest Mogę spersonalizować zasady dotyczące pamięci podręcznej żądań, takie jak casingimeout, duration itp.? – nik

6

I rozwiązać ten problem przez instacji RKObjectManager (jak opisano w punkcie 2 w link zawarty w odpowiedzi NIK, ale określone w nieco bardziej szczegółowo w docs w "Customization & Notatki podklasy").

I dodaje się następujące metody podklasy i nie było więcej buforowania:

- (NSMutableURLRequest *)requestWithObject:(id)object method:(RKRequestMethod)method path:(NSString *)path parameters:(NSDictionary *)parameters 
{ 
    NSMutableURLRequest *request = [super requestWithObject:object method:method path:path parameters:parameters]; 
    request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData; 
    return request; 
} 
+0

Myślę, że od wersji v0.20.3 metoda przesłonięcia to requestWithMethod: path: parameters: just adding the "request.cachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;" przed "prośbą o zwrot"; –