DevonCarlson
DevonCarlson

Reputation: 147

Use of unresolved identifier userDefaults

What is causing this to happen? the two instances of this error apear at the very bottom of my view controller in which the lines start with "userDefaults". here is my code

import UIKit

class SecondViewController : UIViewController,UITextFieldDelegate {

@IBOutlet weak var dateLabel: UILabel!
@IBOutlet weak var datePicker: UIDatePicker!

var aRandomDate = NSDate()


override func viewDidLoad() {
    super.viewDidLoad()

    datePicker.addTarget(self, action: Selector("datePickerChanged:"), forControlEvents: UIControlEvents.ValueChanged)
}

func datePickerChanged(datePicker:UIDatePicker) {
    var dateFormatter = NSDateFormatter()

    dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle

    var strDate = dateFormatter.stringFromDate(datePicker.date)
    dateLabel.text = strDate
}

func textFieldShouldReturn(textField: UITextField) -> Bool {
    textField.resignFirstResponder()

    return true;
}

@IBAction func Save(sender: UIButton) {
    var t = EventSaver(pEventName: "Drinking Coffee", pEventDate: aRandomDate )

    let encodedEventName = NSKeyedArchiver.archivedDataWithRootObject(t.EventName)
    let encodedEventDate = NSKeyedArchiver.archivedDataWithRootObject(t.EventDate)

    var encodedArray: [NSData] = [encodedEventName,]


    userDefaults.setObject(encodedArray, forKey: "Event")
    userDefaults.synchronize()


    println("saved")
}
}

Upvotes: 1

Views: 2926

Answers (3)

Paul van Roosendaal
Paul van Roosendaal

Reputation: 1434

It seems like you haven't declared the constant userDefaults. Add the following line before you set the encodedArray object in the userDefaults:

let userDefaults = NSUserDefaults.standardUserDefaults()

Upvotes: 2

Vincent
Vincent

Reputation: 206

You aren't declaring userDefauts

let userDefaults = NSUserDefaults.standardUserDefaults() 

Upvotes: 1

Andrey Chernukha
Andrey Chernukha

Reputation: 21808

Make it like this:

@IBAction func Save(sender: UIButton) {
var t = EventSaver(pEventName: "Drinking Coffee", pEventDate: aRandomDate )

var userDefaults = NSUserDefaults.standardUserDefaults() 

let encodedEventName = NSKeyedArchiver.archivedDataWithRootObject(t.EventName)
let encodedEventDate = NSKeyedArchiver.archivedDataWithRootObject(t.EventDate)

var encodedArray: [NSData] = [encodedEventName,]


userDefaults.setObject(encodedArray, forKey: "Event")
userDefaults.synchronize()


println("saved")


}

Upvotes: 2

Related Questions