Question

I'm reading Apple's article about Objective-C runtime type encoding strings and some methods have numbers in their type strings.

What do the numbers in v12@0:4@8 mean?

Was it helpful?

Solution

This looks like an encoding of a setter method like this:

- (void) setSomething:(id) anObject

To break it down:

  • v means void return type
  • 12 means the size of the argument frame (12 bytes)
  • @0 means that there is an Objective-C object type at byte offset 0 of the argument frame (this is the implicit self object in each Objective-C method)
  • :4 means that there is a selector at byte offset 4 (this is the implicit _cmd in every method, which is the selector that was used to invoke the method).
  • @8 means that there is another Objective-C object type at byte offset 8.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top