2012-06-08 59 views
0

設置首選項值今天我的代碼打,從存儲的偏好

我整個一類特殊運行這個特定的代碼幾次小的變化,我想雖然精簡。效果的差異很小,但是通過數百或數千行的代碼量來改變代碼量,這對我來說是一個巨大的勝利。

本質上我有一個值作爲一個整數與'codeKey'的鍵存儲,我想插入該值的數字30061當前所在的位置。我有點不知所措,有人能幫我解決這個問題嗎?

我知道我需要以某種方式回想起它的價值,並將其置於其中,但我不太確定它的外觀。

if ([[NSUserDefaults standardUserDefaults] integerForKey:@"buttonID"] == 1) { 
     NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
     [userDefaults setInteger:30061 forKey:@"scifi1"]; 
     [userDefaults synchronize];} 

回答

1

我認爲你的意思是動態保存這些信息而不用重複相同的代碼。如果這是正確的,你的解決方案將是這樣的:

-(void)saveCodeKey:(int)key { 

    if ([[NSUserDefaults standardUserDefaults] integerForKey:@"buttonID"] == 1) { 

     NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
     [userDefaults setInteger:key forKey:@"scifi1"]; 
     [userDefaults synchronize]; 

    } 
} 

現在,你可以簡單地調用[self saveCodeKey:12345];假設-saveCodeKey:方法駐留在同一個班級。

希望這會有所幫助!

+0

我認爲它可能...我需要先嚐試它。我假設在這個例子中'key'將是我從上面例子中存儲的30061的值,例如, 'code' NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setInteger:30061 forKey:@「key」]; [userDefaults synchronize];'code' – David26th

+0

我在印象之下,整數值是需要改變的,而不是關鍵本身。如果是這種情況,你的參數需要是一個字符串,而不是一個整數 – skram

+0

本質上,我將存儲一個值在其他地方以整數形式(由於各種原因),需要被調用並定位在你有代碼的地方[userDefaults setInteger:HERE forKey:「@scifi1'];'code'本質上是從一個關鍵字設置一個關鍵字,如果這是有意義的。 – David26th