Какие цифры в строке кодирования типа метода ObjC?

Я читаю статью Apple о строках кодирования типов во время выполнения Objective-C, и некоторые методы имеют числа в строках типов.

Что означают цифры v12@0:4@8 имею в виду?

1 ответ

Решение

Это похоже на кодировку метода установки, подобного этому:

- (void) setSomething:(id) anObject

Чтобы сломать это:

  • v означает тип возврата void
  • 12 означает размер кадра аргумента (12 байт)
  • @0 означает, что существует объектный тип Objective C с байтовым смещением 0 кадра аргумента (это неявный self объект в каждом методе Objective-C)
  • :4 означает, что есть селектор по байтовому смещению 4 (это неявный _cmd в каждом методе, который является селектором, который использовался для вызова метода).
  • @8 означает, что существует другой тип объекта Objective C с байтовым смещением 8.
Другие вопросы по тегам