[__NSArrayI addObjectsFromArray:]: unrecognized selector sent to instance

//detailList 是MutaleArray
但是,data[@"detail_list"]返回的类型NSArray类型。

self.detailList = data[@"detail_list"];

  • (NSMutableArray *)detailList {
    if (_detailList == nil) {
    _detailList = [[NSMutableArray alloc] init];
    }
    return _detailList;
    }

//当再次调用
[self.detailList addObjectsFromArray:pageList];

就会报错
[__NSArrayI addObjectsFromArray:]: unrecognized selector sent to instance

原因:此时的self.detailList已经成为NSAarry类型,而没有这个addObjectsFromArray方法,就会报错。

这个问题,其实可以用,基类指针指向子类对象的来分析

NSMutableArray 是子类
NSArray 是基类

如果以一个基指针指向派生类对象,那么经由该指针只能访问基础类定义的函数

NSArray * pointArray = @[@"a", @"b"];

NSMutableArray *a = [[NSMutableArray alloc] initWithArray:pointArray];

NSArray * pointArr = a;
pointArr 还是只能访问NSArray中的方法不能访问NSMutaleArray中的方法

一般支持向上转型

#######另外已经错误已经很清楚的说明问题了

[__NSArrayI addObjectsFromArray:]: unrecognized selector sent to instance

__NSArrayI addObjectsFromArray

__NSArrayI中是没有addObjectsFromArray方法的

由此可以联想到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,894评论 0 9
  • 先说遇到的问题,如下,数据解析,想要将数据统一放到一个数组当中,调用 运行发现,crash了, 报错: [__N...
    咋了爸爸阅读 4,350评论 7 2
  • 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的...
    琦均煞Sylar阅读 3,265评论 0 0
  • 设计模式是什么? 你知道哪些设计模式,并简要叙述? 设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的...
    不懂后悔阅读 4,233评论 0 53
  • “认识你那天,天热得邪乎,圆圆居然走得好好的就一头栽下去,她后来倒是没太大问题,中暑而已。把走过路过的你给吓个人仰...
    颜小欲阅读 1,585评论 0 1

友情链接更多精彩内容