【发布时间】:2014-02-08 01:23:17
【问题描述】:
我正在使用以下内容返回服务器上所有文本文件的列表。
echo json_encode(glob("*.{txt}", GLOB_BRACE));
我遇到的问题是当我从我的应用程序执行这个 php 文件时,目录中只有一个文本文件,它按预期返回文件名的 JSON,但是当我重命名该文本文件或添加其他文件时它继续只返回原始运行时存在的文件的名称。
我对 PHP 非常陌生,我想知道我是否返回缓存数据而不是每次都刷新,或者这可能是我的应用程序发生的情况。
这是应用程序代码:
NSURLSessionDataTask *getTheFileList = [session dataTaskWithURL:[NSURL URLWithString:@"http://www.myserver.com/utility/listJSON2.php"] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSEnumerator *enumerator = [json objectEnumerator];
id value;
while ((value = [enumerator nextObject]))
{
/* code that acts on the dictionary’s values */
NSLog(@"text file name: %@", value);
}
}];
谢谢!
【问题讨论】:
-
如果我从手机中删除该应用程序,然后重新安装并重新运行该应用程序,然后文件列表更新...一次。然后每次都会返回该更新,直到我重复该过程。似乎这被缓存在手机上的某个地方,但我不知道在哪里。我试过 finsihTaskAndInvalidate 和 flushWithCompletionHandler: 但无济于事。真的开始激怒我了!
-
解决了...有点。出于绝望,我切换到 ephemeralSessionConfiguration,它现在按预期工作。
-
最后,如果你使用 [NSURLSessionConfiguration defaultSessionConfiguration] 然后设置 sessionConfig.URLCache = NULL 并且上述行为也会停止。
标签: php nsurlsession nsurlsessionconfiguration nsurlsessiondownloadtask nsurlsessiontask