我试图根据记录数据的一天保存数据(例如,用户在2016年7月29日有5个苹果吃)。Swift:如何将数据保存到某个日期
我无法在文档中找到保存数据而不创建日历事件的方法。数据是否必须存储在一个数组中,该数组既包含吃苹果的数量,也包括使用结构体吃苹果的那一天?以及如何访问数据?会通过使用全局变量吗?
我试图根据记录数据的一天保存数据(例如,用户在2016年7月29日有5个苹果吃)。Swift:如何将数据保存到某个日期
我无法在文档中找到保存数据而不创建日历事件的方法。数据是否必须存储在一个数组中,该数组既包含吃苹果的数量,也包括使用结构体吃苹果的那一天?以及如何访问数据?会通过使用全局变量吗?
你可以使用dictionaries:
您可以创建这样一个字典:
var applesPerDay = [NSDate: Int]()
你会将该值设置为这样的日子:
applesPerDay[NSDate()] = 5
你可以打印所有按照时间顺序排序的值如下:
for key in applesPerDay.keys.sort({$0.compare($1) == .OrderedAscending}) {
//you may want to format the date
print("On day \(key) I ate \(applesPerDay[key]!) apples")
}
如果您需要保留数据,你可以使用NSUserDefaults
谢谢你的回答!快速提问; 1)我怎样才能使这些访问所有视图控制器? 2)如果要自动记录数据,这会工作吗?在ViewController的viewDidLoad中,如果我只是在你的答案中添加了代码,那么每一天的信息都是唯一的吗? (假设'5'每天会有所不同) –
1.您可以将它保存在NSUserDefaults中(很多全局变量通常是软件设计不佳的一个症状)2.是的,它是唯一的,但仅适用于每个抽象几分之一秒),而不是每一天。如果你想使它独一无二的话,可以使用[NSDateFormatter](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/)并将日期保存为字符串(使用'[String:String]'字典) – Daniel
1.如果保存许多全局变量是不好的做法,那么还有其他方法吗? (例如,删除超过60天的输入)。最后,您将如何访问某一天的数据如果你想知道在2016年7月29日吃了多少苹果。感谢您的帮助,错误地将您的答案标记为正确 –
对于你看什么,推荐的方法是使用CoreData
。 NSUserDefaults
旨在让您保留相对较小的“配置”数据位。
CoreData
允许您定义一个对象层次结构,然后对存储的数据执行搜索,排序和各种SQL风格的查询。
检查周围的很多教程之一,在大多数情况下,我建议雷Wenderlich的一个,像这样的一个Intro to CoreData
注:我不是,我也没有曾经,隶属于雷Wenderlich :)
这个页面非常有用,谢谢你的回应! –
后续问题; coredata条目全球?如果没有,是否有办法让他们成为全球? –
要保存多长时间?一旦它被保存,你将如何使用它? – Wain