2015-08-15 77 views
1

当我第一次完成这段代码没有互联网连接时,它显示警告应该如何。但是,当我首次成功完成互联网连接并关闭互联网连接后,所有下一次执行都将以相同的响应对象成功完成。没有在设备上尝试过,只有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其他任何缓存?

回答

0

呀它的缓存,在这里你去:

[operpation setCacheResponseBlock:^NSCachedURLResponse *(NSURLConnection *connection, NSCachedURLResponse *cachedResponse) { 
    return nil; 
}]; 

我建议你直接测试了互联网连接,不过,请求之前。

你会做到这一点的把这个在您的视图控制器的初始化部分:

- (BOOL)connected { 
    return [AFNetworkReachabilityManager sharedManager].reachable; 
} 
+1

感谢:

[[AFNetworkReachabilityManager sharedManager] startMonitoring]; 

然后之前调用此方法!公牛的眼睛!按我的意愿工作。 – Filinovi4

相关问题