を更新していない私、私が呼ばれるたび-(void)viewWillAppear:animated
を呼び出していますNSURLConnectionを私はその後、このNSURLConnection
receivedData = [[NSMutableData data] retain];
NSString *urlString = @"<URL hidden>";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:30.0];
[NSURLConnection connectionWithRequest:request delegate:self];
ようにそれをやっている
(それはそれだけのテストのためだ、今だけのためです)持っているIこれら三つのデリゲートメソッドがあります:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[receivedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *returnString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
usersPhotos = [[NSMutableArray alloc] initWithArray:[[returnString JSONValue] objectForKey:@"data"]];
[self loadAnnotations];
NSLog(@"%@", returnString);
[returnString release];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
[self loadAnnotations];
}
を私はreturnString
を変更する必要があります確信しているにもかかわらず(私はurlString
でサイトにアクセスして確認することができますそれは変わった)それは常に同じです。
これは、最初の接続から取得したデータを再利用しているかのようです。
これはなぜですか?
それはトリックでした!どうもありがとうございました!私は何時間も私の髪を引っ張ってきた。私はそれを考え出したはずです:-)ありがとう。 – simonbs
+1。 NSURLRequestReturnCacheDataElseLoadは、キャッシュデータを返すか、キャッシュデータがない場合は、ソースからデータを返すことを意味します。したがって、ソースからのデータが最初に読み込まれた唯一の時間は、残りの部分にキャッシュされたデータを使用するだけでした。 – thomashw
はい、それは非常にスマートです - なぜ私が最初にそれを使ったのか分かりません。 – simonbs