gpt4 book ai didi

iphone - 保存/重新加载图像,以及删除旧图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:05:07 26 4
gpt4 key购买 nike

我正在从 Web 服务器加载图像文件,然后将其保存到 nsuserdefaults。保存代码大致是:

NSData *imageData = UIImagePNGRepresentation(theImage); // theImage is a UIImage
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:imageData forKey:string]; // string is a 3-dig number which identifies image

现在,显然我已经站错了脚,因为不建议将图像用于 nsuserdefaults..

但我想做的是将这些图像保存在某个地方,这样就可以访问它们而无需重新下载它们。另外,我想删除旧图像(比如说一天前的图像,或者只保留最后 10 张下载的图像)?有好的技术吗?

最佳答案

根据您的目的,有许多地方可以保存下载的图像:

  • 如果你想保存文件直到你删除它,写入文档目录:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
  • 如果你想存储文件直到你删除它并且你可能会使用iTunes file sharing并且不想共享这些特定文件,写入应用程序支持目录:[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0]
  • 如果你想让系统在设备空间不足时删除它(并且不关心它是否在设备备份时保存),请使用缓存目录:[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0]
  • 如果您只是在处理它时临时保存并立即删除它,请使用临时目录:NSTemporaryDirectory()

如果您想要任何保留规则,例如“只保留 10 个”或“一天后删除”,您必须自己在代码中实现。您可以依赖文件修改日期(来自 NSFileManager 的 attributesOfItemAtPath:error: ),或者在 NSUserDefaults 或 Core Data 中保留文件名到最新的映射,或者只是命名文件以包含日期。

关于iphone - 保存/重新加载图像,以及删除旧图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045590/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com