Folgendes funktionierte für mich in RestKit 0.20.3: Ich konstruiere das NSMutableRequest selbst und setze das Timeout für diese Anfrage. Leider ist es aufgrund der AFNetworking-Richtlinie nicht möglich, das Standard-Anforderungstimeout in RestKit 0.20.x festzulegen, um diese Eigenschaft nicht verfügbar zu machen.
NSMutableURLRequest *request = [objectManager requestWithObject:nil method:RKRequestMethodGET path:@"test.json" parameters:nil];
[request setTimeoutInterval:300]; // set the timeout for this request to 5 minutes
RKManagedObjectRequestOperation *op = [[RKObjectManager sharedManager] managedObjectRequestOperationWithRequest:request managedObjectContext:[[[RKObjectManager sharedManager] managedObjectStore] mainQueueManagedObjectContext] success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"Success, %d results loaded", [mappingResult count]);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Fail");
}];
[[RKObjectManager sharedManager] enqueueObjectRequestOperation:op];
Ich verwende requestWithObject nicht auf Restkit. Ich benutze [[RKObjectManager sharedManager] postObject .... Wird requestWithObject immer als Basis von Restkit aufgerufen? Bedeutung verwendet mein postObject-Aufruf schließlich requestWithObject. Der Grund für das Setzen eines Timeouts liegt darin, dass die Ressourcen von Heroku in den Ruhezustand versetzt werden, wenn sie für eine bestimmte Zeit nicht verwendet werden. Wenn das passiert, brauche ich Restkit, um auf Heroku zu warten (20 Sekunden). – jdog
Ja, es wird als Ergebnis von postObject aufgerufen: weil es von enableObjectRequestOperationWithObject aufgerufen wird: die von fast allem aufgerufen wird. – Wain