第二个 API 调用正在减慢 iOS

问题描述 投票:0回答:1

我正在使用 Google 地点 API 来搜索附近的地点。我打一个电话来获取这些地点,然后再打另一个电话来获取这些地点的电话号码。第二个调用会减慢应用程序的速度。有什么办法解决这个问题吗?如果还可以提供一些示例代码那就太好了。

s1 = [NSString stringWithFormat:@"https://api.foursquare.com/v2/venues/explore?client_id=%@&client_secret=%@&query=%@&v=20201212&m=swarm&sortByDistance=%i&radius=%f&limit=%@&ll=%f,%f", kClientID, kClientSecret, Name, sortByDistance, meterRadius, recorddisplay, lat, lng];

    NSLog(@"This is the foursqaure query: %@", s1);

NSURL *jsonURL = [NSURL URLWithString:[self urlEncodeValue:s1]];
NSString *jsonDataString  = [[NSString alloc]initWithContentsOfURL:jsonURL];
NSData *jsonData = [jsonDataString dataUsingEncoding:NSUTF8StringEncoding];
//NSLog(@"This is JSON data: %@", jsonDataString);
if(jsonData == nil)
{
    NSLog(@"SEARCH RESULT IS NIL.....");
    //[pool release];
    return FALSE;
}
else
{
    //retrieve the objects in the JSON and then make another http request...
}
ios objective-c google-places-api
1个回答
3
投票

这行是错误的:

NSString *jsonDataString  = [[NSString alloc]initWithContentsOfURL:jsonURL];

您正在主线程上同步联网。永远永远永远不要那样做。这就是延迟的原因。

© www.soinside.com 2019 - 2024. All rights reserved.