NSUserDefault需要几秒钟来注册我传递的值吗?

Jer*_*rry 3 iphone object nsuserdefaults nsinteger

我将一个整数值传递给NSUserDefault对象进行存储,以便在我的应用程序加载时使用.我做得很好,直到我试图将整数值切换到浮点数.它造成了一大堆问题,所以我重新调整了我的方法,然后命令我回到整数的安全性......或者我认为.

过去,如果我保存了值,我可以立即关闭我的模拟器,控制台会毫无问题地吐出正确保存的数字.现在,在那个愚蠢的浮动混乱之后(我可能已经损坏了我的NSUserDefault对象吗?这听起来很愚蠢...),获得正确的数字显示有点像赌博.

我已经完成了一堆NSLog,并且可以确认我在保存时保存的值正确传递给UserDefault类中的set方法.set方法正确获取值,然后将其设置为NSUD对象,如下所示:

[self setObject:[NSNumber numberWithInteger:num] forKey:savedNum];
Run Code Online (Sandbox Code Playgroud)

当我在该对象上运行get方法时,控制台会正确打印出该值.当应用程序加载时,它会调用我刚刚测试的SAME get方法,但它并不总是返回正确的东西.通常情况下,它会显示之前的保存值.

如果我点击保存按钮并在关闭应用程序前等待5秒,之前它已正常工作,但很少见.如果我等待10秒钟,它会吐出正确的号码.

为什么时间与此操作有关?我只是完全失去了为什么会发生这种情况,特别是因为我昨天才正常工作......

任何想法或输入将不胜感激!

Dav*_*Liu 9

你确定-synchronizeNSUserDefaults了吗?