An instance variable is unique to a class. By default, only the class
and subclasses can access it. Therefore, as a fundamental principal of
object-oriented programming, instance variables (ivars) are private—they
are encapsulated by the class.
By contrast, a property is a public value that may or may not
correspond to an instance variable. If you want to make an ivar public,
you'd probably make a corresponding property. But at the same time,
instance variables that you wish to keep private do not have
corresponding properties, and so they cannot be accessed from outside of
the class. You can also have a calculated property that does not
correspond to an ivar.
Without a property, ivars can be kept hidden. In fact, unless an ivar
is declared in a public header it is difficult to even determine that
such an ivar exists.
No comments:
Post a Comment