我希望用户通过单击按钮将当前日期(如dd.mm.yyyy)保存到NSUserDefaults
,并将其重新加载到另一个ViewController
以在UITableView
中将其显示为单元格。但它不会工作。我不知道怎么弄的日期正确,但是这是我的尝试:你把NSUserDefaults
如何通过NSUserDefaults将当前日期写入UITableView的Cell?
@IBAction func saveButtonTapped (sender:AnyObject){
let userDefaults = NSUserDefaults.standardUserDefaults()
if var timeList = userDefaults.objectForKey("timeList") as? [NSDate]
{
timeList.append(NSDate())
userDefaults.setObject(timeList, forKey: "timeList")
}
else
{
userDefaults.setObject([NSDate()], forKey: "timeList")
}
userDefaults.synchronize()
}
...
@IBOutlet weak var tableView: UITableView!
var time:NSMutableArray = NSMutableArray();
override func viewDidLoad() {
super.viewDidLoad()
var timecopy = NSMutableArray(array: time)
var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var timeListFromUserDefaults:NSMutableArray? = userDefaults.objectForKey("timeList") as? NSMutableArray
if ((timeListFromUserDefaults) != nil){
time = timeListFromUserDefaults!
}
self.tableView.reloadData()
}
注意我没有明确说明“同步”,因为当你的应用程序在后台运行或者操作系统认为可以这样做时它会自动发生。这是你应该怎么做的。如果你的应用程序崩溃了,用户的默认值将不会被保存...并且可能你需要这个,因为崩溃可能是由于你的默认数据。如果那些被保存的应用程序将继续崩溃,直到用户从设备中删除它。 – 2015-02-07 16:48:48