NSDocumentDirectory如何工作?

时间:2012-03-30 12:13:15

标签: iphone objective-c ios xcode nsdocumentdirectory

我每次使用NSDocumentDirectory保存图像时,用户可以点击下面的按钮在我的应用程序中保存不同的不同编辑图像

-(void)saveImg{
    NSData *pngData = UIImagePNGRepresentation(signatureImage);
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
        NSString *documentsPath = [paths objectAtIndex:0]; 
        NSString *filePath = [documentsPath stringByAppendingPathComponent:@"myPhoto.png"]; 
        [pngData writeToFile:filePath atomically:YES]; 
}

我将我的图像放在另一个类

-(void)getMyImg{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsPath = [paths objectAtIndex:0]; 
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"myPhoto.png"]; 
    NSData *pngData = [NSData dataWithContentsOfFile:filePath];
    UIImage *myImage = [UIImage imageWithData:pngData];
    imgView.image = myImage;
}

我的问题是使用应用程序文档目录会导致任何内存问题吗?比如说如果我点击我的 saveImg 方法超过100次,那么我的应用程序DocumentDirectory或每次通话中都有100个图像集之前保存的图像被新图像替换(因为我的名字与 myPhoto.png 相同),documentsDirectory的工作原理是什么?

提前感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

内存泄漏:Answer is NO. There is no memory leak as all objects will be autoreleased.

图片将被替换为Answer is YES. Image will be replaced.

希望这有帮助。

答案 1 :(得分:1)

默认行为是在文件有权限时覆盖该文件(在文档目录中也是如此)。