Consideriamo i seguenti due esempi di codice:Perché utilizzare un NSFileManager anziché utilizzare semplicemente il metodo writeToFile di NSData: atomically: metodo durante la creazione di un nuovo file?
NSData *imgData = UIImagePNGRepresentation(imgFull);
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"itemImg_%i.png", timestamp]]; //add our image to the path
[imgData writeToFile:fullPath atomically:YES];
e
NSData *imgData = UIImagePNGRepresentation(imgFull);
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"itemImg_%i.png", timestamp]]; //add our image to the path
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createFileAtPath:fullPath contents:imgData attributes:nil];
Il secondo esempio richiede una linea aggiuntiva di codice e l'inizializzazione di un oggetto NSFileManager, mentre il primo esempio è semplicemente l'oggetto NSData imgData
si scrive su un file. Un ulteriore vantaggio del primo esempio è che può sovrascrivere un file preesistente con lo stesso nome.
La mia domanda è: quando si creano nuovi file, in quali circostanze si vorrebbe effettivamente utilizzare NSFileManager e il suo metodo createFileAtPath:contents:attributes:
?
Il writeToFile di NSData non sovrascrive come impostazione predefinita, in base alla mia esperienza. E nemmeno NSFileManager crea createFileAtPath con attributi: nil.Informazioni sugli attributi Il metodo NSDictionary è imminente, suggerendo che non è spesso usato. –