项目中做数据模拟的时候,遇到了一个奇怪的bug,归根到底是指针引起的数据异常,本文的重点是使用copy 和不使用copy 观察下 他们的指针地址
开始如图1 所示,将一个对象重复加到数组中,第二个model 没有使用copy,直接加入,导致操作数组中的第二个model的时候会改变数组中第一个model 的值,会导致bug ,为啥?因为他们的指针一样指向的是同一个对象,他们的指针如图1的箭头所示,异常就出在这里!
对象 不能使用nsmutablecopy 会崩溃
如果想避免操作第二个数据影响第一个数据,使用copy一个 对象后加到一个数组 就像你重新创建了一个重新对对象中的属性重新赋值一样,使用了copy 他们的指针地址不一样,彼此互不干扰,解决问题!
- 作者开发经验总结的文章推荐,持续更新学习心得笔记
Runtime 10种用法(没有比这更全的了
成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)
iOS逆向Reveal查看任意app 的界面
JSPatch (实时修复App Store bug)学习(一)
iOS 高级工程师是怎么进阶的(补充版20+点)
扩大按钮(UIButton)点击范围(随意方向扩展哦)
最简单的免证书真机调试(原创)
通过分析微信app,学学如何使用@2x,@3x图片
TableView之MVVM与MVC之对比
使用MVVM减少控制器代码实战(减少56%)
ReactiveCocoa添加cocoapods 配置图文教程及坑总结