问题描述:
在调试项目的时候遇到的问题,用NSUserDefaults将一个字符串写在本地,然后就重新运行程序,但是此时用NSUserDefaults取到的值为null。
原因分析:
使用NSUserDefaults将对象写入本地,不是立即写入,而是根据时间戳定时的把缓存中的数据写入本地磁盘。所以刚写入就重新运行程序,数据有可能还没有写入磁盘。
解决办法:
调用synchornize方法强制写入。
[NSUserDefaultsstandardUserDefaults]synchronize];
参考:http://www.cnblogs.com/ios-wmm/archive/2013/03/01/2646780.html
本文介绍在iOS开发中使用NSUserDefaults时遇到的数据写入延迟问题及其解决方案。当使用NSUserDefaults存储数据后立即重启程序可能导致读取到空值,这是因为数据并非即时写入。文章提供了解决方法——调用synchronize方法确保数据被立即写入。
6416

被折叠的 条评论
为什么被折叠?



