syn thes ize ▁keyword , ▁which ▁generates ▁get ter ▁( and ▁set ter , ▁if ▁not ▁read - only ) ▁methods ▁according ▁to ▁the ▁property ▁declaration . ▁Alternatively , ▁the ▁get ter ▁and ▁set ter ▁methods ▁must ▁be ▁implemented ▁explicitly , ▁or ▁the ▁@ dynamic ▁keyword ▁can ▁be ▁used ▁to ▁indicate ▁that ▁access or ▁methods ▁will ▁be ▁provided ▁by ▁other ▁means . ▁When ▁compiled ▁using ▁cl ang ▁ 3 . 1 ▁or ▁higher , ▁all ▁properties ▁which ▁are ▁not ▁explicitly ▁declared ▁with ▁@ dynamic , ▁marked ▁readonly ▁or ▁have ▁complete ▁user - im plement ed ▁get ter ▁and ▁set ter ▁will ▁be ▁automatically ▁implicitly ▁@ syn thes ize ' d . ▁ ▁@ implementation ▁Person ▁@ syn thes ize ▁name ; ▁ ▁-( id ) init With Age :( int ) init Age ▁{ ▁ ▁self ▁= ▁[ super ▁init ]; ▁ ▁if ▁( self ) ▁{ ▁ ▁age ▁= ▁init Age ; ▁// ▁NOT E : ▁direct ▁instance ▁variable ▁assignment , ▁not ▁property ▁set ter ▁ ▁} ▁ ▁return ▁self ; ▁} ▁ ▁-( int ) age ▁{ ▁ ▁return ▁age ; ▁} ▁@ end ▁ ▁Properties ▁can ▁be ▁accessed ▁using ▁the ▁traditional ▁message ▁passing ▁syntax , ▁dot ▁notation , ▁or , ▁in ▁Key - Value ▁C oding , ▁by ▁name ▁via ▁the ▁" value ForKey :" /" set Value : for Key :" ▁methods . ▁ ▁Person ▁* a Person ▁= ▁[[ Person ▁alloc ] ▁initWith Age : ▁ 5 3 ]; ▁a Person . name ▁= ▁@" Ste ve ";