我有一堆嵌套的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}}。我想删除它保存的缓存,这样当我再次调用包含这些行的方法时,它会从服务器而不是本地缓存中提取。
答案 0 :(得分:0)
defautSession
是指向[NSURLSession sharedSession]
的局部变量吗?我会尝试使用短暂的会话。除了没有将数据缓存到磁盘之外,它几乎是一样的。
NSURLSessionConfiguration *config =
[NSURLSessionConfiguration ephemeralSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:config];
如果仍然无法解决问题,请在再次发布之前使其无效。使用
[defaultSession invalidateAndCancel]
完成任务后,然后在下次需要发布之前创建新会话。