我将一个整数值传递给NSUserDefault对象以供我的应用程序加载时使用。我HAD它工作完美,直到我试图将该整数值切换到浮动。它引起了一大堆问题,所以我重新调整了我的方法,并命令我回到整数的安全方式......所以我想。是否NSUserDefault需要几秒钟来注册我通过它的值?
它曾经是,如果我保存的价值,我可以立即关闭我的模拟器,并控制台会吐出正确保存的号码没有问题。现在,在愚蠢的浮动混乱之后(我可能损坏了我的NSUserDefault对象吗?这听起来很愚蠢......),获得正确的数字显示有点冒险。
我已经经历了一堆NSLogs,并可以确认当我点击保存时,我保存的值正确传递给UserDefault类中的set方法。 set方法正确获取值,然后将其设置为NSUD对象,像这样:
[self setObject:[NSNumber numberWithInteger:num] forKey:savedNum];
当我运行的对象,在控制台打印出正确值的get方法。当应用程序加载时,它会调用我刚刚测试的SAME get方法,但它并不总是返回正确的东西。很多时候,这是之前保存的价值。
如果我点击保存按钮并等待5秒钟关闭应用程序之前,它已经正常工作,但它很少见。如果我等待10秒,它会吐出正确的数字。
为什么时间与这个操作有关?我只是完全丧失了为什么会发生这种情况,尤其是因为我昨天刚刚正常工作...
任何想法或输入将不胜感激!
我不太熟悉,我该如何同步? – Jerry 2010-11-19 23:24:52
良好的通话 - 但我认为只有控制它写出闪光。 (根据文档)它保留了“内存缓存” - 即使在写入闪存之前,它也能在回读时保持一致。 – Brad 2010-11-19 23:27:04
@Jerry Do [nsudobjectnamehere同步]。 – 2010-11-19 23:32:28