我在iOS应用中使用Restkit
对我的服务器进行GET
调用。我可以让调用工作得很好,除了它应该是异步的,它阻止我的主线程。我基本上使用他们的确切示例来从他们的github页面发出请求,如下所示:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://mywebapi.com/Article"]];
RKObjectRequestOperation *operation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[responseDescriptor]];
[operation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *result) {
Article *article = [result firstObject];
NSLog(@"Mapped the article: %@", article);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Failed with error: %@", [error localizedDescription]);
}];
[operation start];
这将阻止所有主线程执行(例如我的转换),直到调用成功块为止。将此调用包含在dispatch_queue
内部确实可以解决问题,但我理解这个方法本身应该是异步的。
我是否遗漏了RKObjectRequestOperation
上的一些配置,或者我应该调用异步呼叫的其他方法?
答案 0 :(得分:0)