2013-07-11 4 views
0

Я пытаюсь сохранить изображение на диск при каждом нажатии кнопки сохранения. Это код, я использую:Предотвращение перезаписывания при вызове writeToFile:

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

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

[pdfData writeToFile:documentDirectoryFilename atomically:YES]; 

Теперь, очевидно, что файл будет сохранен перезапишет ранее сохраненный файл каждый раз, когда этот метод называется. Я пытаюсь найти способ хранить все сделанные там фотографии, а не переписывать их каждый раз. Кто-нибудь знает, есть ли простое решение для достижения этого? Я просмотрел документы, но не нашел ничего подходящего.

+3

При каждом сохранении файла необходимо использовать другое имя файла. – rmaddy

ответ

2

Используйте NSUUID или CFUUIDCreate, чтобы создать уникальное имя, которое вы можете использовать для файла.

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]; 
} 
Смежные вопросы