ios中记录用户登录,第二次免登录
来源:互联网 发布:斗鱼卡卡淘宝店 编辑:程序博客网 时间:2024/06/06 02:04
NSUserDefault是苹果提供给我们用来存储用户的登陆信息的持久化类。下面用实例看下记录登陆状态的过程
首先创建用于存取用户信息的方法类HRAccountTool.h:
- #import <Foundation/Foundation.h>
-
- @interface HRAccountTool : NSObject
-
-
-
-
- + (void)saveAccount:(NSArray *)account;
-
-
-
-
-
- + (NSArray *)getAccount;
-
-
-
-
-
- + (NSString *)getUserName;
-
-
-
-
-
- + (NSString *)getPassword;
- @end
实现类
HRAccountTool.m:
- <pre name="code" class="objc">#import "HRAccountTool.h"
-
- @implementation HRAccountTool
-
- + (void)saveAccount:(NSArray *)account{
- NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
-
-
- [userDefaults setObject:account forKey:@"account" ];
- [userDefaults setObject:[account objectAtIndex:0] forKey:@"userName" ];
- [userDefaults setObject:[account objectAtIndex:1] forKey:@"passWord" ];
- };
-
-
- + (NSArray *)getAccount{
- NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
- NSArray *array = [userDefaults objectForKey:@"account"];
- return array;
- };
-
- + (NSString *)getUserName{
- NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
- NSString *userName = [userDefaults objectForKey:@"userName"];
- return userName;
- };
-
- + (NSString *)getPassword{
- NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
- NSString *passWord = [userDefaults objectForKey:@"passWord"];
- return passWord;
- }
- @end
在
AppDelegate.m的页面跳转方法中,可以调用获取用户信息/用户名的方法来判断是否需要登陆。不需要则直接进入主页,需要则进入登陆页:- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
- self.window.backgroundColor = [UIColor whiteColor];
-
- if ([HRAccountTool getUserName] == nil) {
- self.window.rootViewController = [[HRLoginViewController alloc] init];
- } else {
-
- }
-
- [self.window makeKeyAndVisible];
- return YES;
- }
如进入登陆页 在登陆事件中 持久化登陆用户信息到
NSUserDefault中,即可保证下次免登陆:- - (void) loginCheck{
-
- AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
-
- mgr.responseSerializer = [AFJSONResponseSerializer serializer];
-
- NSMutableDictionary *params = [NSMutableDictionary dictionary];
- params[@"userName"] = userNameTF.text;
- params[@"passWord"] = passWordTF.text;
-
-
- [mgr GET:@"http://localhost:8080/login/check.do" parameters:params
- success:^(AFHTTPRequestOperation *operation, NSDictionary *responseObject) {
- if ([[responseObject objectForKey:@"success"] boolValue] == true) {
- self.view.window.rootViewController = [[ZYTabBarViewController alloc]init];
- NSArray *array = [NSArray arrayWithObjects:userNameTF.text, passWordTF.text, nil ];
-
- [HRAccountTool saveAccount:array];
- }else{
- self.view.window.rootViewController = [[ZYloginViewController alloc]init];
- }
-
- } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
- HRLog(@"请求失败:%@", error);
-
- }];
-
- }
0 0