2011-08-08 22 views
0

我需要存儲在NSUserDefault數字參數,這個參數必須爲默認1 所以我寫這樣的代碼:NSUserDefaults和registerDefault,一個標準的行爲?

NSNumber *one = [NSNumber numberWithInt:100];  
NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; 

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: 
         one,@"my-param", 
         nil]; 

[def registerDefaults:dict]; 

此參數具有優於IB複選框綁定,所以我可以確認這是正確的設置,當我開始我的應用程序,我看到狀態「開」的複選框。

在另一邊,我必須檢查這個值編程所以...我這樣做:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSInteger my_param = [defaults integerForKey:@"my-param"]; 

我除外,由於價值不是由用戶設置,我設置爲這個函數返回值默認情況下(在我的情況下「1」),但與我的驚喜,我發現,如果價值從未由用戶設置它返回0 ...因爲你可以理解這是可怕的:P因爲現在我不明白,如果這個「0」是由用戶選擇這是一個非設定值的後果...我如何編寫代碼來管理這種情況?

回答

2

要存儲的數值在NSUserDefaults的你可以簡單地直接使用方法如下:

設置在NSUserDefault整數值使用,如下所示:

NSInteger lInteger = 10; 

[[NSUserDefaults standardUserDefaults] setInteger:lInteger forKey:@"integerkey"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

並使用該NSInteger的價值在您的項目中的任何地方使用如下:

NSInteger linteger = [[NSUserDefaults standardUserDefaults] integerForKey:@「integerkey」];

而我完全不明白你的問題,但無論如何,我認爲這上面的代碼可能會幫助你。

+0

如果上面的代碼幫助你,請給我投票 – sumanthkodi