There are many cases where it simply does not work. All of them are described here as exceptions:
http://useyourloaf.com/blog/2012/08/01/property-synthesis-with-xcode-4-dot-4.html
but the most important, for me, is called
Readwrite property with idle Getter and Setter
This means that if your properties are not public ivars, you need to enable @synthesize. Or, to put it another way, if you make good use of encapsulation and populate these setters and getters, you cannot use this.
Later Note: I am not sure about the conditions indicated here, but I found that there is an auto-synthesized ivar for almost every situation I encounter.
source share