From Encapsulating Data in "Programming with Objective-C":
Note: The compiler will automatically synthesize an instance variable in all situations where it’s also synthesizing at least one accessor method. If you implement both a getter and a setter for a readwrite property, or a getter for a readonly property, the compiler will assume that you are taking control over the property implementation and won’t synthesize an instance variable automatically.
Since you don't implement a getter, the instance variable _stockName
is synthesized.
For this it is irrelevant if you use the default or a custom name for the setter.
And declaring the property as "strong" implies __strong
ownership for the
associated instance variable, see "4.1.1. Property declarations"
in the "Clang/ARC" documentation.