Jacob Carlson
Jacob Carlson

Reputation: 5

NSUserDefaults not saving data (Swift)

I am trying to save inputs from various text fields using NSUserDefaults:

@IBAction func continue2save(sender: AnyObject) {

    let stringy1: NSString = mcweightTF.text!
    let stringy2: NSString = mcnumTF.text!

    NSUserDefaults.standardUserDefaults().setObject(stringy1, forKey: "savemcw")

    NSUserDefaults.standardUserDefaults().setObject(stringy2, forKey: "savemcn")

    NSUserDefaults.standardUserDefaults().synchronize()


}

@IBAction func calculate(sender: AnyObject) {

    let load1: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("savemcw")

    calcLabel.text = String(load1)

}

However "load1"'s value is always nil. I have attempted almost every configuration of implementing short-term storage through NSUserDefaults, however the value stored is always nil.

Upvotes: 0

Views: 1058

Answers (1)

emresancaktar
emresancaktar

Reputation: 1567

Try this,

 @IBAction func continue2save(sender: AnyObject) {

    let stringy1 = mcweightTF.text!
    let stringy2 = mcnumTF.text!

    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setObject("stringy1", forKey: "savemcw")
    defaults.setObject("stringy2", forKey: "savemcn")
}

@IBAction func calculate(sender: AnyObject) {

    let defaults = NSUserDefaults.standardUserDefaults()
    let stringy1 = defaults.stringForKey("savemcw")
    // Optional Chaining for stringy1
    if let stringy = stringy1 {
        calcLabel.text = stringy
    }
}

Upvotes: 1

Related Questions