Następujące pracował dla mnie w pakiecie RestKit 0.20.3: Sam konstruuję NSMutableRequest i ustawić limit czasu dla tego żądania. Niestety nie ma możliwości ustawienia domyślnego limitu czasu żądania w pakiecie RestKit 0.20.x ze względu na zasady AFNetworking, aby nie narazić tej właściwości.
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];
Nie używam requestWithObject w witrynie Restkit. Używam [[ROMbjectManager sharedManager] postObject .... Czy requestWithObject jest zawsze wywoływany jako baza Restkit? Znaczenie to, że moje wywołanie postObject ostatecznie używa requestWithObject. Powodem ustawiania limitu czasu są zasoby Heroku, gdy nie są używane przez określony czas. Jeśli tak się stanie, potrzebuję Restkit, aby poczekać, aż Heroku się rozkręci (20 sekund). – jdog
Tak, zostanie wywołana w wyniku postObject: ponieważ jest wywoływana przez właściwość ObjectObjectRequestOperationWithObject: która jest wywoływana przez prawie wszystko. – Wain