2014-09-23 22 views
12

Ho condiviso correttamente i dati tra la mia app e la sua estensione di oggi tramite userDefaults, ma sto riscontrando problemi quando si tratta di file reali situati nella cartella Documenti dell'app.Accesso alla cartella Documenti dell'app da Today Extension

Quando uso questo codice nella mia app:

var documentsDir:NSString = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String 

restituisce:

/var/mobile/Containers/Data/Application/296494AA-946C-40E0-8646-F0895E131DCB/Documents/ 

ma nell'estensione restituisce:

/var/mobile/Containers/Data/PluginKitPlugin/AB484342-537A-4CE7-9EF3-F2CAE352C8A3/Documents/ 

e, ovviamente, i file sono non là.

ho letto da qualche parte che dovrei usare:

let containerURL = manager.containerURLForSecurityApplicationGroupIdentifier("group.com.company.app") 
let filePath = containerURL.path 

ma restituisce:

/private/var/mobile/Containers/Shared/AppGroup/CD7CF610-EB5F-4246-8D30-D7F8BFA6A219 

che non ha funzionato neanche.

Come posso ottenere il mio iOS 8 Today Extension per leggere i file dell'app contenitore situati in Documenti?

Grazie!

risposta

14

Non è possibile accedere dall'interno della cartella dei documenti dell'app contenente.

Ma è possibile creare un contenitore condiviso a cui è possibile accedere tramite l'app e tutta la sua estensione.

Sei sulla strada giusta utilizzando containingURLForSecurityApplicationGroupIdentifier. Devi solo usarlo sia nell'app che nell'estensione. Non accede alla cartella dei documenti, ma a un altro contenitore.

Se si sta aggiornando un'applicazione esistente che è stato memorizzazione dei dati nella cartella documenti, è necessario spostare i dati al S8-oggi-estensione

controlla questo link. http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/

+0

posso accedere al file .json. Con questo contenitore safariContentBlocker ??? – JAck

+2

Il collegamento non ha nulla sull'utilizzo di un contenitore condiviso su disco. Usa NSUserDefaults. – funroll

Problemi correlati