1

我有一个文本视图,可以从我的服务器上的 .txt 下载文本。唯一的问题是它只会执行一次——无论我是否更新 .txt 文件,文本都不会改变。

这是文本视图的代码:

- (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 上。

谢谢你的帮助!

4

2 回答 2

0

HTTP caching is controlled by the Cache-Control HTTP header. If your text file is changing often, you should configure your server to emit suitable headers for this, for instance Cache-Control: no-cache. For more details, read Mark Nottingham's caching tutorial.

于 2012-05-12T20:23:09.273 回答
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];

然后在委托中设置文本视图。归根结底,这就是便利方法正在做的事情。

于 2012-05-12T22:09:12.717 回答