NSURLSession中数据的持久性

时间:2014-05-13 23:21:48

标签: ios objective-c nsurlsession

我有一堆嵌套的NSURLSessionDataTask,下载的数据在方法调用时仍然存在。我认为它可能与NSURLSession如何处理缓存有关 -

我是否可以通过某种方式刷新缓存,以便在调用方法时获取最新数据(这应该刷新数据)

Here's我正在使用的代码,如果它有帮助的话......

- 编辑 -

我想要在使用后刷新缓存的其中一个请求的更易读的摘录:

NSMutableURLRequest *homeRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://mistar.oakland.k12.mi.us/novi/StudentPortal/Home/Login"]]];
[homeRequest setCachePolicy:NSURLRequestReloadIgnoringCacheData];
[homeRequest setHTTPMethod:@"POST"];

NSString *postString = [NSString stringWithFormat:@"Pin=%@&Password=%@",
                        [self percentEscapeString:pin],
                        [self percentEscapeString:password]];
NSData * postBody = [postString dataUsingEncoding:NSUTF8StringEncoding];
[homeRequest setHTTPBody:postBody];


NSURLSessionDataTask *homeTask = [defaultSession dataTaskWithRequest:homeRequest

homeTask是我添加到NSURLDataTask的{​​{1}}。我想删除它保存的缓存,这样当我再次调用包含这些行的方法时,它会从服务器而不是本地缓存中提取。

1 个答案:

答案 0 :(得分:0)

defautSession是指向[NSURLSession sharedSession]的局部变量吗?我会尝试使用短暂的会话。除了没有将数据缓存到磁盘之外,它几乎是一样的。

NSURLSessionConfiguration *config =
    [NSURLSessionConfiguration ephemeralSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:config];

如果仍然无法解决问题,请在再次发布之前使其无效。使用

[defaultSession invalidateAndCancel]
完成任务后

,然后在下次需要发布之前创建新会话。