我有一个textview,可以从我服务器上的.txt下载文本。唯一的问题是它只会执行一次 - 无论我是否更新.txt文件,文本都不会改变。
以下是textview的代码:
- (void)viewDidLoad
{NSError *error = nil;
NSURL *myurl = [NSURL URLWithString:@"http://www.myserver.com/test.txt"];
NSString *mystring = [NSString stringWithContentsOfURL:myurl encoding:NSUTF8StringEncoding error:&error];
newtext.text = mystring;
}
似乎无法弄清楚每次应用程序运行时如何检查服务器(而不仅仅是缓存第一次找到的内容)。这种情况发生在模拟器和真正的iPhone上。
感谢您的帮助!
答案 0 :(得分:0)
HTTP缓存由Cache-Control
HTTP标头控制。如果您的文本文件经常更改,则应将服务器配置为为此发出适当的标头,例如Cache-Control: no-cache
。有关详细信息,请阅读Mark Nottingham's caching tutorial。
答案 1 :(得分:0)
我不相信您可以使用方便方法stringWithContentsOfURL设置缓存策略。如果我错了,有人会纠正我。
好消息是这很容易解决。只需创建自己的请求并将缓存策略设置为NSURLRequestReloadIgnoringLocalCacheData。
NSURL *myurl = [NSURL URLWithString:@"http://www.myserver.com/test.txt"];
NSURLRequest *request = [NSURLRequest requestWithURL:myurl
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60.0];
NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request
delegate:self];
然后在委托中设置文本视图。在一天结束时,这就是方便方法正在做的事情。