在Restkit中使用块(类似于ASIHttpRequest块)

7
我在 ASIHttpRequest 中广泛使用块支持,发现它是一种非常优雅的异步请求编码方式,比代理回调单独函数更加优秀。
以下是示例代码,供快速参考。
   __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setCompletionBlock:^{
      NSString *responseString = [request responseString];
   }];
   [request startAsynchronous];

我想开始使用Restkit,但是我需要能够使用带有blocks的Restkit。

我看到这里的包装器Restkit Block Wrapper,但是想要确认该包装器在生产中是否能很好地工作,并且是否有人在使用它之前进行了广泛的测试。


1
ASIHTTPREQUEST是一个非常先进和高度开发的库。实际上,它令人震惊 - 没有其他词可以形容。可以说,它是iOS宇宙中所有第三方库中最可靠的。我想,对你的问题来说,非常简短的答案就是“没有,没有其他东西会像它一样可靠。”希望能帮到你! - Fattie
4个回答

8

我还没有使用RestKit的Block包装器,但我很快就会开始使用。实际上,我正在从我的应用中删除ASIHTTPRequest,并用RestKit替换它。不是因为ASIHTTP*不好,它相当稳定 - 但它没有进化。虽然许多其他库(如RestKit)包装了NSURLConnection并因此获得了苹果持续增强它的好处,但ASIHTTP*使用CFNetwork。苹果没有投入太多精力来改进现有的Core Foundation类(如CFNetwork)。而且,由于ASIHTTP*依赖于CF,当ARC可用时迁移将是一件非常麻烦的事情;我希望尽快享受ARC的好处。


我实际上只是在我的所有对象映射器之上构建了一个额外的包装类,这很有效。希望 RestKit 在达到 v1 时能够支持块! - meow
创造ASIHTTPRequest的Ben实际上在他的博客上宣布,他正式停止了对ASIHTTPRequest的开发,也是出于上述原因:http://allseeing-i.com/[request_release]。 - runmad

7

在0.9.4版本中,RKRequest和RKObjectLoader将支持所有基本委托任务的块级别操作。


3

昨天,Blake发布了版本0.9.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]); 
    };
}];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接