1

ロジックがわかりません:

設定バンドルを作成すると、コードからアクセスすると値が nil になります

[[NSUserDefaults standardUserDefaults] stringForKey:@"mykey1"]

しかし、Settings.app を介してこのキーに触れるとすぐに、このキーをコードで読み取ることができます。

私が見つけた解決策は、ファイル「Root.plist」を読み取り、そこから辞書を作成しregister、値とsynchronizeそれらを作成する必要があります。

Apple ドキュメントを何度も読みましたが、一連の標準設定でアプリを配信するためのアイデアと標準パターンをまだ理解していません。

私の勉強のヒントはありますか?

4

1 に答える 1

2

Settings.bundle の存在は、 には影響しませんNSUserDefaults。値が に反映されるのは、値がデフォルトから変更されるまではありませんNSUserDefaults

適切な解決策は、 を使用することNSUserDefaults registerDefaults:です。多くの場合、デフォルトのディクショナリに の内容をロードしますRoot.plist。これを呼び出す必要はありませんsynchronize。デフォルトは、アプリが実行されるたびに登録されます。値は実際には保存されません。から値を要求するときに、NSUserDefaults明示的な値が存在しない場合は、登録されているデフォルトの値が検索されます。

アプリの起動時にできるだけ早くデフォルトを登録する必要があります。

于 2013-03-28T23:19:09.010 に答える