当前位置: 首页 > news >正文

保定附近的做网站价格个人网站的设计师

保定附近的做网站价格,个人网站的设计师,株洲发布信息网,扬中百事通Codable 是 Swift 引入的全新的编解码库,使开发者更方便的解析JSON 或 plist 文件。支持枚举、结构体和类。 Codable协议定义 Codable代表一个同时符合 Decodable 和 Encodable 协议的类型,即可解码且可编码的类型。 typealias Codable Decodable &a…

Codable 是 Swift 引入的全新的编解码库,使开发者更方便的解析JSON 或 plist 文件。支持枚举、结构体和类。

Codable协议定义

Codable代表一个同时符合 Decodable 和 Encodable 协议的类型,即可解码且可编码的类型。

typealias Codable = Decodable & Encodablepublic protocol Decodable {public init(from decoder: Decoder) throws
}public protocol Encodable {public func encode(to encoder: Encoder) throws
}

Codable从 Swift 4 开始引入,包含了 Encoder 和 Decoder 协议和他们的两个实现 JSONEncoder、JSONDecoder 和 PropertyListEncoder、PropertyListDecoder。

其中 Codable 及其相关协议放在了标准库中,而具体的 Encoder、Decoder 类放在了 Foundation 框架中。 

JSON 和 模型的相互转换

苹果提供了 JSONEncoder 和 JSONDecoder 这两个结构体来方便得在 JSON 数据和自定义模型之间互相转换。苹果可以利用一些系统私有的机制来实现转换,而不需要通过 OC Runtime

只要让自己的数据类型符合 Codable 协议,就可以用系统提供的编解码器进行编解码。

struct User: Codable {var name: Stringvar age: Int
}

解码(JSON Data -> Model):

let user = JSONDecoder().decode(User.self, from: jsonData)

编码(Model -> JSON Data):

let jsonData = JSONEncoder().encode(user)

字典 和 模型的相互转换

将模型用JSONEncoder的encode转成Data,然后再用JSONSerialization反序列化成Dictionary对象。

struct User: Codable {var name: String?var age: Int?static func convertFromDict(dict: NSDictionary) -> User? {var user: User?do {let data = try JSONSerialization.data(withJSONObject: dict, options: [])let decoder = JSONDecoder()user = try decoder.decode(User.self, from: data)} catch {print(error)}return user}func convertToDict() -> NSDictionary? {var dict: NSDictionary?do {let encoder = JSONEncoder()let data = try encoder.encode(self)dict = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? NSDictionary} catch {print(error)}return dict}
}

http://www.yayakq.cn/news/15290/

相关文章:

  • 一个销售网站的设计 应当是要如何建立一个网站共享
  • 万户网站制作一般通过486
  • 网站开发平台的含义大连网站制作仟亿科技
  • 手机版微网站dw如何发布网页
  • 如何利用网站来提升企业形象中国电子商务研究中心
  • 成都高端网站制作公司linux wordpress 主题
  • 网站seo优化推广外包公司企业邮箱网址
  • 公司做网站大概多少钱施工员证怎么查询网站
  • 兴平住房和城乡建设局门户网站网页设计实训报告前言
  • 注册网站邮箱发送的验证网页无法打开wordpress换行
  • 朝西村小江网站建设百度举报网站
  • 那些网站后台做推广效果好页面设计属于作品登记的哪个类别
  • 网站怎么建立数据库不收费的企业查询网站
  • 网站开发和oa有什么区别雷州市住房和城乡规划建设局网站
  • 彩票网站开发制作需要什么域名对网站seo的影响吗
  • 做韩服的视频网站三字顺口公司名字
  • 网站为什么维护中什么是灰色网站
  • 个人网站开发休闲食品网站模板
  • 在家做十字绣兼职网站wordpress 5 开发
  • 1元涨1000粉丝网站wordpress使用第三方播放器
  • 怎么模板建站电子商务 做网站
  • cms系统做漫画网站企业的外币收入外管局网站做啥
  • 什么网站吸引流量wordpress 推酷
  • 铜陵58同城做网站怎么做自助提卡网站
  • 私人做的不错的网站免费公司网址
  • 开源项目网站怎么做 带视频wordpress文章页获取目录名称
  • 帝国做双语网站wordpress 工业主题
  • 在线房屋设计网站招聘网站开发兼职
  • 个人做网站外包价格如何算电子商务网站建设与维护课程标准
  • 邳州建网站广州公司团建去哪里好