iphone - NSURLConnection 不刷新

标签 iphone asynchronous sdk connection nsurlconnection

我有一个 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/

相关文章:

iphone - 如何在 iPhone 上使用新的 Facebook GRAPH API 将照片和消息发布到 Facebook

iOS Facebook SDK 获取好友 ID 异常

iphone - Objective-C 中的正则表达式

html - 防止 IOS/Safari 从链接打开应用程序

ios - Storyboard segue 崩溃和 UINavigationController 最佳实践

android SDK 32位和64位兼容性

iphone - 如何使用 MFMailComposeViewController 设置收件人

java - 重构多线程异步应用程序以防止线程过多

javascript - 如何使用异步代码在 forEach 循环上进行 promise /回调

c# - 调用 API 20 次来生成列表,最佳实践?