2017-02-17 4 views
0

J'ai sérialisé mon NSMutableArray de données JSON dans NSData pour le transférer par updateApplication. Tout est passé comme prévu et dans la WatchKit didReceiveApplicationContext - Méthode aussi appelé seNSData to NSArray

NSData *serialized = [NSKeyedArchiver archivedDataWithRootObject:array]; 
[[NSUserDefaults standardUserDefaults] setObject:serialized forKey:@"myKey"]; 

NSDictionary *applicationData = [[NSDictionary alloc] initWithObjects:@[serialized] forKeys:@[@"JSONData"]]; 
NSError *error = nil; 
//Send Message to the iPhone (handle over the goal value) 
if ([WCSession defaultSession]) { 
    [[WCSession defaultSession] updateApplicationContext:applicationData error:&error]; 

Mais comment puis-je transférer de nouveau à un NSArray ou NSMutableArray? J'ai essayé

NSArray *responseArray = [NSJSONSerialization JSONObjectWithData:applicationContext options:0 error:&jsonParsingError]; 

Mais je reçois une erreur SIGABRT ....

Mise à jour

NSMutableArray *keys = [s allKeys]; 
NSMutableArray *values = [s allValues]; 

Donne-moi: enter image description here

+1

'applicationData' est 'NSDictionary' et non' NSData'. Vous devez obtenir l'objet 'NSData' pour la clé' JSONData'. – vadian

+0

Puisque vous stockez 'jsondata' dans le 'NSDictionary', il semble que vous devrez analyser deux fois – KrishnaCA

+0

vadian vous avez absolument raison –

Répondre

0
NSData*counterValue = [applicationContext objectForKey:@"JSONData"]; 
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:counterValue]; 

est-elle apparue