In the section “Declared Properties” of the “The Objective-C Programming Language” in Apple documentation, you can get details about using @property and @synthesize keywords.
The Objective-C declared properties feature provides a simple way to declare and implement an object’s accessor methods. Is like automatic implemented properties in C#, since version 3.0. Is a “sugar” syntax.
There are two parts to a declared property, its declaration and its implementation.
A property declaration begins with the keyword @property.
Note: Until this chapter, the book does not give information about attributes.
You can think of a property declaration as being equivalent to declaring two accessor methods. Thus
is equivalent to:
Property Implementation Directives
You can use the @synthesize and @dynamic directives in @implementation blocks to trigger specific compiler actions. Note that neither is required for any given @property declaration.
You use the @synthesize directive to tell the compiler that it should synthesize the setter and/or getter methods for a property if you do not supply them within the @implementation block. The @synthesize directive also synthesizes an appropriate instance variable if it is not otherwise declared.