我有一个 NSURLConnection,每次调用 -(void)viewWillAppear:animated
时都会调用它(仅用于测试)
我就是这样做的
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];
然后我有这三个委托(delegate)方法:
- (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
中的网站并确认它已更改),但它始终是相同的。
就好像它重用了从第一个连接检索的数据。
有谁知道这是为什么吗?
最佳答案
这应该是您的缓存策略,我将在一秒钟内更新正确的信息。
<小时/>更新
尝试将您的 cahce 策略设置为:cachePolicy:NSURLRequestReloadIgnoringCacheData
应该是:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0];
关于iphone - NSURLConnection 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6412665/