В настоящее время я выполняю миграцию проекта, в котором использовались ASIHTTPRequest и SBJson, на RestKit.
В предыдущей реализации использовалась операция NSOperation для выполнения HTTP-запроса, синтаксического анализа объекта JSON и выполнения необходимых вызовов API Core Data.
Я переформулировал это следующим образом:
@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]];
в конец основного метода решает эту проблему.
Мой вопрос:
Должен ли я выполнять вызовы ResKit API как NSOperation, а если нет, каковы мои альтернативы для выполнения вызовов в фоновом режиме?
Заранее спасибо.