我将一个整数值传递给 NSUserDefault 对象以在我的应用程序加载时存储以供使用。在我尝试将该整数值切换为浮点数之前,我让它工作得很好。它引起了一大堆问题,所以我重新调整了我的方法,并且命令-z'd让我回到整数的安全性......或者我是这么想的。
以前如果我保存了这个值,我可以立即关闭我的模拟器,控制台会毫无问题地吐出正确保存的数字。现在,在那次愚蠢的浮动混乱之后(我可以破坏我的 NSUserDefault 对象吗?这听起来很愚蠢......),获得正确的数字来显示有点像是一场赌博。
我已经处理了一堆 NSLog,并且可以确认我点击保存时保存的值正确地传递给了 UserDefault 类中的 set 方法。set 方法正确获取值,然后将其设置为 NSUD 对象,如下所示:
[self setObject:[NSNumber numberWithInteger:num] forKey:savedNum];
当我在该对象上运行 get 方法时,控制台会正确打印出该值。当应用程序加载时,它会调用我刚刚测试的 SAME get 方法,但它并不总是返回正确的东西。很多时候,它会显示之前保存的值。
如果我点击保存按钮并在关闭应用程序之前等待 5 秒钟,它以前可以正常工作,但很少见。如果我等待 10 秒,它会吐出正确的数字。
为什么时间与这个操作有任何关系?我完全不知道为什么会发生这种情况,特别是因为我昨天才让它正常工作......
任何想法或意见将不胜感激!