javaee论坛

普通会员

225648

帖子

344

回复

358

积分

楼主
发表于 2017-08-29 20:09:57 | 查看: 376 | 回复: 0
新建Login.storyboard,并把项目的Main Interface设置为Login。

注册登录界面

帐号密码运行前就写好是为了方便调试,登录成功后跳转到Main.storyboard。如果之前就已经登录成功,则下次程序运行时不需要登录就直接跳转到Main.storyboard。

二、用户模型

为了方便程序的编写,新建WCUser类,构造用户模型。根据上面的功能描述,知道用户模型的属性应包括:登录帐号、登录密码、注册帐号、注册密码、是否在之前已登录成功;还有连接服务器需要用到的域名、主机名、端口;此外,要实现不登录就跳转到Main.storyboard的功能,应该使用沙盒保存之前登录成功的帐号密码;最后,用户模型是单例的。

2.1 WCUser.h

@interface WCUser : NSObject@property (nonatomic, copy) NSString *loginAccount;@property (nonatomic, copy) NSString *loginPwd;/** *  判断用户是否在之前就已登录成功 */@property (nonatomic, assign, getter=isLogin) BOOL login;@property (nonatomic, copy) NSString *registerAccount;@property (nonatomic, copy) NSString *registerPwd;/** *  返回一个单例WCUser */+ (instancetype)shareUser;/** *  保存最新的用户数据到沙盒 */- (void)saveToSandBox;- (NSString *)domain;- (NSString *)host;- (int)port;@end

2.2 WCUser.m

#import "WCUser.h"#define kAccountKey @"account"#define kPwdKey @"pwd"#define kLoginKey @"login"//域名是配置openfire时自己设置的static NSString *domain = @"steven.local";static NSString *host = @"127.0.0.1";static int port = 5222;@implementation WCUser+(instancetype)shareUser{    return [[self alloc] init];}+ (id)allocWithZone:(struct _NSZone *)zone{    static WCUser *user;    //可能存在三个线程同时调用的情况,为了线程安全考虑s    static dispatch_once_t onceToken;    dispatch_once(&onceToken, ^{        user = [super allocWithZone:zone];        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];        user.loginAccount = [defaults objectForKey:kAccountKey];        user.loginPwd = [defaults objectForKey:kPwdKey];        user.login = [defaults boolForKey:kLoginKey];    });    return user;}- (void)saveToSandBox{    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];    [defaults setObject:self.loginAccount forKey:kAccountKey];    [defaults setObject:self.loginPwd forKey:kPwdKey];    [defaults setBool:self.isLogin forKey:kLoginKey];    [defaults synchronize];}- (NSString *)domain{    return domain;}- (NSString *)host{    return host;}- (int)port{    return port;}@end

三、小结

用户模型思维导图


您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017