总共有2个viewcontrolers。该应用程序就像在教程中制作的那个人一样。 https://www.youtube.com/watch?v=LrCqXmHenJY&t=40s
为了开始,我做了一个var:
import UIKit
var list = ["Task 1", "Task 2", "Task 3", "Task 4"]
class FirstViewController: UIViewController , UITableViewDelegate, UITableViewDataSource{
我目前的问题是,当我关闭应用时,我创建的ToDo已保存。 我需要做些什么才能保存我的var列表,这样当我下次打开它时,我的ToDo-List就不会出现空白?
答案 0 :(得分:3)
您可以使用UserDefaults
来保存/加载应用程序状态或配置。对于复杂的要求,请使用CoreData
在应用终止前写作/保存
let defaults = UserDefaults.standard
defaults.set(true, forKey: "Enabled")
在应用启动时阅读/加载
let defaults = UserDefaults.standard
let enabled = defaults.bool(forKey: "Enabled")
阅读相关的Apple文档here。
答案 1 :(得分:1)
如果您想要一种简单的方法来存储字符串列表,可以使用UserDefaults
。另一种方法是使用更难以使用的核心数据。它通常用于存储比字符串数组更复杂的数据结构。
要将字符串数组保存到UserDefaults
,请执行以下操作:
UserDefaults.standard.set(list, "myStringArray")
您可以将"myStringArray"
替换为您想要的任何键。
要检索它,请执行以下操作:
list = UserDefaults.standard.stringArray(forKey: "myStringArray")
我建议您在App Delegate中使用此方法保存数组:
func applicationDidEnterBackground(_ application: UIApplication) {
}
有关用户默认值的详细信息,请参阅https://developer.apple.com/reference/foundation/userdefaults
答案 2 :(得分:-1)
你有非常简单的需求。查看NSUserDefaults
(现在在Swift 3中称为UserDefaults
。)
更改时将数据保存到UserDefaults,并在显示视图控制器时将其读回。
正如埃里克在评论中所说,将列表作为视图控制器的实例变量。
在下面的评论中,rmaddy指出应用程序将保存待办事项列表。从一系列项目到更大的阵列或可能更复杂的结构,这可能会增加复杂性。
鉴于此,您可能希望将数据保存到文档目录中的plist文件(非常简单),或者使用NSCoding,如果您有自定义对象而不是"属性列表"可以保存到plist的类型。
这两种解决方案都可以一次读取和写入数据到文件。这可能适用于待办事项列表应用程序。
如果您需要更改较大数据集的某些部分并保持其他部分不变,那么现在是时候考虑像Core Data这样的数据库。