Just to avoid confusion (see comments): Using the = _variable
part of the @synthesize
is not required, nor is the @synthesize
itself required any more.
This effort is only requied, when you want to link the property to a specific instance variable. With earlier Objective-C versions this part of the statement was required to set the name to something different from the property name, so when you want to call the iVar _variable
and the property variable
. The default would be variable
(unlike your question). Without that = something
ivar and property have the same name.
BTW, there is nothing wrong with using the same name for both. But having different names, a leading _
would do, makes it more clear to the programmer whether he/she accesses the ivar directly or though the accessor methods. Sometimes this is of vast importance, especially when not using ARC. Therefore it helps avoiding errors.
With current Objective-C, however, you could omit the @synthesize
statement at all and go with the defaults in that case. The default automatically synthesized instance variable
name would have a leading _
so _variable
in your example.