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方法强制写入。

你可能感兴趣的:(NSUserDefaults)