向NSURL添加时间戳

时间:2012-05-12 20:16:14

标签: iphone xcode ios5 xcode4

我有一个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上。

感谢您的帮助!

2 个答案:

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

然后在委托中设置文本视图。在一天结束时,这就是方便方法正在做的事情。