Too many arguments to function call, expected 0, have 2

#import <objc/message.h> 或 #import <objc/runtime.h>

出现了:

Too many arguments to function call, expected 0, have 2

解决办法: tagres -> Build sSettings -> 搜索msg  -> Enable... (YES 改为 NO)   在运行就好了

 

 正常调用:

    [self test];

  [SortViewController hh];

 发送消息:

    objc_msgSend(self,@selector(test));

    objc_msgSend(self,sel_registerName("test"));

    objc_msgSend(objc_getClass("SortViewController"),sel_registerName("hh"));

  

+(void)hh{

    NSLog(@"-----TEST222----" );

}

-(void)test{

    NSLog(@"-----TEST----" );

}

instance对象、class对象、meta-class对象在内存中都存储了一个isa指针。

1 什么是isa?

2 如何发送消息?

3  给instance对象发送消息,instance对象又是如何找到存储在class对象中的实例方法呢?

4 给class对象发送一个消息,class对象又是如何找到存储在meta-class对象中的类方法呢?

5 如何进行方法交换?

6 Imp是什么?

7 如何进行字典转模型?

8 runtime 通过方法交换做数组字典的防护,防越界和插入空值?

偷张神图镇楼:

关于isa ,runtime,等等自己去深挖吧😄

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值