123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #import "UserInfo.h"
- /**infoKeys是用来在userDefault里面存取数据的
- 要求:避免重复。
- */
- static NSArray *infoKeys;
- static UserInfo *userInfo = nil;
- void SaveObjectForKey(id object, NSString* key);
- @implementation UserInfo
- +(UserInfo *)shareInfo
- {
- static dispatch_once_t onceToken ;
- dispatch_once(&onceToken, ^{
- userInfo = [[UserInfo alloc] init] ;
-
- infoKeys = @[@"isWelcomed",@"adPaths",@"isLogin",@"userDict",@"userSch"];
-
- NSUserDefaults* ud = [NSUserDefaults standardUserDefaults];
- for (NSString *key in infoKeys)
- {
- /**读取空字典不会导致崩溃
- */
- id obj = [ud objectForKey:key];
- if ([key isEqualToString:@"isLogin"]) {
- if (!obj) {
- userInfo.isLogin = NO;
- }else{
- userInfo.isLogin = [obj intValue] == 1 ? YES : NO;
- }
- }else{
- [userInfo setValue:obj forKey:key];
- }
- }
- }) ;
- return userInfo ;
- }
- -(void)setIsWelcomed:(NSString *)isWelcomed
- {
- _isWelcomed = isWelcomed;
- SaveObjectForKey(isWelcomed, infoKeys[0]);
- }
- -(void)setAdPaths:(NSArray *)adPaths
- {
- _adPaths = adPaths;
- SaveObjectForKey(adPaths, infoKeys[1]);
- }
- -(void)setIsLogin:(BOOL)isLogin
- {
- _isLogin = isLogin;
- SaveObjectForKey([NSString stringWithFormat:@"%d",(int)isLogin], infoKeys[2]);
- }
- -(void)setUserDict:(NSDictionary *)userDict
- {
- _userDict = userDict;
- SaveObjectForKey(userDict, infoKeys[3]);
-
- }
- -(void)setUserSch:(NSDictionary *)userSch
- {
- _userSch = userSch;
- SaveObjectForKey(userSch, infoKeys[4]);
- }
- -(NSString*) sfzmhm
- {
- return _userDict[@"idcard"] ;
- }
- @end
- void SaveObjectForKey(id object, NSString* key)
- {
- NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
- if (!object) {
- if ([ud objectForKey:key]) {
- [ud removeObjectForKey:key];
- }
- }else{
- [ud setObject:object forKey:key];
- }
- [ud synchronize];
- }
|