У меня есть следующие две процедуры, определенные в приложении AppDelegate. saveSettings и loadSettings. Я вызываю свою процедуру loadSettings в методе AppDidFinishLaunching, и я вызываю процедуру saveSettings в моем представлении настроек после нажатия кнопки сохранения.iPhone SDK - загрузка/сохранение настроек
Оба метода, кажется, вызываются в нужное время, правильное количество раз (один раз) и использование правильных данных. мой объект настроек получает правильные данные, но данные, похоже, фактически не сохраняются. Когда я запускаю код загрузки, мои результирующие переменные возвращаются пустым (не ноль).
Я попытался поместить тот же код загрузки в другое представление, и он отлично работает, но по какой-то причине я не получаю результаты в своем приложении appDelegate.
Любая помощь была бы принята с благодарностью.
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
[self loadSettings];
[self setDefaults];
}
-(void)loadSettings{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
settings.masterLocation = [prefs objectForKey:@"masterLocation"];
settings.masterPort = [prefs objectForKey:@"masterPort"];
settings.userName = [prefs objectForKey:@"userName"];
settings.passWord = [prefs objectForKey:@"passWord"];
settings.autoLogin=[prefs objectForKey:@"autoLogin"];
if (settings.autoLogin == nil)
[email protected]"N";
}
-(void)saveSettings:(SharedData *)d{
settings=d;
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:settings.masterLocation forKey:@"masterLocation"];
[prefs setObject:settings.masterPort forKey:@"masterPort"];
[prefs setObject:settings.userName forKey:@"userName"];
[prefs setObject:settings.passWord forKey:@"passWord"];
[prefs setObject:settings.autoLogin forKey:@"autoLogin"];
}
Спасибо за Self-Learner Знак. – Dutchie432
Спасибо, что очень помогли! – Khattab
«синхронизировать» вместо «syncronize» – Manni