iOS创建管理当前账号的单例类

GTAccountManager.h


#import <Foundation/Foundation.h>

@interface GTAccountManager : NSObject

/**
 *  @author 黄健, 2016-05-24 11:05:24
 *
 *  @brief 当前登录账号
 */
@property (nonatomic, strong) GTUser *currentUser;

/**
 *  @author 黄健, 2016-05-24 11:05:48
 *
 *  @brief 创建管理当前登录账号的单例类
 *
 *  @return 返回单例对象
 */
+ (instancetype)sharedManager;

/**
 *  @author 黄健, 2016-05-24 11:05:27
 *
 *  @brief 注销账号
 */
- (void)resetUser;

/**
 *  @author 黄健, 2016-05-24 11:05:38
 *
 *  @brief 判断是否已经登录
 *
 *  @return 返回YES即表示已登录,返回NO表示没登录
 */
- (BOOL)isLogined;

@end

GTAccountManager.m

#import "GTAccountManager.h"

@implementation GTAccountManager
{
    /**
     *  @author 黄健, 2016-05-24 11:05:10
     *
     *  @brief 需要引入KeychainItemWrapper类
     */
    KeychainItemWrapper *_keychain;
}

+ (instancetype)sharedManager
{
    static GTAccountManager *mgr = nil;

    static dispatch_once_t onceTonken;

    dispatch_once(& onceTonken, ^{
        if(mgr == nil) {
            mgr = [[GTAccountManager alloc ]init];
        }
    });
    return mgr;
}

- (instancetype)init
{
    if (self = [super init]) {
        _currentUser = [[GTUser alloc] init];

        NSString *identifier = [[NSBundle mainBundle] bundleIdentifier];

        _keychain                 = [[KeychainItemWrapper alloc] initWithIdentifier:identifier accessGroup:nil];
        _currentUser.mobile_phone = [_keychain objectForKey:(__bridge id)(kSecAttrAccount)];
        _currentUser.password     = [_keychain objectForKey:(__bridge id)(kSecValueData)];
    }
    return self;
}

- (void)setCurrentUser:(GTUser *)currentUser
{
    _currentUser = currentUser;

    [_keychain setObject:currentUser.mobile_phone forKey:(__bridge id)(kSecAttrAccount)];
    [_keychain setObject:currentUser.password forKey:(__bridge id)(kSecValueData)];
}

- (void)resetUser
{
     _currentUser = nil;

    [_keychain resetKeychainItem];
}

- (BOOL)isLogined
{
    if (_currentUser.mobile_phone.length && _currentUser.password.length) {return YES;} return NO;
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值