0

I have NSMutableArray and I am trying to save that array in NSUserDefaults.Here is my code :

to save :

NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];
[currentDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:userSession.transactionArray] forKey:@"TransId"];
[currentDefaults synchronize];

to retrieve :

NSUserDefaults *currentDefault = [NSUserDefaults standardUserDefaults];
NSData *dataRepresentingSavedArray = [currentDefault objectForKey:@"TransId"];
NSMutableArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingSavedArray];
userSession.transactionArray = [NSArray arrayWithArray:oldSavedArray];

But, I am getting my array in log,

"<NSIndexPath: 0x160f8640> {length = 2, path = 0 - 0}",
"<NSIndexPath: 0x1602bd70> {length = 2, path = 0 - 1}",
"<NSIndexPath: 0x16026900> {length = 2, path = 0 - 2}",
"<NSIndexPath: 0x14f01dd0> {length = 2, path = 0 - 3}"

How to get actual data from this.Can anybody help me to get this value properly? Thanks in advance.

user3182143
  • 9,459
  • 3
  • 32
  • 39
Learner
  • 19
  • 3

2 Answers2

0
 NSArray *aviArray=[[NSArray alloc] initWithObjects:@"A",@"B",@"C", nil];
[[NSUserDefaults standardUserDefaults] setObject:aviArray forKey:@"Arraykey"];
[[NSUserDefaults standardUserDefaults] synchronize];

 NSLog(@"%@",[[[NSUserDefaults standardUserDefaults] objectForKey:@"Arraykey"] objectAtIndex:0]); 

 NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"Arraykey"]);
Avijit Nagare
  • 8,482
  • 7
  • 39
  • 68
0

This is similar to: NSKeyedArchiver archivedDataWithRootObject:

You're missing the implementations of initWithCoder: and encodeWithCoder:. One of the answers describes how to write those.

Community
  • 1
  • 1
Thorory
  • 1
  • 2