使用NSTemporaryDirectory而不增加tmp文件夹大小

时间:2013-02-24 11:49:47

标签: ios xcode

在我的应用中,用户可以上传和下载700 * 700mb图像。这些图像下载并显示在一些UIImageViews中。 我的应用程序本身很小,但文档&数据文件夹很大,例如17gb并且它呈指数增长。我的应用程序可在ipad和iPhone上运行。文件&我的ipad中的数据文件夹是6mb,在我的ipod上是17gb。我已经下载了应用程序包,发现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。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以考虑使用NSURLCache来管理清除工作。 另请参阅NSHipster/NSURLCache

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

编辑:回答你的问题 然而,操作系统用于将文件保留在临时目录中,因为iOS 5.0如果看到需要,它将从该目录中清除文件。有关详细信息,请参阅this link