Properties v.s Instance Variables

Properties and instance variables have a lot in common. In fact, when you create a property, it is “backed” by an instance variable. That means your slider property stores its value in an instance variable named _slider (note the leading underscore). This instance variable was automatically added to the view controller by the Objective-C compiler.

Why? Well, a property needs to store its value somewhere and an instance variable is a good place for that. You can tell the difference between the two because properties are always accessed using self.
This uses the property:

1
self.slider.value = 50;

This uses the backing instance variable directly:

1
_slider.value = 50;

So what is the added benefit of using a property over an instance variable? There are several reasons but mainly instance variables are supposed to be used only by the insides of an object. Other objects aren’t intended to see them or use them.

Properties, however, can be accessed by other objects that are outside of your view controller. You’ll learn much more about this in the next tutorials because “information hiding” is an important topic in object-oriented programming.

By the way, properties are not just for making outlets. It is customary to use properties for the outlets in your storyboard, but as you will see later, you can also make properties for things that are not in the storyboard.

0%