首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >swizzle NSMutableArray addObject:失败

swizzle NSMutableArray addObject:失败
EN

Stack Overflow用户
提问于 2015-11-17 23:51:48
回答 3查看 158关注 0票数 0

我没能说服NSMutableArray addObject。代码如下:

代码语言:javascript
复制
Method ori_Mehtod = class_getInstanceMethod([self class], @selector(addObject:));
Method swi_Method = class_getInstanceMethod([self class], @selector(swi_addObject:));
method_exchangeImplementations(ori_Mehtod, swi_Method);

但是,我找到了一个有用的方法,如下所示:

代码语言:javascript
复制
Method orig = class_getInstanceMethod(NSClassFromString(@"__NSArrayM"), NSSelectorFromString(@"addObject:"));
Method override = class_getInstanceMethod(NSClassFromString(@"__NSArrayM"), @selector(addObject_override:));
method_exchangeImplementations(orig, override);

我猜是自学课出了点问题。但我不知道问题出在哪里。

EN

回答 3

Stack Overflow用户

发布于 2015-11-18 01:19:37

NSMutableArray是一个类簇。实例总是隐藏的类类型(比如您找到的__NSArrayM ),所以忽略NSMutableArray类本身没有什么好处。

票数 2
EN

Stack Overflow用户

发布于 2016-01-28 21:13:51

我想你正在寻找一种混合集群的方法,看看NSObjectSafe,它是一个很小的开源框架,它连接了基础容器的大多数常用功能,如NSMutableArray addObject:

票数 0
EN

Stack Overflow用户

发布于 2016-03-01 11:01:03

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33761284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档