zoukankan      html  css  js  c++  java
  • unrecognized selector sent to instance

     

    [iOS] Error Fixed : [__NSArrayI addObject:]: unrecognized selector sent to instance

    当我创建了一个NSMutableArray 对象的时候

    @property (nonatomic,copy)NSMutableArray *children;

    然后通过addObject运行就会报错,[__NSArrayI addObject:]: unrecognized selector sent to instance

    解决方式:

    1、通过理解,我们知道addObject后的array其实是变了,可能内存变大了,你可以理解成这个对象已经不是原来的了,就相当于没有定义一个具体实例对象一样。但通过@synthesize 默认的setter不能保证copy就一定等于mutableCopy;所以我们需要自定义自己的setter方法。

    例如我的定义,在.m中增加我们自己定义的setter方法,让它进行mutableCopy即可。

    -(void)setChildren:(NSMutableArray*) array{

        if(children != nil)

        {

            children = nil;

        }

        children = [array mutableCopy];

    }

    2、把copy变成retain,因为不是copy创建新内存和新赋值的话,原有实例对象就不会“全新”导致unrecognized selector sent to instance。
     
  • 相关阅读:
    魔兽世界祭拜长者
    Mono嵌入C++
    kxb-shell文件操作-kxb
    GAN初步理解
    Pytorch 常用函数方法的理解
    转载:StyleGAN & StyleGAN2 论文解读
    RepVGG
    多目标跟踪,REID, JDE跟踪器解析
    卷积和反卷积详细说明
    FairMOT解析
  • 原文地址:https://www.cnblogs.com/mohe/p/3767481.html
Copyright © 2011-2022 走看看