gpt4 book ai didi

ios - 在 iOS 上对 Google Cloud Endpoints 执行同步查询

转载 作者:可可西里 更新时间:2023-11-01 03:32:24 25 4
gpt4 key购买 nike

我想这确实是向 Google 提出的功能请求,但我很好奇是否有人知道解决方法。我想对 GAE Endpoints api 执行一个同步查询请求。

在 Android 中执行请求是同步的。然后将其放入 AsyncTask 中,使其在后台运行。

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

我正在将 Android 应用程序转换为 iOS 应用程序,如果他们使用相同的机制,那就太好了。例如,有时我想要一个同步查询。它只是让我的代码更简单,而且我知道将它放在后台线程上。

所以我的问题是...是否有任何方法(hacky 与否)阻止直到 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");

关于ios - 在 iOS 上对 Google Cloud Endpoints 执行同步查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19304927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com