将UITextFiled的内容保存到NSUserDefaults

时间:2016-01-15 01:24:34

标签: ios swift uitextfield

我试图保存文本字段,然后在视图中将其检索回来,这里的加载区域是我的代码:

@IBAction func player1button(sender: AnyObject)
{
    NSUserDefaults.standardUserDefaults().setValue(textfield1.text!, forKey:"firstPlayer")
}

override func viewDidLoad() {
    super.viewDidLoad()

    textfield1.text = (NSUserDefaults.standardUserDefaults().valueForKey("firstPlayer") as! String)
}

我收到此错误:

  

以NSException类型的未捕获异常终止

2 个答案:

答案 0 :(得分:0)

String检索NSUserDefaults时使用stringForKey

NSUserDefaults.standardUserDefaults().stringForKey("firstPlayer")

答案 1 :(得分:0)

首先在您的textField中为EditingDidEnd添加目标,并将textField.text属性保存到NSUserDefault。然后你只需要在下次加载视图时加载它(BTW你应该使用NSUserDefaults方法stringForKey。你只需要使用&#34; ??&#34; nil合并运算符在nil的情况下提供默认值。< / p>

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var textField: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        textField.text = NSUserDefaults().stringForKey("textField") ?? ""
        textField.addTarget(self, action: "editingDidEnd:", forControlEvents: UIControlEvents.EditingDidEnd)
    }
    func editingDidEnd(sender:UITextField){
        NSUserDefaults().setObject(sender.text!, forKey: "textField")
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}