1

在我的应用中,用户可以上传和下载 700*700mb 的图片。这些图像被下载并显示在几个 UIImageViews 中。我的应用程序本身很小,但 Documents & Data 文件夹很大,例如 17gb,而且它一直呈指数增长。我的应用程序可以在 ipad 和 iPhone 上运行。我的 ipad 中的 docs & data 文件夹是 6mb,在我的 ipod 上是 17gb。我下载了app包,发现tmp文件夹很大。有一些堆栈日志文件 1gb 大。我发现问题与 NSTemporary 目录有关。

我以这种方式保存图像:

NSString *title = [[NSUserDefaults standardUserDefaults]objectForKey:@"Folder3"];
PhotoiPhoneViewController* sharedSingleton = [PhotoiPhoneViewController sharedManager];

NSString *destDir = [[NSUserDefaults standardUserDefaults]objectForKey:@"Folder2"];
NSString *filename3 = [NSString stringWithFormat:@"%@%@sizefile.pages.%@", destDir, title, sharedSingleton.tagString];

NSString *SizePath = [NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@sizefile.pages.%@", title, sharedSingleton.tagString]];

[self.restClient loadFile:filename3 intoPath:SizePath];

这是正确的方法吗,还是我应该使用:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *documentsDirectory = [paths objectAtIndex:0];
 NSString *CommentPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@commentfile.txt.%ld", title, (long)sharedSingleton.tagNumber]]

由于我希望文件在使用后被删除,我认为 NStemporaryDirectory 会在文件被使用后立即被删除。我该怎么办??

4

1 回答 1

0

您可以考虑使用NSURLCache来管理清除。另见NSHipster/NSURLCache

或者你可以使用像SDWebImage这样的库来处理缓存大小

编辑:回答您的问题
操作系统过去常常将文件留在临时目录中,但是,从 iOS 5.0 开始,如果需要,它将从该目录中清除文件。有关更多信息,请参阅此链接

于 2013-02-24T11:57:56.923 回答