Использование блоков в Restkit (например, блоки Asihttprequest)

StackOverflow https://stackoverflow.com/questions/6313378

  •  26-10-2019
  •  | 
  •  

Вопрос

Я широко использую поддержку блоков в Asihttprequest, и я обнаружил, что это чрезвычайно элегантный способ кодирования асинхронных запросов, гораздо больше, чем если делегат перезванивает отдельную функцию

Вот пример кода для быстрой ссылки.

   __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setCompletionBlock:^{
      NSString *responseString = [request responseString];
   }];
   [request startAsynchronous];

Я хотел бы начать использовать Restkit, но я должен иметь возможность использовать Restkit и с блоками.

Я видел обертку здесь RESTKIT Block Wabper, но хотел бы проверить, будет ли эта обертка хорошо работать в производстве, и если кто -нибудь широко использовал ее раньше

Это было полезно?

Решение

Я еще не использовал обертку Restkit Block, но вскоре буду. Я на самом деле удаляю Asihttprequest из своего приложения и заменяю Restkit. Не потому, что это плохо, Asihttp* довольно стабилен - но это не развивается. В то время как многие другие библиотеки, такие как Restkit, обертывают NSURLConnection и, таким образом, пожинают преимущества яблок, продолжающих усовершенствовать его, ASIHTTP* использует CFNetWork. Apple не вкладывает большие усилия в улучшение ранее существовавших классов основного фундамента (например, CFNetWork). Кроме того, поскольку ASIHTTP* зависит от CF, это будет Королевская боль мигрировать в дугу, когда она доступна; Я не буду преимуществами дуги как можно скорее.

Другие советы

Поддержка блоков для всех основных задач делегата на rkrequest и rkobjectloader будет появиться в 0.9.4

Вчера Блейк выпустил Версон 0.9.3 Что показывает использование блоков для Mapper Object (другие методы уже были готовы к блокам). Вы должны взглянуть на новые функции.

Для быстрого примера кода для использования Restkit с блоками я получил этот фрагмент из http://kalapun.com/blog/2012/05/17/how-irestkit/

[[RKClient sharedClient] get:@"/fooBar" usingBlock:^(RKRequest *request) {

    request.onDidLoadResponse = ^(RKResponse *response) {

        NSLog(@"Retrieved XML: %@", [response bodyAsString]); 
    };
}];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top