辞書を NSUserDefaults に追加して「同期」メソッドを呼び出しますが、アプリを閉じて再度開くと、NSUserDefault に保存されている値は nil です。
#define kStartTime @"startTime"
#define kEndTime @"endTime"
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSString *startTime=@"08:00";
NSString *endTime=@"18:00";
NSDictionary *dict=[[NSDictionary alloc] initWithObjectsAndKeys:startTime,kStartTime,
endTime,kEndTime,
nil];
[defaults registerDefaults:dict];
[defaults synchronize];
そして、viewDidLoad
私はこれを呼び出すメソッドで:
NSString *startTimeValue=[defaults stringForKey:kStartTime];
シミュレーターでアプリを再度開くと、startTimeValue はまだ nil です。UserDefaults はシミュレーターに保存できませんか?
私のポイントは、アプリを閉じてシミュレーターで再度開くと、値がなくなっているということです。
アップルのドキュメントを検索した後、これを取得しました。
registerDefaults:
.
Apple Document で述べられているように:指定された辞書の内容を登録ドメインに追加します。
*登録ドメインの内容はディスクに書き込まれません。*アプリケーションを起動するたびにこのメソッドを呼び出す必要があります。アプリケーションの Resources ディレクトリに plist ファイルを配置し、そのファイルから読み取った内容で registerDefaults: を呼び出すことができます。
したがって、の機能はregisterDefaults:
アプリでデフォルト値を設定することであり、デフォルト値はディスクに保存されませんsynchronize