什么是ObjCTypes?

  • 时间:
  • 浏览:1
  • 来源:5分排列3_5分排列3官网

我们 儿都知道消息发送会被转添加objc _ msgSend(id reciever,SEL sel,prarams1,params2,....)。而是我上端的方法会被转添加:

1.Type Encodings

该方法用于说明消息的返回值和参数类型。NSMethodSignature是方法签名,它是用来记录返回值和参数类型的一个对象。看一下与该类相关的方法:

其ObjcTypes而是我 "v@:@"。那究竟是如保得来该字符串呢?我我人太好我们 儿有三种 方法:

2和3一个方法是根据SEL来构造NSMethodSignature,而1方法则是今天的主角,那上端的types究竟是哪些呢?

根据1的方法名称都都要猜想,types是ObjCTypes,它是一个是字符串数组,该数组包含了方法的类型编码。那如保我们 儿用该方法实例化NSMethodSignature的如果究竟如保写types呢?先来举个例子:

这里的 “v@:@”就代表:

其ObjCTypes为:"B@:@",其中:

到此,我们 儿就知道了该如保书写ObjCTypes了。

先看一下消息转发流程:



在forwardInvocation这个 步,你都要要实现一个方法:

再举个例子: