ios - 使用未解析的标识符 userDefaults

标签 ios iphone swift

是什么导致这种情况发生?此错误的两个实例出现在我的 View Controller 的最底部,其中行以“userDefaults”开头。这是我的代码

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")
}
}

最佳答案

让它像这样:

@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")


}

关于ios - 使用未解析的标识符 userDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053225/

相关文章:

iphone - 核心数据插入和获取对多关系实体

ios - 每帧多个视觉请求

ios - 如何分别为每个细节 View Controller 添加背景图像?

ios - 将'NSString * __ strong'传递给不兼容类型'CLLocationDegrees'(又名'double')的参数

IOS 基于页面的应用程序 : How to jump to another page

iPhone - 当用户触摸状态栏时,使 UIWebView subview 滚动到顶部(iOS 4)

ios - 如何在iphone sdk中播放原始pcm数据

android - Titanium 是否会将 iPhone 应用程序转换为 Android?

ios - 与 Firebase 一起创建 DataManger

ios - 如何在 ios swift 中连接低功耗蓝牙?