持久数据(Swift 4.1)

Apple提供了两种在应用程序启动之间保留数据的方法:Core Data和NSKeyedArchiver。

NSKeyedArchiver编码(保存)和解码(检索)您要持久保存的所有与NSCoding兼容的类。 尽管NSKeyedArchiver不如Core Data健壮(它速度较慢且手动),但它可以完成所需的持久化数据工作,并且不如Core Data复杂。

Swift 4.1版本中, Apple通过遵循我们的自定义类型展示了一种最简单的数据编码和解码方式。

  1. 可编码-用于编码
  2. 可解码-用于解码
  3. 编码-编码和解码

它也提供对class,struct和enum的支持。我发现Codable有两个很棒的Codable

  1. 制图
  2. 存档和取消存档

制图

假设您以JSON字符串的形式接收到响应(如果它是编码数据,则更好)。 使用该JSON字符串初始化我们的类型会很好,对吗? 让我们写下来:

Swift 4.1在keyDecodingStrategy上具有一个新的keyDecodingStrategy属性,可以根据需要在snake_case和camelCase之间自动转换。 相反的属性keyEncodingStrategy ,也存在于JSONEncoder因此您可以将您的Swift camelCase名称转换回snake_case。

Swift 4.1通过keyDecodingStrategy改进了Codable

Swift 4.0带来了许多很棒的新功能,包括多行字符串,更好的键路径以及许多改进的功能……

www.hackingwithswift.com

考虑我们的模型是否符合Codable ,如下所示:

快乐编码!