Ios NSData到NSArray

Ios NSData到NSArray,ios,objective-c,watchkit,apple-watch,Ios,Objective C,Watchkit,Apple Watch,我已将JSON数据的NSMutableArray序列化为NSData,以便在每个更新应用程序中传输它。一切按预期进行,WatchKit中的didReceiveApplicationContext方法也被调用 NSData *serialized = [NSKeyedArchiver archivedDataWithRootObject:array]; [[NSUserDefaults standardUserDefaults] setObject:serialized forKey:@"myKe

我已将JSON数据的
NSMutableArray
序列化为
NSData
,以便在每个更新应用程序中传输它。一切按预期进行,WatchKit中的didReceiveApplicationContext方法也被调用

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];
但如何将其传输回NSArray或NSMutableArray?我试过了

NSArray *responseArray = [NSJSONSerialization JSONObjectWithData:applicationContext options:0 error:&jsonParsingError];
但我有一个Sigabrt错误

更新

NSMutableArray *keys = [s allKeys];
NSMutableArray *values = [s allValues];
给我:


它是不是

applicationData
NSDictionary
不是
NSData
。您需要获取键
JSONData
NSData
对象。由于您将
JSONData
存储在
NSDictionary
中,看起来您必须解析两个对象,因为您完全正确
NSData*counterValue = [applicationContext objectForKey:@"JSONData"];
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:counterValue];