16

我正在阅读 Apple关于 Objective-C 运行时类型编码字符串的文章, 并且某些方法的类型字符串中有数字。

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

4

1 回答 1

25

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

- (void) setSomething:(id) anObject

分解它:

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