在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