我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
,或者我应该为异步调用调用不同的方法?