Condividere e copiare File tra l’app e iTunes

import files pages ipad

Puoi condividere file tra un applicazione ed il tuo Mac (o pc) usando la condivisione Documenti via iTunes. Usando la condivisione documenti del contenuto della cartella sandbox Documents, il contenuto della cartella sarà disponibile in iTunes. Ovviamente il metodo funziona anche in senso contrario, infatti potremo posizionare documenti dal Mac e ritrovarceli nell’app iOS.

Questa caratteristica funziona bene quando, ad esempio, vogliamo che i dati generati dalla nostra applicazione siano salvati e condivisibile col computer, sincronizzati successivamente con l’iPad, oppure semplicemente abbiamo necessità di poter far effettuare una copia di backup di dati importanti.

UIFileSharingEnabled

Il primo passo consiste nell’aggiungere il flag UIFileSharingEnabled al file plist dell’applicazione. Se modificate il file come XML puoi aggiungere ilil flag in questo modo:

[code lang=”obj-c”]<key>UIFileSharingEnabled</key><true/>

[/code]

Oppure usando l’editor plist ecco cosa scrivere:

plist iTunes File sharing

Scrivere un file nella cartella Documents

Una volta aggiornate le proprietà dei documenti, il prossimo passo è scrivere un documento nella cartella Documents integrata nel sandbox della app, perché come sappiamo, non possiamo scrivere al di fuori del nostro spazio.

Il codice in basso crea un array come un oggetto dizionario e scrive entrambi in un file chiamato DictionaryContents.text.

[code lang=”obj-c”]- (void) writeFileToDocumentDirectory
{
NSArray *grains = [NSArray arrayWithObjects:
@"questo", @"è un", @"NSArray", nil];

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
grains, @"questa", @"struttura", @"è un", @"tipo", @"NSDictionary", nil];

// ricaviamo il percorso della cartella documenti
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
if ([paths count] < 0)
{
// percorso dove verrà salvato il file DictionaryContents.text
NSString *dictPath = [[paths objectAtIndex:0]
stringByAppendingPathComponent:@"DictionaryContents.text"];
// scrive il dizionario
[dictionary writeToFile:dictPath atomically:YES];
}
}[/code]

Richiamate il metodo qui sopra da qualche parte nell’applicazione per scrivere il documento nella cartella Documents.

Condivisione Documenti su iTunes

Per visualizzare un documento da iTunes, collega il tuo dispositivo in iTunes e seleziona il tuo dispositivo nella sezione”Dispositivi” sulla sinistra:

iphone in iTunes

Clicca su “App” per entrare nella sezione applicazioni del dispositivo e scorri in basso fino a vedere una lista delle applicazioni che possono trasferire documenti tra il computer ed il dispositivo.

itunes sharing app

Troveremo l’app Sandbox (oppure il nome che abbiamo dato al nostro progetto) ed il file DictionaryContents.text. Salvando il file sul proprio sistema ecco come appare apprendolo con un editor di testo:

[code lang=”xml”]<!–?xml version="1.0" encoding="UTF-8"?–>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>arrayKey</key>
<array>
<string>questo</string>
<string>è un</string>
<string>NSArray</string>
</array>
<key>questa</key>
<string>struttura</string>
<key>è un</key>
<string>tipo NSDictionary</string>
</dict>
</plist>
[/code]

Copiare documenti verso l’app

Puoi anche copiare documenti dal tuo sistema verso la cartella Documents del dispositivo rendendo i file accessibili all’applicazione.

Conclusioni

-Se hai bisogno di tenere delle informazioni dell’applicazione private non salvare i file nella cartella documenti, ma scegline un altra, tenendo in considerazione con cartelle esterne non verranno salvate dal backup automatico di iTunes.

-Con Condivisione Documenti di iTunes non puoi condividere direttamente documenti tra applicazioni.