免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
IOS開(kāi)發(fā)之記錄用戶登陸狀態(tài)

上一篇博客中提到了用CoreData來(lái)進(jìn)行數(shù)據(jù)的持久化,CoreData的配置和使用步驟還是挺復(fù)雜的。但熟悉CoreData的使用流程后,CoreData還是蠻好用的。今天要說(shuō)的是如何記錄我們用戶的登陸狀態(tài)。例如微信,QQ等,在用戶登陸后,關(guān)閉應(yīng)用在打開(kāi)就直接登陸了。那么我們?cè)贏pp開(kāi)發(fā)中如何記錄用戶的登陸狀態(tài)呢?之前在用PHP或者Java寫(xiě)B(tài)/S結(jié)構(gòu)的東西的時(shí)候,我們用Session來(lái)存儲(chǔ)用戶的登陸信息,Session是存在服務(wù)器上僅在一次回話中有效,如果要記錄用戶的登陸狀態(tài),那么會(huì)用到一個(gè)叫Cookie的東西。Cookie和Session不同,Cookie是存在用戶本地的一個(gè)文件,Cookie中存的就是用戶的登陸信息,當(dāng)用戶在此登陸時(shí),自動(dòng)從Cookie中讀取用戶的登陸信息。

不扯Web的啦,在我們App開(kāi)發(fā)中同樣也遇到這要的問(wèn)題,如何記錄用戶的登陸狀態(tài)呢? 用我們的CoreData蠻? CoreData適合處理大量的數(shù)據(jù),一般和TableView來(lái)結(jié)合起來(lái)使用,當(dāng)然我們可以用CoreData來(lái)存儲(chǔ)用戶的登陸信息,但這不免有點(diǎn)大材小用,而且用起來(lái)也是比較復(fù)雜的。那么我們有其他更便捷的方法嗎?蘋(píng)果這么注重用戶體驗(yàn),當(dāng)然有其他的方法了,就是NSUserDefault. NSUserDefault設(shè)置完值以后要進(jìn)行同步

NSUserDefault是蘋(píng)果提供給我們用來(lái)存儲(chǔ)用戶的登陸信息的一個(gè)類(lèi),當(dāng)然是持久化的了,廢話不多說(shuō)了。我們就模擬一個(gè)用戶登陸和注銷(xiāo)的demo來(lái)學(xué)習(xí)一下如何使用NSUserDefault來(lái)存儲(chǔ)用戶的登陸信息。

1.首先我們得有一個(gè)登陸頁(yè)面對(duì)應(yīng)的類(lèi)為ViewController.h, 在登陸頁(yè)面有兩個(gè)TextField和一個(gè)Button用來(lái)接受用戶的輸入,在點(diǎn)擊Button中的回調(diào)的方法中,如果用戶登陸成功,則把用戶信息存入U(xiǎn)serDefault中,然后以模態(tài)的方式來(lái)跳轉(zhuǎn)到主界面,首先我們要獲取UserDefault的單例,登陸頁(yè)面中的登陸按鈕回調(diào)的方法代碼如下:

       - (IBAction)tapLogin:(id)sender {            //獲取用戶輸入的信息            NSString *username = self.usernameTextField.text;            NSString *password = self.passwordTextField.text;            //對(duì)用戶信息的驗(yàn)證            if ([username isEqualToString:password]){                //獲取userDefault單例                NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];                //登陸成功后把用戶名和密碼存儲(chǔ)到UserDefault                [userDefaults setObject:username forKey:@"name"];                [userDefaults setObject:password forKey:@"password"];                 [userDefaults synchronize];                //用模態(tài)跳轉(zhuǎn)到主界面                UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];                id mainViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainView"];                [self presentViewController:mainViewController animated:YES completion:^{                }];            }        } 

2.處理完登陸頁(yè)面,我們會(huì)處理根據(jù)UserDefault中的name屬性是否有值來(lái)選擇加載哪個(gè)頁(yè)面。在storybaord中我們默認(rèn)的是主界面,在AppDelegate.m中如果未登陸,我們會(huì)設(shè)置一下rootViewController,代碼如下

       //判斷是否登陸,由登陸狀態(tài)判斷啟動(dòng)頁(yè)面        //獲取UserDefault        NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];        NSString *name = [userDefault objectForKey:@"name"];        //獲取storyboard        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];        //如果用戶未登陸則把根視圖控制器改變成登陸視圖控制器        if (name == nil)        {            NSLog(@"%@",name);            id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];            self.window.rootViewController = view;        } 

3.經(jīng)過(guò)上面的代碼我們就可以根據(jù)用戶登陸狀態(tài)來(lái)選擇加載的信息,在登陸后的頁(yè)面中,我們添加一個(gè)按鈕,用來(lái)退出。在退出按鈕回調(diào)的方法中,我們需要把之前保存的用戶信息進(jìn)行remove掉,同時(shí)用模態(tài)的方式來(lái)跳轉(zhuǎn)到登陸頁(yè)面,代碼如下:

       - (IBAction)tapLoginOut:(id)sender {            //獲取UserDefaults單例            NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];            //移除UserDefaults中存儲(chǔ)的用戶信息            [userDefaults removeObjectForKey:@"name"];            [userDefaults removeObjectForKey:@"password"];             [userDefaults synchronize];            //獲取storyboard            UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];            //獲取注銷(xiāo)后要跳轉(zhuǎn)的頁(yè)面            id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];            //模態(tài)展示出登陸頁(yè)面            [self presentViewController:view animated:YES completion:^{            }]; 

下面的截圖是在storyboard中的截圖,運(yùn)行出的效果和下面一樣,到此我們就可以實(shí)現(xiàn)記錄用戶的登陸狀態(tài)了


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
iOS開(kāi)發(fā)備忘錄:實(shí)現(xiàn)多StoryBoard之間跳轉(zhuǎn)
IOS中用UIStoryBoard類(lèi)初始化/跳轉(zhuǎn)控制器
UIScrollView 和UIPageControl 實(shí)現(xiàn)app啟動(dòng)滑動(dòng)圖
如何清空所有Keychain及UserDefaults
【IOS功能實(shí)現(xiàn)】之 NSUserDefaults的用法(輕量級(jí)本地?cái)?shù)據(jù)存儲(chǔ))
Swift 數(shù)據(jù)存儲(chǔ)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服