我为了避免在循环中重复实例化一个类,结果自己居然踩到了一枚地雷!真是大意了,还要测试时及时发现。
这是我最开始的代码:
Paste_Image.png
这是调试时,contents变量的内存数据
Paste_Image.png
这是我“优化”后的代码,注意,在循环体中去掉了content实例化,直接用外面那个content
Paste_Image.png
然后,下面这幅图就是优化后,contents的结果!!!
Paste_Image.png
问题分析
其实很简单,在swift中,甚至很多编程语言中,class类型都是引用类型,因此content其实都是一个,所以改来该去都是改的那一个,自然最终数组中的元素都会变成最后一个。
比如java里面也是也一样的,这里有一个测试
网友评论