2013-05-19 34 views
0

我試圖保存/載入一些數據我的遊戲更新的UILabel(在這種情況下,提示的#玩家有提供給他們)。如果他們第一次玩遊戲,他們會得到10個提示,否則,它會加載他們上次退出遊戲前的提示數量。我的問題是,在開始遊戲的第一次時,我提示的數量設置爲10,但在的UILabel顯示0NSUserDefaults的從

這些這裏有我保存和加載方法:

- (void)saveSettings 
{ 
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; 
    [settings setInteger:self.tipCount forKey:@"tipCount"]; 
} 

- (void)loadSettings 
{ 
    NSUserDefaults *settings = [NSUserDefaults standardUserDefaults]; 
    if (![settings boolForKey:@"userDefaultsSet"]) 
    { 
     [settings setBool:1 forKey:@"userDefaultsSet"]; 
     [settings setInteger:10 forKey:@"tipCount"]; 
     self.tipCount = 10; 
    } else { 
     self.tipCount = [settings integerForKey:@"tipCount"]; 
    }  
} 

而且這這裏是我如何更新我的標籤:

- (void)updateLabel 
{ 
    Quiz* sharedQuiz = [Quiz sharedInstance]; 

    self.statusLabel.text = [NSString stringWithFormat:@"Tips Remaining: %d", [sharedQuiz tipCount]]; 
} 

任何幫助,可以點我在正確的方向表示讚賞。提前致謝!

+0

設置,'後 - synchronize'或等待一分鐘。持久性不會立即發生。 – 2013-05-19 06:21:04

+0

從哪裏獲取NSUserDefaults的數據? – Balu

+0

http://stackoverflow.com/questions/15833907/adding-to-a-previously-saved-nsuserdefaults-in-xcode/15834362#15834362 – Balu

回答

0

在這裏,我想一些東西添加到作爲預防措施,你的問題,它可能是這樣,你已經被採取了照顧,但我仍然想說,你見下文。

確定你是否調用loadSetting方法調用任何其他方法,通過它,你希望顯示一些information.look您沒有設置任何值(saveSettings方法和updateLabel法)之前,建議從單一的方法除了COUNT(loadSetting)如果這種方法不能確定它意味着你得到這0 numberUILabel。所以你應該照顧這個單一的事情,無論你正確地調用loadSetting方法之前顯示提示計數的用戶通過UILabbel。因爲在查看你的代碼後,它你看起來像你應該做的那樣,以正確的方式做了一切事情。

您可以檢查了這一點,但在需要的地方設置一些破發點,並檢查了其背後的主要原因。

我希望這可以幫助你,可以給任何想法,這樣你可以得到一些幫助的形式上面

+0

我按照你的建議完成了,結合上面的答案,我能夠將0更新爲10,但只能在調試器中使用。由於某些原因,即使在調用更新行時變量本身爲10,我的UILabel仍然不會自行更新。 – user1843954

+0

@ user1843954即時通訊相當肯定你在SO.Check中顯示的這部分代碼沒有問題。檢查你是否正確創建了'shared(singleton)Quiz class'或not.try以進行類似的搜索如何創建單例類在ios sdk.don't如果你已經知道,但你仍然應該再次檢查你的單身人士班 – Kamarshad