Было бы лучше обработать время ожидания в методе, отличном от обратного вызова делегата.Как вы говорите, метод делегата требует объектов, которые создаются внутри класса.И вы, вероятно, не хотите обрабатывать «настоящую ошибку» и время ожидания точно так же, верно?Например, при тайм-ауте вы можете захотеть повторить попытку.
Если вы действительно хотите, чтобы тайм-аут и сбой с ошибкой сделали то же самое, вы можете использовать для этого другой метод:1003 *
-(void)getObjects{
RKObjectManager *sharedManager = [RKObjectManager sharedManager];
// loads the object via delegate
[sharedManager loadObjectsAtResourcePath:self.resourcePath delegate:self];
//creates an error
NSError *error = [NSError errorWithDomain:@"world" code:200 userInfo:nil];
// Setting timeout here. goto failure
nTimer = [NSTimer scheduledTimerWithTimeInterval:10.0f target:self selector:@selector(didTimeout) userInfo:nil repeats:NO];
}
- (void)didTimeout {
NSLog(@"Error");
}
// handles failure
- (void)objectLoader:(RKObjectLoader*)objectLoader didFailWithError:(NSError*)error {
[self didTimeout];
}
// handles success
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
//don't forget to invalidate the time or else you'll get errors even when successful
[nTimer invalidate];
}
Конечно, вы можете расширить это, чтобы сделать его более гибким, если это необходимо, но это, кажется, охватывает то, что вы спросили.