我对此完全感到困惑。每次我在模拟器或真实设备上测试我的应用程序时,它会在这段代码上挂起30,40,60秒,但是对此API调用的所有后续请求都将以毫秒为单位加载。
我认为这是第一次与DNS解析有关,因此我切换到IP地址进行测试,但没有解决问题。
如果它是应用程序启动后的第一个请求,它将暂停大量时间,一旦加载,您可以打开相同数据集的视图,然后加载列表很快。
有什么建议吗?
-(void)getVendorImages {
//Alloc the image list
self.imageList = [[NSMutableArray alloc] init];
// Prepare the request
NSString* vendorImagesApi = [NSString stringWithFormat:@"%@%@",@"http://example.com/api/v1/vendor/images/",self.imageData.vendorId];
NSLog(@"Getting list of images %@",vendorImagesApi);
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:vendorImagesApi
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// NSLog(@"JSON: %@", responseObject);
//Get images
for (id imageData in responseObject)
{
// prepare image url
NSString* imageUrl = [NSString stringWithFormat:@"%@%@%@",@"http://example.com/images/",imageData[@"id"],@"-650x650.jpg"];
NSLog(@"Putting this in in a list: %@", imageUrl);
[self.imageList addObject:imageUrl];
}
[self.tableView reloadData];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
修改
这是线程堆栈
答案 0 :(得分:1)
所以经过一堆挖掘,我删除了AFNetworking的所有文件,然后再次安装它,包括UIKit + AFNetworking文件夹,之后我删除了所有框架并添加了UIKit和SystemConfig。最后,我在应用程序开头加载的一个视图有自己的NSURLConnectionDelegate。我删除了所有这些并让它使用AFNetworking,这就是诀窍。显然,第一次阻止AFNetworking连接的运行是因为它可能会争夺谁可以使用该服务。