在iOS上执行对Google云端点的同步查询

我想这对谷歌来说确实是一项功能要求,但我很好奇,如果有人知道解决方法。 我想执行GAE端点API的同步查询请求。

在Android中执行请求是同步的。 然后你把它放到一个AsyncTask中,让它在后台工作。

在iOS中执行请求是异步的。 你只需传入一个回调块。

我将Android应用程序转换为iOS应用程序,如果他们使用相同的机制,它会非常好。 例如,有些时候我想要一个同步查询。 它只是让我的代码更容易,我知道把它放在后台线程上。

所以我的问题是这样的...有没有什么办法(哈克或不),直到iOS查询完成阻塞?


您可以使用类似于此的代码等待通话时间结束。 显然你不想在UI线程上这样做,但这会确保你的完成处理程序以串行方式运行。

NSLog(@"Before API Call");
GTLServiceTicket *apiCall = [apiService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                   GTLHelloworldHelloGreeting *object,
                                                   NSError *error) {
    NSLog(@"Starting completion handler");
    NSArray *greetings = [NSArray arrayWithObjects: object, nil];
    greetingsRetrievedFromAPI = greetings;
    [self performSegueWithIdentifier: @"DisplayGreetings" sender: self];
    NSLog(@"Ending completion handler");
}];
[apiService waitForTicket:apiCall timeout:100000 fetchedObject:nil error:nil];
NSLog(@"After completion handler");
链接地址: http://www.djcxy.com/p/74883.html

上一篇: Executing synchronous queries to Google Cloud Endpoints on iOS

下一篇: Calculate cell sizes and draw (with lines in between) them