首页 > 技术文章 > swift-UserDefaults控制账号和密码

sayimba 2016-12-23 16:10 原文

import UIKit

class FiveVC: UIViewController {

    //MARK:-------- 全局 常量 设置
    let IsFirstLaunch = "IsFirstLaunch"
    let UserName = "UserName"
    let UserPwd = "UserPwd"
    var nameField = UITextField()
    var PwdField = UITextField()

    override func viewDidLoad() {
        super.viewDidLoad()

        nameField = UITextField(frame:CGRect(x:100,y:200,width:200,height:40))
        nameField.backgroundColor = UIColor.cyan
        nameField.placeholder = "请输入姓名"
        nameField.borderStyle = UITextBorderStyle.roundedRect
        self.view.addSubview(nameField)
        
        
        PwdField = UITextField(frame:CGRect(x:100,y:300,width:200,height:40))
        PwdField.backgroundColor = UIColor.cyan
        PwdField.placeholder = "请输入密码"
        PwdField.borderStyle = UITextBorderStyle.roundedRect
        self.view.addSubview(PwdField)
        
        
        let keetBtn = UIButton.init()
        keetBtn.frame = CGRect(x:100,y:400,width:100,height:40)
        keetBtn.backgroundColor = UIColor.cyan
        keetBtn.setTitle("保存", for: UIControlState.normal)
        keetBtn.setTitleColor(UIColor.black, for: UIControlState.normal)
        keetBtn.addTarget(self, action: #selector(pressKeepBtn), for: UIControlEvents.touchUpInside)
        self.view.addSubview(keetBtn)
        
        
        let reduceBtn = UIButton.init()
        reduceBtn.frame = CGRect(x:200,y:400,width:100,height:40)
        reduceBtn.backgroundColor = UIColor.cyan
        reduceBtn.setTitle("清空", for: UIControlState.normal)
        reduceBtn.setTitleColor(UIColor.black, for: UIControlState.normal)
        reduceBtn.addTarget(self, action: #selector(pressReduceBtn), for: UIControlEvents.touchUpInside)
        self.view.addSubview(reduceBtn)
        
        let userName = LCDUserDefaultsGet(key: UserName) as! String
        let userPwd = LCDUserDefaultsGet(key: UserPwd) as! String
        
        print("\(userName):\(userPwd)")
        
        if userName.characters.count > 0 {
            freshDate(isOk: true, userName: userName, userPwd: userPwd)
        }
        
        /*
        //obj 为bool值的时候 调用
        if LCDUserDefaultsBool(key: UserName) {
            let userName = LCDUserDefaultsGet(key: UserName) as! String
            let userPwd = LCDUserDefaultsGet(key: UserPwd) as! String
            
            print("\(userName):\(userPwd)")
        }
        
        print(LCDUserDefaultsBool(key: UserName))
 */
    
    }
    
    //刷新数据
    func  freshDate(isOk:Bool, userName:String, userPwd:String){
    
        if isOk {
            nameField.placeholder = ""
            nameField.text = userName
            PwdField.placeholder = ""
            PwdField.text = userPwd
        }else{
            nameField.placeholder = "请输入姓名"
            nameField.text = ""
            PwdField.placeholder = "请输入密码"
            PwdField.text = ""
        }
    }
    
    //保存数据
    func pressKeepBtn(){
        
        if nameField.text?.characters.count == 0 {
            alterShow(titles: "请输入姓名")
            return
        }
        if PwdField.text?.characters.count == 0 {
            alterShow(titles: "请输入密码")
            return
        }
        
        LCDUserDefaultsSet(key: UserName,obj: nameField.text as AnyObject)
        LCDUserDefaultsSet(key: UserPwd,obj: PwdField.text as AnyObject)
        LCDUserDefaultsSyn()
        
        let userName = LCDUserDefaultsGet(key: UserName) as! String
        let userPwd = LCDUserDefaultsGet(key: UserPwd) as! String
        
        freshDate(isOk: true, userName: userName, userPwd: userPwd)
        alterShow(titles: "数据已保存成功")
        
    }
    
    //清空数据
    func pressReduceBtn(){
        
        LCDUserDefaultsSet(key: UserName,obj: "" as AnyObject)
        LCDUserDefaultsSet(key: UserPwd,obj: "" as AnyObject)
        LCDUserDefaultsSyn()

        freshDate(isOk: false, userName: "", userPwd: "")
        alterShow(titles: "数据已清空成功")
    }
    
    //MARK:------------- LCDUserDefaults
    //保存
    func LCDUserDefaultsSet(key:String, obj:AnyObject) -> Void {
        return UserDefaults.standard.set(obj, forKey: key)
    }
    //获取
    func LCDUserDefaultsGet(key:String) -> AnyObject {
        return UserDefaults.standard.value(forKey: key)! as AnyObject
    }
    //删除
    func LCDUserDefaultsRemo(key:String) -> Void {
        UserDefaults.standard.removeObject(forKey: key)
    }
    
    //判断bool 类型的值
    func LCDUserDefaultsBool(key:String) -> Bool {
        return UserDefaults.standard.bool(forKey: key)
    }
    func LCDUserDefaultsSyn() {
        UserDefaults.standard.synchronize()
    }
    

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    
    func alterShow(titles:String){
        
        let alertController = UIAlertController(title: "提示",
                                                message: titles, preferredStyle: UIAlertControllerStyle.alert)
        let cancelAction = UIAlertAction(title: "取消", style: UIAlertActionStyle.cancel, handler: nil)
        let okAction = UIAlertAction(title: "好的", style: UIAlertActionStyle.default,
                                     handler: {
                                        action in
                                        print("点击了确定")
        })
        alertController.addAction(cancelAction)
        alertController.addAction(okAction)
        self.present(alertController, animated: true, completion: nil)

    }
}

 

 

推荐阅读