从 NSUserDefaults 保存和检索 int 时遇到问题。我使用以下代码保存到 NSUserDefaults:
int globalRank = 1;
NSUserDefaults *submissionDefaults = [NSUserDefaults standardUserDefaults];
[submissionDefaults setInteger: globalRank forKey:@"globalRankIntForLT"];
NSLog(@"updating %@ as the globalRank in NSUserDefaults",globalRank);
[submissionDefaults synchronize];
这似乎工作正常。在我的输出中,我可以看到:
"updating 1 as the globalRank in NSUserDefaults"
当我使用以下代码检索号码时:
NSUserDefaults *submissionDefaults = [NSUserDefaults standardUserDefaults];
NSInteger *currentGlobalRank = [submissionDefaults integerForKey:@"globalRankIntForLT"];
int currentGlobalRankInt = currentGlobalRank;
NSLog(@"Retrieved skip int is: %d as nsinteger is: %d",currentGlobalRankInt, currentGlobalRank);
I get output:
"Retrieved skip int is: 4978484032 as nsinteger is: 4978484032"
后来我将此 int 传递给另一个返回错误的方法,因为 4978484032 比预期的要大。
NSUserDefaults 包含一个 NSInteger 但即使在那个时候它也会不正确。我究竟做错了什么?谢谢,詹姆斯