1

サーバー上の.txtからテキストをダウンロードするテキストビューがあります。唯一の問題は、それが1回だけ実行されることです。.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でも発生します。

助けてくれてありがとう!

4

2 に答える 2

0

HTTPキャッシングは、Cache-ControlHTTPヘッダーによって制御されます。テキストファイルが頻繁に変更される場合は、たとえば、これに適したヘッダーを出力するようにサーバーを構成する必要がありますCache-Control: no-cache。詳細については、MarkNottinghamのキャッシングチュートリアルを参照してください。

于 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 に答える