iOS 对象copy踩坑记

项目中做数据模拟的时候,遇到了一个奇怪的bug,归根到底是指针引起的数据异常,本文的重点是使用copy 和不使用copy 观察下 他们的指针地址

开始如图1 所示,将一个对象重复加到数组中,第二个model 没有使用copy,直接加入,导致操作数组中的第二个model的时候会改变数组中第一个model 的值,会导致bug ,为啥?因为他们的指针一样指向的是同一个对象,他们的指针如图1的箭头所示,异常就出在这里!

图1

对象 不能使用nsmutablecopy 会崩溃

如果想避免操作第二个数据影响第一个数据,使用copy一个 对象后加到一个数组 就像你重新创建了一个重新对对象中的属性重新赋值一样,使用了copy 他们的指针地址不一样,彼此互不干扰,解决问题!

图2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,692评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,225评论 4 61
  • 这一集啊,Barry想让SAVITOR不知道事情,可因为计算错误失忆了。 失忆了的他是多么的快乐啊,忘掉了自己拯救...
    6dd6228193f6阅读 1,105评论 0 0
  • 有许多的情侣都认为自己已经非常,非常的爱对方,甚至胜于爱自己的生命。 但,很抱歉!这并不是爱。 如果一个人连自己都...
    剑雪燕阅读 2,948评论 0 1