对于NSMutableArray类调用addObject方法实现向可变数组中写入数据是比较常用的,今天我在一个项目中调用此方法时却引起了程序的crash,于是我通过全局断点将crash原因定位到图中浅绿色一行:
其中定义变量如下:
所以此处解决方法有二:
1.重写copyWithZone方法返回新的对象.
2.将copy关键字换成strong关键字实现强引用即可,如下:
再编译时,便不会再有问题了.
本文探讨了使用NSMutableArray时遇到的crash问题,分析了copy关键字不当使用导致的问题,并提供了两种解决方案:重写copyWithZone方法或改为strong引用。
对于NSMutableArray类调用addObject方法实现向可变数组中写入数据是比较常用的,今天我在一个项目中调用此方法时却引起了程序的crash,于是我通过全局断点将crash原因定位到图中浅绿色一行:
其中定义变量如下:
所以此处解决方法有二:
1.重写copyWithZone方法返回新的对象.
2.将copy关键字换成strong关键字实现强引用即可,如下:
再编译时,便不会再有问题了.

被折叠的 条评论
为什么被折叠?