В настоящее время я переношу проект, который использовал ASIHTTPRequest и SBJson, в RestKit.
Предыдущая реализация использовала NSOperation для выполнения HTTP-запроса, анализа объекта JSON и выполнения необходимых вызовов Core Data API.
Я реорганизовал это следующим образом:
@implementation UpdateBeers
#pragma mark - NSOperation
- (void)main {
[[RKClient sharedClient] get:@"/beers" delegate:self];
}
- (void)request:(RKRequest*)request didLoadResponse:(RKResponse*)response {
debug(@"didLoadResponse");
}
- (void)request:(RKRequest *)request didFailLoadWithError:(NSError *)error {
debug(@"%@", error);
}
#pragma mark - Memory
- (void) dealloc {
[super dealloc];
}
@end
В логе появляется следующее
отправка запроса GET на URL http://localhost:9091/api/test. HTTP-тело:
Проблема в том, что сервер никогда не получает запрос.
Добавление следующей строки:
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.3]];
до конца основной метод решает эту проблему.
Мой вопрос:
Должен ли я выполнять вызовы API ResKit как NSOperation, и если нет, то каковы мои альтернативы для выполнения вызовов в фоновом режиме?
Заранее спасибо.