ObjC方法类型编码字符串中的数字是多少?

时间:2012-07-15 12:35:58

标签: objective-c objective-c-runtime method-signature

我正在读书 Apple的article about Objective-C runtime type encoding strings 有些方法的类型字符串中有数字。

v12@0:4@8中的数字是什么意思?

1 个答案:

答案 0 :(得分:23)

这看起来像这样的setter方法的编码:

- (void) setSomething:(id) anObject

要打破它:

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