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