如何将在UITextField中输入的字符串保存到NSUserDefaults Swift

时间:2015-06-01 23:00:45

标签: ios swift uitextfield alert nsuserdefaults

我正在创建一个应用,我希望用户在第一次打开应用时创建自己的密码。我有一个警告弹出窗口,其中包含一个文本字段和一个按钮,我想将它们输入的任何文本保存到文本字段中以供日后使用。这是我到目前为止提醒的代码。

override func viewDidAppear(animated: Bool) {

    super.viewDidAppear(animated);    //You should call super.

    let firstLaunch = NSUserDefaults.standardUserDefaults().boolForKey("FirstLaunch")
    if firstLaunch  {
        println("Not first launch.")
    }
    else {
        println("First launch, setting NSUserDefault.")
        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "FirstLaunch")
        var alert = UIAlertController(title: "Create Your Password", message: "Message", preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Save Password", style: UIAlertActionStyle.Default, handler: nil))
        alert.addTextFieldWithConfigurationHandler({
            textfield in
            textfield.placeholder = "Password"
            textfield.secureTextEntry = true
        })
}

我不知道从哪里开始这个,任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您正在使用的文本字段在闭包范围内受到限制。假设我输入的密码为12345。您可以通过检查闭包内textfield的text属性来进行检查。但是您不能在闭包之外访问这些属性。

回到问题。请按如下所示更改您的代码

alert.addAction(UIAlertAction(title: "Save Password", style:   UIAlertActionStyle.Default)){ (action) in

//set password.
UserDefaults.standard.setValue("12345", forKey: "Password")
}


//Note that password i.e. 12345 is stored as of type Any?. After getting it back from defaults you will have to cast in back to string.

希望对您有帮助。