我一直在ASIHttpRequest中广泛使用块支持,我发现它是一种非常优雅的编码异步请求的方式,远远超过委托调用单独的函数
以下是快速参考的示例代码。
__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setCompletionBlock:^{
NSString *responseString = [request responseString];
}];
[request startAsynchronous];
我想开始使用Restkit,但我也需要能够将Restkit与块一起使用。
我在这里看过包装器Restkit Block Wrapper,但是想检查一下这个包装器在生产中是否能正常工作,以及是否有人在之前广泛使用它
答案 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]);
};
}];