I have tried different ways available but could not get a proper solution. I have a singleton array to which arrays of key-value pairs are being saved in my HomeVC. This array is being saved in NSUserDefaults and retrieved in another Class RewardsVC. But once the app is killed and relaunched , all the data in singleton array gets erased. Any help on this? Here is the code:
if ([json objectForKey:JSON_KEY_REWARDS])
{
if([[json objectForKey:JSON_KEY_REWARDS] objectForKey:JSON_KEY_REWARD_ARRAY]){
NSMutableArray *newRewardArray=[[json objectForKey:JSON_KEY_REWARDS] objectForKey:JSON_KEY_REWARD_ARRAY];
if([newRewardArray count] > 0){
shouldUpdate = TRUE;
}
for (NSMutableDictionary *reward in newRewardArray)
{
NSMutableDictionary *mutableReward = reward ;
[[Utility getSharedInstance].rewardsFuckingArray addObject:mutableReward];
}
}
[[NSUserDefaults standardUserDefaults] setObject:[Utility getSharedInstance].rewardsFuckingArray forKey:@"yourKey"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Utility is my Singleton class and I did @property (strong, nonatomic) NSMutableArray *rewardsFuckingArray;
+(Utility*) getSharedInstance;
in Utility.h.
In Utility.m:
+(Utility*) getSharedInstance
{
static Utility* _shared = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_shared = [[self alloc] init];
});
return _shared;
}
- (id)init {
if (self = [super init]) {
self.rewardsFuckingArray = [[NSMutableArray alloc] init];
}
return self;
}
I RewardsVC.m, I did this:
rewardsArray = [[[NSUserDefaults standardUserDefaults] arrayForKey:@"yourKey"] mutableCopy];