我们县回忆一下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;


作者:包子_boom
链接:https://www.jianshu.com/p/74aaac0e72d7
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

用@property (copy) NSMutableArray *array;会有什么问题?的更多相关文章

  1. 这个写法会出什么问题: @property (copy) NSMutableArray *array;

    因为copy策略拷贝出来的是一个不可变对象,然而却把它当成可变对象使用,很容易造成程序奔溃 //如:-[__NSArrayI removeObjectAtIndex:]: unrecognized s ...

  2. objective c, property, copy

    @property (copy) nsmutablearray *array -copy, as implemented by mutable Cocoa classes, always return ...

  3. 使用asp.net MVC的 HtmlHelper 时遇到的小问题,报错:Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.

    异常信息:Templates can be used only with field access, property access, single-dimension array index, or ...

  4. ios 内存管理与property copy strong weak assign

    - (void)fun{  NSString* str = [[NSString alloc] initWithString:@"string"];  NSLog(@"% ...

  5. [Angular 2] Using a Reducer to Change an Object's Property Inside an Array

    Reducers are also often used for changing a single property inside of other reducers. This lesson sh ...

  6. iOS面试题

    一个区分度很大的面试题 考察一个面试者基础咋样,基本上问一个 @property 就够了: @property 后面可以有哪些修饰符? 线程安全的: atomic,nonatomic 访问权限的 re ...

  7. 李洪强iOS经典面试题135-Objective-C

    可能碰到的iOS笔试面试题(5)--Objective-C 面试笔试都是必考语法知识的.请认真复习和深入研究OC. Objective-C 方法和选择器有何不同?(Difference between ...

  8. 李洪强iOS经典面试题上

    李洪强iOS经典面试题上     1. 风格纠错题 修改完的代码: 修改方法有很多种,现给出一种做示例: // .h文件 // http://weibo.com/luohanchenyilong/ / ...

  9. 招聘一个靠谱的 iOS

    近一年内陆续面试了不少人了,从面试者到面试官的转变让我对 iOS 招聘有了更多的感受.经过了前段时间的一大波面试,我们终于找到了志同道合的小伙伴,面试也暂时告一段落了.总结下面试人过程中的感受,你也可 ...

随机推荐

  1. javascript系列-class6.String类型

    观察淘宝网商品数据   有一个东西叫服务器>>>>js的作用重要作用之一>>>>交互>>>>人机交互(事件)>>&g ...

  2. Vmware Workstation及Centos6.8 的安装

    转自:http://www.mamicode.com/info-detail-1462939.html 一.什么是Vmware Workstation Vmware Workstation是Vmwar ...

  3. POJ 3044单调栈

    题意: 思路: 单调栈 // by SiriusRen #include <stack> #include <cstdio> using namespace std; stac ...

  4. Kotlin 中文文档

    Kotlin 中文文档 标签: Kotlinkotlin中文文档 2017-02-14 18:14 4673人阅读 评论(0) 收藏 举报  分类: kotlin 转载地址:http://www.tu ...

  5. 005.JMS可靠性机制

    1. 消息接收确认 JMS消息只有在被确认之后,才认为已经被成功地消费了.消息的成功消费通常包含三个阶段: 客户接收消息 客户处理消息 消息被确认 在事务性会话中,当一个事务被提交的时候,确认自动发生 ...

  6. yaml文件结构

    VERSION: 1.0.0.1            --指定控制文件schema的版本DATABASE: db_name           --指定连接数据库的名字,如果没有指定,由环境变量$P ...

  7. 玩转图片上传————原生js XMLHttpRequest 结合FormData对象实现的图片上传

    var form=document.getElementById("formId"); var formData=new FormData(form); var oReq = ne ...

  8. map循环遍历

    data.map(function(item){ item.show = false; //将拿到的data循环给每一项添加show属性 });

  9. linux 下的小知识

    Linux中有7种启动级别 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS ...

  10. 【Henu ACM Round#24 B】Gargari and Bishops

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果写过n皇后问题. 肯定都知道 某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i-j的值相同的点. 然后会发现选择的两 ...