0

我已经搜索过,但我找不到一个很好的解释来解释为什么我仍然没有从我保存的整数中得到正确的值。

这就是我保存事件 ID 的方式。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:eventSelected.eventId forKey:@"currentEvent"];

这就是我试图检索它的方式。

NSLog(@"user dfault %@", [NSNumber numberWithUnsignedInt:[[[NSUserDefaults standardUserDefaults] objectForKey:@"currentEvent"] unsignedIntegerValue]]);

我明白了。

用户默认123581200

另外,要注意,如果我做了intValue而不是unsignedIntegerValue,它仍然会给我一个随机的 ID 号。想知道我做错了什么。

4

5 回答 5

12
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
// Convert your value to IntegerValue and Save it
[prefs setInteger:[eventSelected.eventId integerValue] forKey:@"currentEvent"];
// Dont forget to synchronize UserDefaults
[prefs synchronize];

// To Access this value
NSLog(@"%d",[prefs integerForKey:@"currentEvent"]);
于 2013-04-23T04:34:33.863 回答
1

而不是这段代码NSLog(@"user dfault %@", [NSNumber numberWithUnsignedInt:[[[NSUserDefaults standardUserDefaults] objectForKey:@"currentEvent"] unsignedIntegerValue]]);

用这个

NSLog(@"user dfault %@", [[NSUserDefaults standardUserDefaults]  integerForKey:@"currentEvent"]);
于 2013-04-23T04:28:25.473 回答
0

要检索整数,您应该使用以下函数:

[[NSUserDefaults standardUserDefaults]  integerForKey:@"currentEvent"];

当您要求 objectForKey 时,它首先将其装箱,然后返回对象。发布 intValue 会将该对象的地址转换为整数。因此,每次您都会收到不同的号码。

于 2013-04-23T04:29:11.113 回答
0

NSNumber给出一个指针值,而不是整数值。

于 2013-04-23T04:30:33.010 回答
-1
NSNumber *number;

店铺:

[[NSUserDefaults standardUserDefaults] setValue:number forKey:@"Number"];

检索:

number = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"Number"]];
于 2017-11-14T19:18:15.910 回答