我的iOS应用关闭后如何保存var?

时间:2016-12-19 16:30:25

标签: ios swift

总共有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就不会出现空白?

3 个答案:

答案 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这样的数据库。