user1120133
user1120133

Reputation: 3234

Saving NSNumber in NSUserDefaults

Using currentIndex as NSNumber and saving NSNumber in NSUserDefaults.

Using currentIndex to store bookmarked page in NSUserDefaults

And this is how I am saving currentIndex in NSUserdefaults:

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 [defaults setInteger:currentIndex forKey:@"currentIndex"];
 [defaults synchronize];

If this is the right way of saving currentIndex in NSUserdefaults then how can i retrieve saved currentIndex in NSUserdefaults.

Thanks for help.

Upvotes: 6

Views: 4171

Answers (3)

Gabriel Goncalves
Gabriel Goncalves

Reputation: 5160

The title says that you want to store a NSNumber, you should do that in this way:

obj-c

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:nsnumberObject forKey:@"nsNumberStored"];

swift

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(nsnumberObject, forKey:"nsNumberStored")

And then to fetch the NSNumber do this:

obj-c

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *nsNumberFetched = [defaults objectForKey:@"nsNumberStored"];

swift

let defaults = NSUserDefaults.standardUserDefaults()
defaults.objectForKey("nsNumberStored")

You can read the official documentation here Class reference

Let me know if it helps you.

Upvotes: 8

WolfLink
WolfLink

Reputation: 3317

First of all, setInteger: forKey: is used to store an int, not a NSNumber. If you want to store a NSNumber, user setObject: forKey:.

In order to retrieve your stored data, use objectForKey: (or integerForKey: instead if you would rather use int's).

Upvotes: 5

Rich
Rich

Reputation: 8202

You need to do the 'opposite' to get it back out

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 NSInteger currentIndex = [defaults integerForKey:@"currentIndex"];

Upvotes: 0

Related Questions