Я пытаюсь прочитать два значения NSNumber
, которые я написал для NSUserDefaults
(и 39993
). Я могу написать значения просто отлично, но чтение его дает совершенно разные значения, чем ожидалось. Если бы NSNumber
мог быть прочитан правильно, я хотел бы затем преобразовать его в UInt32
, как это было первоначально.Невозможно правильно прочитать NSNumber
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
[self writeDefaults];
[self readDefaults];
}
- (void)writeDefaults {
UInt32 val1 = 24;
UInt32 val2 = 39993;
NSNumber* value1 = [NSNumber numberWithUnsignedInteger:val1];
NSNumber* value2 = [NSNumber numberWithUnsignedInt:val2];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:value1 forKey:@"value1"]; // saves 24
[defaults setObject:value2 forKey:@"value2"]; // saves 39993
NSLog(@"value1: %@",value1); // outputs 24
NSLog(@"value2: %@",value2); // outputs 39993
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)readDefaults {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSNumber *val1 = [defaults valueForKey:@"value1"];
NSNumber *val2 = [defaults valueForKey:@"value2"];
NSLog(@"val1: %u",(unsigned int)val1); // outputs 6199
NSLog(@"val2: %u",(unsigned int)val2); // outputs 10238263
}
@end
Любая идея, что я делаю неправильно на readDefaults
части? Благодарю.
@Josh Caswell, вопрос вы связаны на самом деле не выглядят одинаково. –
Это точно такая же фундаментальная проблема. –
@JoshCaswell, Когда я искал, что ответ так и не появился - возможно, параметры алгоритма поиска нуждаются в фундаментальной реконструкции. –