I was reading Apple’s documentation, The Objective-C Programming Language (PDF link). On pg. 18, under The Receiver’s Instance Variables, I saw this.
A method has automatic access to the receiving object’s instance
variables. You don’t need to pass them to the method as parameters.
For example, theprimaryColormethod illustrated above takes no
parameters, yet it can find the primary color forotherRectand return
it. Every method assumes the receiver and its instance variables,
without having to declare them as parameters.This convention simplifies Objective-C source code. It also supports
the way object-oriented programmers think about objects and messages.
Messages are sent to receivers much as letters are delivered to your
home. Message parameters bring information from the outside to the
receiver; they don’t need to bring the receiver to itself.
I am trying to better understand what they are describing; is this like Python’s self parameter, or style?
Objective-C is a strict superset of C.
So Objective-C methods are “just” function pointers, and instances are “just” C structs.
A method has two hidden parameters. The first one is
self(the current instance), the second_cmd(the method’s selector).But what the documentation is describing in page 18 is the access to the class instance variables from a method.
It just says a method of a class can access the instance variables of that class.
It’s pretty basic from an object-oriented perspective, but not from a C perspective.
It also say that you can’t access instance variables from another class instance, unless they are public.