您的位置:首页 > 移动开发 > IOS开发

iOS用户信息单例的创建

2016-06-02 15:24 337 查看
  

UserInfo.h

+ (UserInfo *) sharedInstance;

UserInfo.m

#import "UserInfo.h"

static UserInfo *sharedObj = nil; //第一步:静态实例,并初始化。

@implementation UserInfo

+ (UserInfo*) sharedInstance //第二步:实例构造检查静态实例是否为nil

{

@synchronized (self)

{

if (sharedObj == nil)

{

sharedObj = [[self alloc] init];

}

}

return sharedObj;

}

+ (id) allocWithZone:(NSZone *)zone //第三步:重写allocWithZone方法

{

@synchronized (self) {

if (sharedObj == nil) {

sharedObj = [super allocWithZone:zone];

return sharedObj;

}

}

return nil;

}

- (id) copyWithZone:(NSZone *)zone //第四步

{

return self;

}

- (id)init

{

@synchronized(self)

{

if (self = [super init])

{

self.environment = ENVIRONMENT_FORMAL;

self.isLogin = NO;

self.userPhone = @"";

self.userName = @"";

self.userSignature = @"";

self.userId = @"";

// 项目

self.sdkAppId = [NSString stringWithFormat:@"%d",kSdkAppId];

self.accountType = [NSString stringWithFormat:@"%d",kSdkAccountType];

self.liveType = LIVE_NONE;

self.isInChatRoom = NO;

self.isInLiveRoom = NO;

//用户登录信息\直播信息\环境信息

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

NSDictionary* userDic = [userDefaults objectForKey:@"userInfo"];

NSDictionary* liveDic = [userDefaults objectForKey:@"liveInfo"];

NSNumber* environment = [userDefaults objectForKey:@"environment"];

[self setUserFromLocalInfo:userDic];

[self setLiveFromLocalInfo:liveDic];

[self setEnv:environment];

}

return self;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: