对于使用互联网连接的应用,我遇到了这个奇怪的问题。该应用似乎没有以正确的方式更新来自互联网的数据。我有一个简单聊天的UIWebView。当我在safari或我的网络浏览器聊天中写一条消息时,一切正常。在应用程序的聊天中写入内容时,即使重新加载页面,数据也不会更新。
它也完全不合逻辑地更新。即使重新启动应用程序时,也不会显示新数据,但突然显示它。
与其他应用程序也有同样的问题,这是UIWebView无法处理的。知道它可能是什么?
示例代码:
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSString *username = [[Database singletonDataBase] currentUserName];
NSString *urlAddress = [NSString stringWithFormat:@"%@?name=%@", @"http://webapi.com/index.php", username];
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
}
答案 0 :(得分:0)
在您的app delegates,didFinishLoading方法中,将NSURLCache设置为不缓存数据:
// Remove and disable all URL Cache, but doesn't seem to affect the memory
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
如果这不起作用,您还可以尝试在NSURLRequest上设置缓存策略:
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval: 10.0];
答案 1 :(得分:0)
我终于找到了答案。正如我所想,我的代码没有错。问题出在服务器端。而且,正如他们在这篇帖子中所说:
NSURLConnection is returning old data
似乎配置错误的服务器端或代理。这使得缓存行为一切都很奇怪。我尝试了另一台服务器,一切正常!
希望这可以帮助有同样问题的人,因为它确实浪费了我很多时间。