2014-04-12 62 views
3

將currentIndex用作NSNumber並在NSUserDefaults中保存NSNumber。在NSUserDefaults中保存NSNumber

使用CURRENTINDEX到書籤的網頁存儲在NSUserDefaults的

這就是我如何在NSUserDefaults的節能CURRENTINDEX:

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

如果這是NSUserDefaults的節約CURRENTINDEX那我該怎麼找回正道在NSUserdefaults中保存currentIndex。

感謝您的幫助。

回答

0

你需要做的「相反」把它找回來了

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

首先,setInteger: forKey:被用來存儲int,而不是一個NSNumber。如果你想存儲一個NSNumber,用戶setObject: forKey:

爲了檢索您存儲的數據,請使用objectForKey:(或者如果您寧願使用int,則使用integerForKey:)。

+2

只是澄清,setInteger:forKey:是一種便利的方法,它會把你帶到你的NSInteger並將它轉換成一個NSNumber。同樣的integerForKey:是一個轉換你存儲的NSNumber到一個NSInteger。 –

3

標題說,你要存儲一個的NSNumber,你應該做的是這樣:

OBJ-C

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

迅速

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

然後的NSNumber的做到這一點:

OBJ-C

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

迅速

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

你可以閱讀官方文檔這裏Class reference

讓我知道,如果有幫助您。

+0

是否幫助你@ user1120133? – Gabox