@synthesize
isn't required for anything anymore as long as you are using a modern LLVM compiler (the default for over 1 year now).
readwrite
is the default so both properties are read/write. There is NO reason for the @synthesize
line in the posted code.
The only exception to this is if you explicitly provide both the "setter" and "getter" for a readwrite
property. Then the ivar is not automatically generated. For a readonly
property the ivar isn't generated if you supply an explicit "getter".