我有一个将图片上传/查看到数据库的应用。用户可以编辑图像并重新上传。我正在解决服务器上的文件实际更改的问题,但即使应用程序正在调用下载文件的新副本,图像仍然显示旧版本,即使退出应用程序并重新加载。用户必须完全卸载应用程序并重新安装以查看新图像。
我现在使用此函数来清除应用程序缓存和所有内容,以便可以从数据库中重新加载。
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运行时期间显示新图像。我必须退出并清理应用程序。
有没有办法重置缓存并干净地重新加载应用程序,所以我在运行时保持我当前的应用程序状态,但得到我想要的效果。
答案 0 :(得分:0)
您无法删除捆绑包中的文件。捆绑包不可写。
而是使用应用程序文档目录来存储图像。也许您首先要在首次运行时将一些图像从包中复制到文档目录。