我已经搜索了但是我找不到一个很好的解释,为什么我仍然没有从我保存的整数中获得正确的值。
这就是我保存事件ID的方式。
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:eventSelected.eventId forKey:@"currentEvent"];
这就是我试图检索它的方式。
NSLog(@"user dfault %@", [NSNumber numberWithUnsignedInt:[[[NSUserDefaults standardUserDefaults] objectForKey:@"currentEvent"] unsignedIntegerValue]]);
我开始了。
user dfault 123581200
另外,要注意,如果我执行了 intValue 而不是 unsignedIntegerValue ,则它仍然会给我一个随机ID号。我想知道我做错了什么。
答案 0 :(得分: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"]);
答案 1 :(得分:1)
而不是此代码NSLog(@"user dfault %@", [NSNumber numberWithUnsignedInt:[[[NSUserDefaults standardUserDefaults] objectForKey:@"currentEvent"] unsignedIntegerValue]]);
使用此
NSLog(@"user dfault %@", [[NSUserDefaults standardUserDefaults] integerForKey:@"currentEvent"]);
答案 2 :(得分:0)
要检索整数,您应该使用以下函数:
[[NSUserDefaults standardUserDefaults] integerForKey:@"currentEvent"];
当你请求objectForKey时,它首先将其打包然后返回该对象。发布intValue会将该对象的地址转换为整数。因此,每次您收到不同的号码。
答案 3 :(得分:0)
NSNumber
给出一个指针值,而不是整数值。
答案 4 :(得分:-1)
NSNumber *number;
存储
[[NSUserDefaults standardUserDefaults] setValue:number forKey:@"Number"];
检索:
number = [NSNumber numberWithInteger:[[NSUserDefaults standardUserDefaults] integerForKey:@"Number"]];