Получение значения из standardUserDefaults с использованием integerForKey после сохранения с помощью setInteger: forKey всегда приводит к сбою приложения.
Если я получу значение с помощью objectForKey и приведу значение к int, ошибок не будет, и я смогу отобразить значение в сообщении журнала. Однако, когда я пытаюсь присвоить этот int другому int или пытаюсь выполнить с ним математическую функцию, например, добавление, это также приводит к сбою приложения.
Как получить int, который я сохранил в standardUserDefaults? Я работаю против SDK 3.0, но столкнулся с идентичной проблемой в 2.2.1. Спасибо.
привилегии, определенные как
NSUserDefaults *prefs;
и retrievePrefs всегда вызывается перед savePrefs. Приложение также вызывает [prefs synchronize] перед выходом.
-(void)retrievePrefs {
prefs = [[NSUserDefaults standardUserDefaults] retain];
if (prefs) {
// doesn't crash app, spits out 'page: 1'
NSLog(@"page: %@", [prefs objectForKey:@"pageIndex"]);
// crashes app with no details
NSLog(@"page: %@", [prefs integerForKey:@"pageIndex"]);
}
}
-(void)savePrefs {
if (prefs) {
[prefs setInteger:1 forKey:@"pageIndex"];
}
}