3

Restkit在我的 iOS 应用程序中使用来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];

这会阻止所有主线程执行(例如我的转换),直到调用成功块。将此调用包装在 adispatch_queue中确实可以解决问题,但我的理解是,此方法本身应该是异步的。

我是否缺少一些配置RKObjectRequestOperation,或者我应该为异步调用调用不同的方法?

4

1 回答 1

0

我在这里找到了这个问题的答案:

RestKit 使 UI 无响应

基本上,您确实需要将其添加到 NSOperationQueue,否则它将在主线程上运行调用。

于 2013-05-08T17:46:18.430 回答