我创建了一个应用程序,我将从服务器下载图像并将其本地存储在iPhone的文件系统中。它发生得很好。现在问题是,我想在我退出应用程序时清除iPhone上的本地缓存图像。
如何在iPhone上删除这些缓存的图像。它在iPhone上使用辅助内存,我如何以编程方式访问它?
提前谢谢你。 粟色。
答案 0 :(得分:4)
我的回答是按照Kirky Todds的说法,但不要使用applicationWillTerminate
- 这对于iOS4 +多任务处理来说不是一个好策略,因为这种方法通常不会被调用 - 应用程序将是后台,如果运行其他应用程序(或手机已关闭/重新启动),则可以从内存中转储,而不会调用applicationWillTerminate
。 (或者它将再次被预先考虑。无论哪种方式,你的缓存都不会被清除。)
相反,请考虑在启动时清算(applicationDidFinishLaunching
)或在applicationWillEnterForeground
清算。后者往往会更频繁地被调用,因为前者仅在实际适当的应用程序上被调用(而不是在简历中被反对)。
有关背景和生成事件的详细信息,请参阅:
http://www.cocoanetics.com/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/
答案 1 :(得分:3)
在applicationWillTerminate方法中清理它们。
- (void)applicationWillTerminate:(UIApplication *)application
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *imagesFiles = [fileManager contentsOfDirectoryAtPath:saveDirectory error:error];
for (NSString *file in imagesFiles) {
error = nil;
[fileManager removeItemAtPath:[saveDirectory stringByAppendingPathComponent:file] error:error];
/* do error handling here */
}
}