2014-09-23 1 views
12

J'ai réussi à partager des données entre mon application et son extension Aujourd'hui via userDefaults, mais j'ai des problèmes avec les fichiers présents dans le dossier Documents de l'application.Accéder à l'application Dossier de documents depuis aujourd'hui Extension

Lorsque j'utilise ce code dans mon application:

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

il retourne:

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

mais dans l'extension, il retourne:

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

et évidemment, les fichiers sont pas ici.

Je lis quelque part que je devrais utiliser:

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

mais il retourne:

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

qui ne fonctionnait pas non plus.

Comment puis-je obtenir l'extension iOS 8 Today pour lire les fichiers de son application conteneur situés dans Documents?

Merci!

Répondre

14

Vous ne pouvez pas accéder au dossier de documents de l'application contenant à partir de l'extension.

Mais vous pouvez créer un conteneur partagé auquel l'application contenant et toute son extension peuvent accéder.

Vous êtes sur la bonne voie en utilisant containingURLForSecurityApplicationGroupIdentifier. Vous devez juste utiliser cela dans l'application et l'extension. Il n'accède pas au dossier des documents, mais à un autre conteneur.

Si vous mettez à jour une application existante qui a été le stockage des données dans le dossier de documents, vous devez déplacer les données vers le s8-aujourd'hui extension

Vérifiez ce lien. http://www.glimsoft.com/06/28/ios-8-today-extension-tutorial/

+0

puis-je accéder au fichier .json. Avec ce conteneur safariContentBlocker ??? – JAck

+2

Le lien n'a rien à voir avec l'utilisation d'un conteneur partagé sur le disque. Il utilise NSUserDefaults. – funroll

Questions connexes