当执行以下代码时,即使选择的indexPath.row为“1”,它也会记录“0”。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSInteger location = indexPath.row;
[userDefaults setInteger:location forKey:@"savedlocations"];
NSInteger location2 = [userDefaults integerForKey:@"savedlocation"];
NSLog(@"l: %ld", location);
答案 0 :(得分:1)
你有几件事需要修复:
savedlocations
保存,但使用savedlocation
检索密钥。请注意,第一个是复数。location
,而不是location2
,这是从NSUserDefaults中提取的内容。由于上述要点,location2
将始终为0。synchronize
,但事实证明这与这种情况无关,正如rmaddy在下面的评论中所解释的那样。除了那些快速修复,您的配置应该可以正常工作。
答案 1 :(得分:-1)
您正在寻找密钥" savedlocation"而不是" savedlocations"。
编辑:
方法返回 0
,这是为无法找到的NSInteger返回的内容。我对这个怪异的措辞很不好。