清除文件但内存未减少

时间:2018-02-06 09:17:27

标签: ios objective-c memory memory-management

我正在创建一个应用程序。我将文件存储在Document目录中。完成工作后,从文档目录中删除文件,如下所示:

    NSMutableDictionary * Dictionary = [NSMutableDictionary alloc]init]; 
    // Next every file storing into this dictionary like below 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *baseDir = [paths objectAtIndex:0]; 
    NSString *pathComp = [baseDir stringByAppendingPathComponent:[NSString stringWithFormat:@"IMG%d.PNG",presentCount]; 
    fileURL = [NSURL fileURLWithPath:pathComp]; 
    [Dictionary setObject:fileURL forKey:fileURL]; 

    while ([[Dictionary allKeys]count]!=0) {
        NSURL *deleteFileURL = [[Dictionary allKeys] lastObject];
        NSLog(@"Path %@",deleteFileURL.path);
        [[NSFileManager defaultManager] removeItemAtPath:deleteFileURL.path error:nil];
        [Dictionary removeObjectForKey:deleteFileURL];
    }

这里我的问题是,在从文档目录中删除文件后,内存不会减少,但它仍然像文件一样占用。由于这个问题,我崩溃了。所以请帮助我如何清理记忆。

实际上我从服务器获取文件(照片)并首先放入文档目录,并尝试使用照片库保存。一旦我将字典输入到照片库,完成处理程序后,我试图删除file.Its已删除并保存照片,但内存未减少。

1 个答案:

答案 0 :(得分:0)

1,检查路径上是否存在文件后删除文件,并检查removeItemAtPath:的返回值,以确定删除是否成功。

NSString *path = @"a/b";
    if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {
       BOOL success = [[NSFileManager defaultManager] removeItemAtPath:path error:nil];
       // Check the success's value
    }