在Restkit中使用块(如ASIHttpRequest块)

我一直在ASIHttpRequest中广泛使用块支持,而且我发现它是编码asynchronous请求的一种非常优雅的方式,比让委托callback一个单独的函数更重要

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

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

我想开始使用Restkit,但我需要能够使用Restkit和块。

我在这里看到了包装器Restkit Block Wrapper ,但是想检查一下这个包装器是否能在生产环境中正常工作,并且如果有人在使用之前

我还没有使用RestKit块封装,但我会很快。 我实际上是从我的应用程序中删除ASIHTTPRequest并用RestKitreplace。 不是因为它不好,ASIHTTP *是相当稳定的 – 但它不是演变。 虽然许多其他库,如RestKit,包装NSURLConnection,从而获得苹果继续增强的好处,ASIHTTP *使用CFNetwork。 苹果并没有投入大量精力来改进先前存在的Core Foundation类(如CFNetwork)。 而且,由于ASIHTTP *依赖于CF,所以在ARC可用时迁移到ARC将是一个皇家的痛苦 ; 我不希望ARC的好处尽快。

阻止对RKRequest上的所有基本委托任务的支持,而RKObjectLoader将会在0.9.4中出现

昨天,Blake发布了0.9.3版本 ,其中使用了Object Mapper的块(其他方法已经可以用于块)。 你应该看看新的function。

对于使用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]); }; }];