2011-08-02 18 views
1

NSUserDefaultsによって保存されたテキストにアクセスし、 "name"という名前で既に定義されているラベルに表示します。私のコードは以下ですが、動作しません。私は何をすべきか?ご協力いただきありがとうございます!NSUserDefaultsを使用して格納されたオブジェクトにアクセスする

name = [[NSUserDefaults standardUserDefaults] objectForKey:@"Name"]; 
+0

オブジェクトを設定するときに、値が格納されることを確認するために '-synchronize'を呼び出す必要があります。通常は、アプリケーションが終了する直前の値を設定している場合や@diwupも正しい場合、現在のメソッドが黙って失敗します。 –

答えて

3

は次のようになります。

name.text = [[NSUserDefaults standardUserDefaults] objectForKey:@"Name"]; 
2

まず、あなたはこのように何らかの方法あなたのデフォルト設定を登録する必要があります(!あなたが複数の項目を追加したい場合にのみ必要です)

NSDictionary *defaultsDict = 
[NSDictionary dictionaryWithObjectsAndKeys:@"MyName", @"defaultName", @"MyAge", @"defaultAge", nil];` 
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict]; 

これは、ラベルポインタがあると仮定して使用します。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[label setText:[defaults stringForKey:@"defaultName"]]; 
+0

最初の部分は実際には必要ありません。これは、一度に複数のデフォルトを追加する単なる方法です。設定する値が1つのみの場合は、格納メソッド[[NSUserDefaults standardUserDefaults] setObject:forKey:]が速くなります。 –

+0

はい、私はあなたの意図を追加しました。最も一般的なのは、複数の値をデフォルトにしたいので、デフォルトを正しく設定しているかどうかわかりませんでした。 – MJB

関連する問題