copy和strong,错误信息unrecognized selector sent to instance

今天复习tableViewController,写了段添加地区的代码。实现根视图显示市名和人数(detailLabel),点击cell显示下面的县或者区。NavigationBar右上角+点击可以新增内容,也就是编辑模式。代理反方向传值给第一个tableView。

运行后,出现了错误:

2015-07-13 15:04:31.024 Demo_UITableViewC_Maps[897:17540] -[__NSArrayI addObject:]: unrecognized selector sent to instance 0x7fbaca4c13f0

2015-07-13 15:04:31.030 Demo_UITableViewC_Maps[897:17540] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI addObject:]: unrecognized selector sent to instance 0x7fbaca4c13f0'



还有一长段没有贴上去,出问题但是在添加内容的代码上,但传值过程多次检查,都没有发现问题的。在网上查了下,出现这段话,一般是内存方面的原因。找带有addObject的代码,才发现,因为一开始是定义的一个Array,后来改成了MutableArray,但在属性定义的时候,写的是@property (nonatomic,copy)NSMutableArray * areas;将copy改成strong后,完美运行。


这个copy,一般是用在NSString定义的时候,一开始写的是NSArray,用起来也无妨,但对于可变的,这个就错误了。对于copy strong weak 和retain的运用,还是太随性了,内存优化方面,还是要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值