zoukankan      html  css  js  c++  java
  • 用@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;



    作者:包子_boom
    链接:https://www.jianshu.com/p/74aaac0e72d7
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    28图结构的类实现
    27图的拓扑排序
    26最短路径之Floyd算法
    25最短路径之Dijkstra算法
    24最小生成树之Prim算法
    23最小生成树之Kruskal算法
    22-1图的遍历的源代码
    22图的遍历
    21图结构的基本概念
    20树结构的类实现
  • 原文地址:https://www.cnblogs.com/feng9exe/p/8401363.html
Copyright © 2011-2022 走看看