Objective c ObjC方法类型编码字符串中的数字是什么?

Objective c ObjC方法类型编码字符串中的数字是什么?,objective-c,objective-c-runtime,method-signature,Objective C,Objective C Runtime,Method Signature,我在看书 苹果的 有些方法的类型字符串中有数字 v12@0:4@8mean?这看起来像是setter方法的编码,如下所示: - (void) setSomething:(id) anObject 要分解它: v表示无效退货类型 12表示参数帧的大小(12字节) @0表示在参数帧的字节偏移量0处有一个Objective-C对象类型(这是每个Objective-C方法中的隐式self对象) :4表示字节偏移量4处有一个选择器(这是每个方法中的隐式\u cmd,它是用于调用该方法的选择器) @8表

我在看书 苹果的 有些方法的类型字符串中有数字


v12@0:4@8
mean?

这看起来像是setter方法的编码,如下所示:

- (void) setSomething:(id) anObject
要分解它:

  • v
    表示无效退货类型
  • 12
    表示参数帧的大小(12字节)
  • @0
    表示在参数帧的字节偏移量0处有一个Objective-C对象类型(这是每个Objective-C方法中的隐式
    self
    对象)
  • :4
    表示字节偏移量4处有一个选择器(这是每个方法中的隐式
    \u cmd
    ,它是用于调用该方法的选择器)
  • @8
    表示字节偏移量8处存在另一个Objective-C对象类型

因此,第一个数字是参数帧大小,其他数字是偏移量…谢谢!未来读者注意:。。12不是论点框架的大小,如果你看到我的问题,你会更清楚