Я добавляю словарь в NSUserDefaults и вызываю метод «synchronize», но когда я закрываю свое приложение и снова открываю его, значения, которые сохраняются в NSUserDefault, равны нулю.NSUserDefaults не сохраняется в симуляторе, хотя я использую синхронизацию
#define kStartTime @"startTime"
#define kEndTime @"endTime"
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSString *[email protected]"08:00";
NSString *[email protected]"18:00";
NSDictionary *dict=[[NSDictionary alloc] initWithObjectsAndKeys:startTime,kStartTime,
endTime,kEndTime,
nil];
[defaults registerDefaults:dict];
[defaults synchronize];
И в методе viewDidLoad
я называю это:
NSString *startTimeValue=[defaults stringForKey:kStartTime];
startTimeValue по-прежнему нулевой, когда я вновь открыть мое приложение в simulator.Is UserDefaults не может сохранить в Simulator ???
Моя точка зрения заключается в том, когда я закрываю свое приложение и снова открываю его в симуляторе, значения исчезают.
После того, как я искал документ с яблоком, я получил это.
registerDefaults:
.
Как сказано в документе Apple: добавляет содержимое указанного словаря в домен регистрации.
* Содержимое домена регистрации не записывается на диск; * вам нужно вызывать этот метод каждый раз, когда запускается ваше приложение. Вы можете поместить файл plist в каталог ресурсов приложения и вызвать registerDefaults: с содержимым, которое вы читаете в этом файле.
Так функция registerDefaults:
устанавливает значения по умолчанию в приложении, Значение по умолчанию не будет храниться в диске synchronize
проверить мой обновленный ответ ... просто скопируйте его и запустите, чтобы получить значения ... – Jitendra
Попробуйте сохранить весь dict как: [defaults setValue: dict forKey: @ "dictionary"]; и введите его следующим образом: NSMutableDictionary * dict = [[NSMutableDictionary alloc] init]; и dict = [defaults valueForKey: @ "dictionary"]; –
Я только что отредактировал ваш код и отлично его проверил .... – Jitendra