Swift 3:永久存储数据
一个带有UserDefaults的。
永久数据存储是iOS应用程序开发人员掌握的一项重要技能。 对于大多数应用程序,您将要存储一些有关用户的信息,以便当他们返回应用程序时,即使关闭应用程序后,它们也可以立即获取其数据。 有多种方法可以实现此目的,我们正在研究本节中最简单的方法之一。
因此,我们将在这里使用的是UserDefaults。 您可能会想到,它用来存储有关该特定用户的一些基本信息,但实际上您可以用来在设备上本地存储任何类型的信息。
这也很容易设置。 打开一个新的xcode项目,然后在viewDidLoad()方法中键入以下代码。
我们将字符串(或任何项目)保存到UserDefaults中,该变量设置了一个名为“ key”的变量,并为其提供了一个值“ String”,当我们想取回该值时,我们只需使用“ key”即可。 当您运行该应用程序时,您将在日志中打印出您的字符串。
现在,为了确保已确实保存了数据,让我们再次运行该应用程序,但是这次我们将注释掉保存部分。 这样做完全相同(再次检查日志),这意味着数据将永久存储,并且只要加载应用程序就可以访问数据。
基本上,您可以将任何类型的数据存储到UserDefaults中,例如在对象中,如String,Date,Array,Integer甚至是Boolean。 为此,我们需要创建UserDefaults的全局实例。
再次注释掉存储值部分并运行应用程序,您将发现数据已永久存储。
检索对象时,结果是可选的。 这意味着您可以接受可选性,也可以将其类型转换为非可选类型,然后使用nil合并运算符处理缺失值。 例如:
因此,我们在这里检查的是,我们能够获取名称对象并将其转换为字符串,如果存在,则将其打印出来。 这是检查对象是否存在以及对象是否为某种类型的更安全的方法。 这就是关于UserDefaults的全部内容。
注意: NSUserDefaults
已重命名为UserDefaults
standardUserDefaults()
已重命名为standard
- 在快速closures中返回void和()之间的区别
- 从UIPopover发送委托消息到主UIViewController
- VSTS中的复制文件无法从dSYM文件中运行
- 使用UITableView作为子视图添加自定义的UIViewController
- NSFetchedResultsController加上NSBatchUpdateRequest等于NSMergeConflict。 我做错了什么?
- 有没有人使用ios-sim工具在Simulator中运行.app文件?
- 不兼容指向整数转换的指针,将'id'发送给'int'types的参数
- 我可以在ElCapitan上安装Xcode 8.3吗?
- 汉字编码问题ios