我有一個NSURLConnection的這我打電話,每次-(void)viewWillAppear:animated
被稱爲(這只是現在,它只是用於測試)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];
然後我有這三個委託方法:
- (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