在Restkit中使用块(如ASIHttpRequest Blocks)

时间:2011-06-11 00:53:30

标签: iphone ios ios4 restkit

我一直在ASIHttpRequest中广泛使用块支持,我发现它是一种非常优雅的编码异步请求的方式,远远超过委托调用单独的函数

以下是快速参考的示例代码。

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

我想开始使用Restkit,但我也需要能够将Restkit与块一起使用。

我在这里看过包装器Restkit Block Wrapper,但是想检查一下这个包装器在生产中是否能正常工作,以及是否有人在之前广泛使用它

4 个答案:

答案 0 :(得分:8)

我还没有使用过RestKit Block包装器,但我很快就会用到。我实际上正在从我的应用程序中删除ASIHTTPRequest并替换为RestKit。不是因为它很糟糕,ASIHTTP *非常稳定 - 但它并没有发展。虽然许多其他库,如RestKit,包装NSURLConnection,因此收获苹果继续增强它的好处,ASIHTTP *使用CFNetwork。 Apple并没有投入大量精力来改进已有的Core Foundation类(如CFNetwork)。此外,由于ASIHTTP *依赖于CF,因此当它可用时迁移到ARC将会是皇家的痛苦;我想尽快享受ARC的好处。

答案 1 :(得分:7)

对RKRequest和RKObjectLoader上的所有基本委托任务的块支持将在0.9.4中出现

答案 2 :(得分:3)

昨天,Blake发布了verson 0.9.3,它使用了Object Mapper的块(其他方法已经为块做好了准备)。你应该看一下新功能。

答案 3 :(得分:1)

对于使用RestKit和块的快速代码示例,我从http://kalapun.com/blog/2012/05/17/how-i-restkit/

派生了此代码段
[[RKClient sharedClient] get:@"/fooBar" usingBlock:^(RKRequest *request) {

    request.onDidLoadResponse = ^(RKResponse *response) {

        NSLog(@"Retrieved XML: %@", [response bodyAsString]); 
    };
}];