2011-09-26 17 views
0

私は自分のiOSアプリで「クリックカウンター」を設定しているので、ユーザーは何回アクションを実行したか知ることができます。私はNSUserDefaultsを使用しています。アプリが開くときにロードできないからです。これはOK作品ラベルにスコアを保存してアプリを開くときに読み込む

- (IBAction) increaseScore { 
self.currentScore = self.currentScore + 1; 
currentScoreLabel.text = [NSString stringWithFormat: @"%ld", self.currentScore]; 

// Saving: 

    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:currentScoreLabel.text forKey: @"Score"]; 
    [defaults synchronize]; } 

、ラベルが増加+1たびに、私はボタンをクリックしてください:

まず私は数を格納し、その上でそれをするたびにユーザーのクリックを高めるUILabelを作成しました。私はアプリが再び開く閉じたときに、それがロードされないので、それは、正しく保存されていないことを確認すると、ラベルはゼロに戻ります:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

currentScoreLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey: @"Store"]; 
} 

任意のアイデア?

答えて

1

あなたは誤字があるようです。あなたのincreaseScoreメソッドでは、キー "Score"のオブジェクトを設定し、viewDidLoadではキー "Store"の文字列を取得しようとしています。バマーが、私はいつも私がこの正確な理由で使用しているキーの静的なNSStringをセットアップしようとします。例:あなたが感謝

[defaults setObject:currentScoreLabel.text forKey:kScoreKey]; 

currentScoreLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:kScoreKey]; 
+0

呼び出す

static NSString* kScoreKey = @"Score"; 

この方法!出来た。しかし、私は別の問題を与えました。アプリケーションが開いて情報とスコアがロードされますが、スコアが15であっても、ボタンを押すと16の代わりに1に戻ります:/ – tomDev

+0

アプリがシミュレータから起動するときのメモリ。これをあなたのviewDidLoadに入れてください。 currentScore = [[[NSUserDefaults standardUserDefaults] stringForKey:@ "Store"] integerValue]; –

関連する問題