Posso scaricare e salvare un file binario nella cartella 'Documenti' con un nome personalizzato perfettamente adatto.iOS: impossibile salvare il file nella cartella 'Application Support', ma può su 'Documents'
Se ho appena modificato l'URL nella cartella "Supporto applicazione" anziché nella cartella "Documenti", non riesce a scrivere su quell'URL dicendo che non esiste.
Ecco il codice di costruzione URL:
- (NSURL *) getSaveFolder
{
NSURL * appSupportDir = nil;
NSURL * appDirectory = nil;
NSArray * possibleURLs = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSAllDomainsMask];
if ([possibleURLs count] >= 1)
{
appSupportDir = [possibleURLs objectAtIndex:0];
}
if (appSupportDir != nil)
{
NSString * appBundleID = [[NSBundle mainBundle] bundleIdentifier];
appDirectory = [appSupportDir URLByAppendingPathComponent:appBundleID];
}
return appSupportDir;
}
Ecco il codice risparmio:
- (void) writeOutDataToFile:(NSData *)data
{
NSURL * finalURL = [self.rootPathURL URLByAppendingPathComponent:self.aFileName];
[data writeToURL:finalURL atomically:YES];
}
Se cambio la NSArray a:
NSArray * possibleURLs = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
allora salva bene .
Ho letto i documenti Apple su file e non riesco a risolvere il problema - cosa mi manca?
Perché si aggiunge l'ID del gruppo alla fine del percorso? La directory è già unica per la tua app. L'aggiunta dell'id bundle è ridondante. – rmaddy
Poiché tale codice viene copiato DIRETTAMENTE dalla Guida alla programmazione del file system Apple (Listato 2-1) come modo corretto di creare un URL per un elemento nella directory di supporto dell'app. – iOSProgrammingIsFun
Questo codice non ha senso per iOS. Comunque va bene per OS X. In iOS, la directory 'Application Support' è già presente nella sandbox della tua app. In OS X, non lo è. – rmaddy