互联网数据无法正确更新

时间:2014-08-06 19:03:34

标签: ios objective-c cocoa-touch uiwebview

对于使用互联网连接的应用,我遇到了这个奇怪的问题。该应用似乎没有以正确的方式更新来自互联网的数据。我有一个简单聊天的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];

}

2 个答案:

答案 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

似乎配置错​​误的服务器端或代理。这使得缓存行为一切都很奇怪。我尝试了另一台服务器,一切正常!

希望这可以帮助有同样问题的人,因为它确实浪费了我很多时间。