如何重置应用程序缓存并在运行时重新加载? iOS版

时间:2013-11-26 22:25:23

标签: ios iphone objective-c xcode

我有一个将图片上传/查看到数据库的应用。用户可以编辑图像并重新上传。我正在解决服务器上的文件实际更改的问题,但即使应用程序正在调用下载文件的新副本,图像仍然显示旧版本,即使退出应用程序并重新加载。用户必须完全卸载应用程序并重新安装以查看新图像。

我现在使用此函数来清除应用程序缓存和所有内容,以便可以从数据库中重新加载。

NSString *p = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
for (NSString *fname in @[ @"tmp", @"Library", @"Documents", @"Caches",   @"Preferences" ]) {
    NSString *path = [p stringByAppendingPathComponent:fname];
    [[NSFileManager defaultManager] removeItemAtPath:path error:NULL];
}

现在,当我关闭应用程序并进行干净启动时,会显示正确的图像。不幸的是,即使在调用此函数之后,我也无法在app运行时期间显示新图像。我必须退出并清理应用程序。

有没有办法重置缓存并干净地重新加载应用程序,所以我在运行时保持我当前的应用程序状态,但得到我想要的效果。

1 个答案:

答案 0 :(得分:0)

您无法删除捆绑包中的文件。捆绑包不可写。

而是使用应用程序文档目录来存储图像。也许您首先要在首次运行时将一些图像从包中复制到文档目录。