Ok, donc j'ai jeté un coup d'oeil parce que j'avais le problème exact. Ce que j'ai fait qui a fonctionné était d'ajouter l'application principale et l'extension à un groupe, Aller au projet principal-> Cible-> Capacités et créer un groupe (si vous n'en avez pas, ou faire un de toute façon) comme ceci:
Ensuite, allez à l'extension en dessous de la cible (E), de nouveau aux capacités et ajouter l'extension au groupe (exactement le même groupe d'applications que vous avez fait pour la cible principale), comme ceci:
Ensuite, une fois que vous avez fait à la fois, dans votre application principale, chaque fois que vous voulez ajouter quelque chose , créez une nouvelle instance de NSUserDefaults, mais pour le nom de Suit égal au nom de groupe que vous avez créé précédemment. Comme ceci:
NSArray *testing = @[@"first",@"Second",@"Third"];
NSUserDefaults *userd = [[NSUserDefaults alloc]initWithSuiteName:@"The gouprname I made earlier"];//This is exactly the same as the groupname
[userd setObject:testing forKey:@"ExtensionArray"];//set the object you want to share
[userd synchronize]; //It's a good idea to sync, just to be on the safe side.
Dans ViewController de votre extension, utilisez le même nom de groupe, mais à lire les paramètres par défaut de l'utilisateur:
NSUserDefaults *sharedD=[[NSUserDefaults alloc]initWithSuiteName:@"Exactly the same groupname that I gave both in the Capabilities and when initialising the userdefault"];
self.testing = [[NSArray alloc]initWithArray:[sharedD arrayForKey:@"ExtensionArray"]];
Et voilà! le tableau est là! J'ai lu quelque part que vous pouvez même ajouter une fonctionnalité de notification lorsque l'objet change, en utilisant une classe Wormhole, mais je ne trouve pas le lien. Je suis sûr que si vous google pour la classe Wormhole, vous le rencontrerez.
J'espère que je pourrais aider, et si vous avez trouvé plus d'informations, s'il vous plaît le partager avec moi.
duplication possible de [Communication et persistance des données entre applications avec App Groups] (http://stackoverflow.com/questions/24015506/communicating-and-persisting-data-between-apps-with-app-groups) –
Non J'ai déjà trouvé ces questions. mes questions est je ne sais pas comment charger des données de NSUserDefault. –
Je faisais référence à [ma réponse à cette question] (http://stackoverflow.com/a/24063144/2446155), que j'ai légèrement modifiée et reproduite ci-dessous. –