You use self when referencing @property. Usually it will be @ synthesize'd.
You do not use self if you refer to the variable "private". Typically, I use properties for user interface elements, such as UIButtons, or for elements that I want to easily reach from other classes. You can use the @private, @protected modifiers to explicitly provide visibility. However, you cannot use private methods that are not in Objective-C.
The part about nil, release, and dealloc is not related to using the self. You are freeing what you have saved, you are zero, which is auto-dependent.
You should read the Objective-C guide , it is well written and very useful.
source share