问题:实际开发中的深浅拷贝问题

项目需求.png

项目需求如上图,主要流程:

  1. oneVC push 到twoVC (比如从首页,进入通讯录VC)
  2. twoVC pop到oneVC,并将数据回调到oneVC (进行用户信息修改,之后回到首页,可以看到通讯录中用户信息的修改结果)
  3. oneVC 再次 push 到 twoVC,同时把 twoVC 回调过来的数据又传回去,同时展示 (此时进入通讯录界面,可以看到刚刚修改完的新的数据)

实际开发中应用的场景展示

appDemo.gif

实际使用的场景如上图所示,就是简单的数据回调,push的时候又将数据传过去而已

错误场景重现

errorDemo.gif

错误情况出现:理论上,数据是通过block回调的,回调方法是写在“保存”按钮中,而errorDemo中,点击的是导航条的返回,竟然发现datas的数值也变了


为了避免空手套黄图的嫌疑,先上一下正确的版本,以证清白~

fixDemo.gif

  • 这个问题,表面看上去很简单,其实有一定的技术难点,如果不会lldb 进行debug调试的,可能做起来会有点吃力;
  • 目测估计,只是要有1年的实际开发经验的才做的出来,因为问题的本质不是特别好发现;
  • 友情提示,注意数据源的数据结构~
  • 这道题有一定的技术点,如果在我放出答案前做出来或者有思路,或者发现问题本质的,可以换取github star一枚(因吹斯听~)
  • 保不齐哪天就有同样考点的面试题出现了也说不定,有兴趣的可以当做面试上机题试试~

问题demo

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ImportSource

微服务业务开发三个难题-拆分、事务、查询(上)

微服务架构变得越来越流行了。它是模块化的一种方法。它把一整块应用拆分成一个个服务。它让团队在开发大型复杂的应用时更快地交付出高质量的软件。团队成员们可以轻松地...

68990
来自专栏phodal

自制基于 Snips 和 Snowboy 的智能音箱来保护你的隐私

一步步教你用现有硬件,构建隐私、开源、声控的音箱。 Snips 的团队已经开发了一款开源智能扬声器,它与 Spotify 一起运行。 音箱(或扬声器)专注于音乐...

43790
来自专栏开源项目

【码云周刊第 9 期】前方高能,Discuz 官方携神秘干货归来!

每周为您推送最有价值的开源技术内参! 一周热门资讯回顾 1、GitLab 8.17 发布,社区版也支持 GitLab Pages 了 ? GitLab 8.17...

35360
来自专栏一名叫大蕉的程序员

一场关于逻辑应该写在哪里的争论No.93

先说结论,我支持将逻辑写在 Java 等应用系统中。 观察了一下,传统企业以及绝大部分转型中的企业的 Java 应用中,很神奇的是,他们的开发人员包括我自己以...

55480
来自专栏知晓程序

腾讯官方出品!网站崩溃,用它一键就能修好 | 亲儿子

18240
来自专栏工作随笔

改VB.NET“偷懒”技巧

【开篇胡侃】虽然搞软件开发很多年了,但似乎从没有动手写过什么(很丢脸的感觉),因为,我的精力都献给了我的其他爱好,比如健身、美食、旅游等等,反而把自己最该专注的...

331130
来自专栏架构师之路

feed留,单聊群聊,系统通知,状态同步,到底是推还是拉?

可以理解为一个发布订阅业务,典型业务是微博(朋友圈)。你关注了姚晨的微博,姚晨发布了消息,你的主页能看到她最新发布的消息,这个场景是推送,还是拉取呢?

19030
来自专栏腾讯Bugly的专栏

【Dev Club分享】QQ电话适配iOS10 Callkit框架分享

Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 本期,我们邀请了 ...

65460
来自专栏数据和云

【MySQL 5.7.17】从主从复制到Group Replication

时值双十二之际,MySQL官方献上了大礼,Group Replication(后文简称GR)终于正式宣布GA,组合在MySQL 5.7.17版本内部发布出来。 ...

38180
来自专栏机器人网

收藏:自动化工程师教你如何完整做好一个项目

我们学PLC有时候是为了做项目,做项目需要做些什么步骤呢,学习什么知识点,看看老工程师怎么告诉你…… 一.做一个PLC项目的大体流程如下 ❶、熟悉好现场环境和...

28360

扫码关注云+社区

领取腾讯云代金券