Nisha Singh Nisha Singh - 4 months ago 18
Objective-C Question

How to save integer value to NSuserDefault like sqlite?

I want to save and retrieve value in NSUserDefault. I am saving and retrieving Value sucessfully. But when I go cak Homepage and again come in my class The value is not stored and all the process done again. It doesnot Remember old value.

I am doing this-

-(void)ViewDidLoad{
A = 0; // int A; defone in .h
[self calling_Once];
}

-(void)calling_Once{
NSLog(@"A is: %d",A); // A is always zero when I leave this class and return Back to this class. This is my only problem. I want A=1; when I go back And return to this class but
NSInteger B = [[NSUserDefaults standardUserDefaults] integerForKey:@"save_Interger_Value_For_Formula_One"]; //is not able to remeber value. It gives A=0; B =0; When I come back to this class, I want It should return A=1; B=1; and remember old value like sqlite when I return to this class.

if (A==0) {
[self refreshButton];
NSLog(@"Before Increment A is: %d",A);
A++;

NSLog(@"After Increment A is: %d",A);

[[NSUserDefaults standardUserDefaults] setInteger:A forKey:@"save_Interger_Value_For_Formula_One"];
}

NSInteger B = [[NSUserDefaults standardUserDefaults] integerForKey:@"save_Interger_Value_For_Formula_One"];
B = A;

NSLog(@" B is: %d",B);
B = A;
NSLog(@" A is: %d",A);
}


Any Idea or suggestions would be highly welcome.

Answer

Try to implement like this..Sure it'll help...

@implementation ClassA

- (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        [[NSUserDefaults standardUserDefaults]setInteger:100 forKey:@"save_Interger_Value_For_Formula_One"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

@end

@implementation ClassB

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
       int B = [[[NSUserDefaults standardUserDefaults]        integerForKey:@"save_Interger_Value_For_Formula_One"] integerValue];

     NSLog(@"Interger Value %d",b);
}
Comments