博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift到底要不要json转对象
阅读量:5821 次
发布时间:2019-06-18

本文共 1790 字,大约阅读时间需要 5 分钟。

hot3.png

哎!吵的头疼! 不上代码都是耍流氓

我个人的答案是:
我们一定要认清楚应用场景, 
看情况!好吧是废话,请看代码
先弄清:
问题1:我们先来了解 什么是引用类型,而结构体是值类型。
问题2:团队用的ObjectMapper 是我们来看看是不是能支持值类型
问题3:我们来理解一下面向协议开发上几个demo
问题1的代码:

//我们先来看看结构体        let demoClass = MyClass()        let demoStruct = MyStruct(name: "赵大财", age: 18)        var demoClassMove = demoClass        var demoStructMove = demoStruct        demoClassMove.name = "赵大财G"        demoStructMove.name = "赵大财G"        print(demoClass.name , demoStruct.name)  //可以看出结构体重的name并没有被改变                        //ok 我们在试试数组+字典 这种最长用的模型        var dictArr = [["name":"字典赵大财1"],["name":"字典赵大财2"]]        var dictArrMove = dictArr        dictArrMove[0]["name"] = "字典赵大财1G"        print("我们看看原来的改了没", dictArr.first!["name"])        print("我们看看现在的", dictArrMove.first!["name"])   //可以看出原来的没有被改变                                //OK 我们先试一试模型        let model1 = MyClass()        model1.name = "模型赵大财1"        let model2 = MyClass()        model2.name = "模型赵大财2"        var modelArr = [model1,model2]        var modelArrMove = modelArr        modelArrMove[0].name = "模型改变"        print("模型原来",   modelArr[0].name)        print("模型改后",   modelArrMove[0].name)   //可以看出原来的没有被改变

demo2:
 

import ObjectMapperstruct Temperature: Mappable {    var name:String = ""    var age:String = ""        init?(map: Map) {    }        mutating func mapping(map: Map) {        name     <- map["name"]        age     <- map["age"]    }}class ViewController: UIViewController {    override func viewDidLoad() {        super.viewDidLoad()                let dict = "{\"name\":\"赵大财\",\"age\":\"100\"}"        let structModel =  Mapper
().map(JSONString: dict) print( structModel?.name ?? "") }}

协议 有点累了  有使劲再写

协议有好多的东西可以写 我们先来简单点的

// 普通协议  //扩展协议 //结构体协议 协议的协议

转载于:https://my.oschina.net/zhaodacai/blog/1800020

你可能感兴趣的文章
监听器(web基础学习笔记二十二)
查看>>
802.11 学习笔记
查看>>
Leetcode-Database-176-Second Highest Salary-Easy(转)
查看>>
构建Docker Compose服务堆栈
查看>>
最小角回归 LARS算法包的用法以及模型参数的选择(R语言 )
查看>>
CentOS7下zip解压和unzip压缩文件
查看>>
Hadoop生态圈-Kafka常用命令总结
查看>>
如何基于Redis Replication设计并实现Redis-replicator?
查看>>
Linux 环境下 PHP 扩展的编译与安装 以 mysqli 为例
查看>>
浮点数内存如何存储的
查看>>
贪吃蛇
查看>>
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>
ios11文件夹
查看>>
【HLOJ 559】好朋友的题
查看>>
Electric Fence(皮克定理)
查看>>
nvl 在mysql中如何处理
查看>>
MyEclipse 快捷键
查看>>