Ok, quindi ho dato un'occhiata in giro perché ho avuto il problema esatto. Quello che ho fatto è stato quello di aggiungere l'app principale e l'estensione a un gruppo, Vai a progetto principale-> Destinazione-> Funzionalità e creare un gruppo (se non ne hai uno, o costruiscilo comunque) in questo modo:
Poi, vai alla estensione di sotto del target (e), di nuovo per funzionalità e aggiungere l'estensione al gruppo (esattamente lo stesso gruppo di app come avete fatto per il target principale), in questo modo:
Poi, una volta che avete fatto entrambi, nella vostra applicazione principale, ogni volta che si desidera aggiungere qualcosa , crea una nuova istanza di NSUserDefaults, ma per Nome Suit uguale al nome del gruppo che hai creato in precedenza. Come questo:
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.
In ViewController del proprio interno, utilizzare lo stesso nome del gruppo, ma per leggere i valori di default utente:
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"]];
e voilà! la matrice è lì! Ho letto da qualche parte che puoi persino aggiungere funzionalità di notifica per quando l'oggetto cambia, usando una classe Wormhole, ma non riesco a trovare il link ad esso. Sono sicuro che se vai su Google per la classe Wormhole, lo troverai.
Spero di poterti aiutare, e se hai trovato ulteriori informazioni, per favore condividi con me.
possibile duplicazione di [Comunicazione e dati persistenti tra app con gruppi di app] (http://stackoverflow.com/questions/24015506/communicating-and-persisting-data-between-apps-with-app-groups) –
No Ho già trovato queste domande le mie domande è che non so come caricare i dati da NSUserDefault. –
Mi riferivo a [la mia risposta a questa domanda] (http://stackoverflow.com/a/24063144/2446155), che ho leggermente modificato e replicato di seguito. –