NSUserDefaults的使用

先全局定义NSUserDefaults的宏定义

#define LCDUserDefaultsGET(key) [[NSUserDefaults standardUserDefaults] objectForKey:key] // 取
#define LCDUserDefaultsSET(object,key) [[NSUserDefaults standardUserDefaults] setObject:object forKey:key]  // 写
#define LCDUserDefaultsSynchronize [[NSUserDefaults standardUserDefaults] synchronize] // 存
#define LCDUserDefaultsRemove(key) [[NSUserDefaults standardUserDefaults] removeObjectForKey:key]  // 删
代码:

LCDUserDefaultsSET(tempObject.id, MyId);

LCDUserDefaultsSET(tempObject.mobile, MyMobile );

LCDUserDefaultsSET(userName, Account );

LCDUserDefaultsSET(pwdStr, Password );

LCDUserDefaultsSET(tempObject.name, MyName);

LCDUserDefaultsSynchronize;

LCDUserDefaultsGET(MyId)

用到NSUserDefault的时候,[[NSUserDefaults standardUserDefaults] setObject:tempObject.id forKey:@"MyID"] ;并不算存储好了,
重启动程序,关键字MyID对应的是空,
那是忘了写到disk里面了!需要[[NSUserDefaults standardUserDefaults] synchronize];

注意:
UserDefaults不是立即写入,而是根据时间戳定时的把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序就终止了。出现以上问题。可以通过调用synchornize方法强制写入。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容