zoukankan      html  css  js  c++  java
  • iOS用户信息单例的创建

      

    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;

        }

    }

  • 相关阅读:
    一个JAVA数据库连接池实现源码
    PL/SQL Developer去掉启动时自动弹出的Logon弹出框方法
    解决tomcat启动Socket监听端口死循环被hold问题
    JavaMelody应用监控使用指南
    ha456.jar打开dump文件报Unsupported major.minor version 51.0异常
    分布式并行数据库将在OLTP 领域促进去“Oracle”
    Oracle查找全表扫描的SQL语句
    Oracle 11g RAC客户端使用SCAN IP无法连接问题
    Oracle存储过程执行update语句不报错不生效问题
    Oracle外键不加索引会引起死锁问题
  • 原文地址:https://www.cnblogs.com/NSong/p/5553199.html
Copyright © 2011-2022 走看看