为什么AFNetworking在没有互联网连接的情况下成功运行?
问题描述:
当我第一次完成这段代码没有互联网连接时,它显示警告应该如何。但是,当我首次成功完成互联网连接并关闭互联网连接后,所有下一次执行都将以相同的响应对象成功完成。没有在设备上尝试过,只有iOS模拟器。为什么AFNetworking在没有互联网连接的情况下成功运行?
NSString *string = @"https://money.yandex.ru/api/categories-list";
NSURL *url = [NSURL URLWithString:string];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
[self deleteAllObjects];
self.numberOfBranchObjects = 0;
for (NSString *key in (NSDictionary *)responseObject) {
[self insertNewObject:key fromSender:self];
}
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
}];
[operation start];
它是在AFNetworking响应对象或smth其他任何缓存?
答
呀它的缓存,在这里你去:
[operpation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) {
return nil;
}];
我建议你直接测试了互联网连接,不过,请求之前。
你会做到这一点的把这个在您的视图控制器的初始化部分:
- (BOOL)connected {
return [AFNetworkReachabilityManager sharedManager].reachable;
}
感谢:
然后之前调用此方法!公牛的眼睛!按我的意愿工作。 – Filinovi4