我是靠谱客的博主 朴素洋葱,最近开发中收集的这篇文章主要介绍@property (copy) NSMutableArray *array; 这个写法会出什么问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我们先回忆一下copy属性的作用,一个属性如果标记了copy,当你调用其setter方法时,他会建立一个索引计数为1的对象,然后释放旧对象。

@property (copy) NSMutableArray * a;

NSMutableArray* b = [NSMutableArray array];

a = b;

等同于

@property (strong) NSMutableArray * a;

NSMutableArray* b = [NSMutableArray array];

a = [b copy];

所以你的a根本就是一个NSArray,所以报了

-[__NSArray0 removeAllObjects]: unrecognized selector sent to instance 0x14e14970

未找到实例方法的错误。因为NSArray没有removeAllObjects方法。

正确的写法应该是不用copy属性

@property (strong) NSMutableArray * a;

NSMutableArray* b = [NSMutableArray array];

a =  [b mutableCopy];

这里的b可以是NSMutableArray也可以是NSArray;

最后

以上就是朴素洋葱为你收集整理的@property (copy) NSMutableArray *array; 这个写法会出什么问题的全部内容,希望文章能够帮你解决@property (copy) NSMutableArray *array; 这个写法会出什么问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部