【发布时间】:2015-09-24 02:40:09
【问题描述】:
我在保存到现有密钥时遇到了一些问题
//This was previously set and contains this value 1436544831921
NSInteger timestamp = [[NSUserDefualts standardUserDefualts] integerForKey:aKey];
NSInteger newValue = [self doSomethingWithOldValue:timestamp] //returns 1436631948002
[[NSUserDefualts standardUserDefualts] setInteger:newValue forKey:aKey];
[[NSUserDefualts standardUserDefualts] synchronize];
这个实现有问题吗?它不是保存,而是保留以前保存的值。
【问题讨论】:
-
你意识到这个值比一个 32 位整数可以容纳的大——它需要一个 64 位整数来容纳它。尝试设置,然后读取,然后设置,然后读取“100”之类的值。
-
@DavidH 我试过这样做,但它甚至没有将其设置为“100”,它保留了旧值。
-
尝试查找可能在您的代码中的某处您也更改了该键。例如在应用启动时/
-
@Cy-4AH 谢谢,关键是常数。这是唯一设置值的地方。在第二次到达这一点之后,它不再在此键下保存任何值。
-
@CRD 添加到关注列表
标签: ios objective-c iphone macos nsuserdefaults