0

每次按下保存按钮时,我都会尝试将图像保存到磁盘。这是我正在使用的代码:

NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:@"piclogs"];

[pdfData writeToFile:documentDirectoryFilename atomically:YES];

现在,显然每次调用此方法时,要保存的文件都会覆盖以前保存的文件。我正在尝试找到一种方法来存储在那里拍摄的每张照片,而不是每次都将其覆盖。有谁知道是否有一个简单的解决方案来实现这一目标?我浏览了文档,但找不到任何相关内容。

4

2 回答 2

2

使用NSUUIDCFUUIDCreate创建可用于文件的唯一名称。

于 2013-07-11T17:00:41.223 回答
1

或者您可以检查具有该名称的文件是否存在以及它是否不写入文件。然后根据需要更改名称,以便您确实拥有一份您可能尝试保存或未尝试保存的内容的副本。

NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);

NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:@"piclogs"];
if (![NSURL fileURLWithPath:[self documentsPathForFileName:documentDirectoryFilename]]) {
    [pdfData writeToFile:documentDirectoryFilename atomically:YES];
} else {
    NSString* altName = [NSString stringWithFormat:@"%@-%d", documentDirectoryFilename, intValue];
    [pdfData writeToFile:altName atomically:YES];
}
于 2013-11-04T20:09:04.897 回答