7

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

这是快速参考的示例代码。

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

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

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

4

4 回答 4

8

我还没有使用 RestKit Block 包装器,但我很快就会使用。我实际上是从我的应用程序中删除 ASIHTTPRequest 并替换为 RestKit。不是因为它不好,ASIHTTP* 相当稳定 - 但它并没有发展。虽然许多其他库(如 RestKit)封装了 NSURLConnection 并因此获得了 Apple 对其持续增强的好处,但 ASIHTTP* 使用 CFNetwork。Apple 并没有投入大量精力来改进现有的核心基础课程(如 CFNetwork)。此外,由于 ASIHTTP* 依赖于 CF,因此当它可用时迁移到 ARC 将是一件非常痛苦的事情;我不希望尽快获得 ARC 的好处。

于 2011-06-26T01:10:27.957 回答
7

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

于 2011-08-29T12:24:47.083 回答
3

昨天,Blake 发布了 0.9.3 版本,其中包含用于 Object Mapper 的块(其他方法已经准备好用于块)。你应该看看新功能。

于 2011-08-03T14:41:05.903 回答
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]); 
    };
}];
于 2012-07-07T22:54:17.923 回答