NSUserDefaults не сохраняет мои значения - PullRequest
2 голосов
/ 18 марта 2012

Я использую этот код для сохранения:

[[NSUserDefaults standardUserDefaults] setValue:@"vruch" forKey:@"nastoikaIP"];
[[NSUserDefaults standardUserDefaults] synchronize];

и этот код для загрузки:

NSString* automanual = [[NSUserDefaults standardUserDefaults] 
                         valueForKey:@"nastroikaIP"];

if ([automanual isEqualToString:@"vruch"]) {
    autovruch.selectedSegmentIndex = 1;
   [self obnovittext];
} 

Ответы [ 2 ]

11 голосов
/ 18 марта 2012

Не следует использовать метод setValue: (из протокола NSKeyValueCoding), но setObject: (из класса NSUserDefaults) для хранения строки.

[[NSUserDefaults standardUserDefaults] setObject:@"vruch" forKey:@"nastroikaIP"];
[[NSUserDefaults standardUserDefaults] synchronize];

Вы можете получить строку, используя метод stringForKey:

NSString* automanual = [[NSUserDefaults standardUserDefaults] stringForKey:@"nastroikaIP"];

Наконец, обратите внимание, что обычно лучше определить константы для ключей, которые вы используете в NSUserDefaults, чтобы избежать ошибок опечаток, которые могут быть трудно отладить в случае их возникновения.

Редактировать

Похоже, вы уже допустили опечатку nastoikaIP! = nastroikaIP. Обратите внимание на пропущенную / лишнюю r букву.

1 голос
/ 18 марта 2012

Вы сохраняете строку, поэтому вам нужно установить setObject, а не setValue

 [[NSUserDefaults standardUserDefaults] setObject:@"vruch" forKey:@"nastoikaIP"];
     [[NSUserDefaults standardUserDefaults] synchronize];

и измените его для загрузки, а также

 NSString* automanual = [[NSUserDefaults standardUserDefaults] objectForKey:@"nastroikaIP"];

if ([automanual isEqualToString:@"vruch"]) {
autovruch.selectedSegmentIndex = 1;
[self obnovittext];
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...