▁= ▁[ en umer ator ▁next Object ]) ▁!= ▁nil ) ▁{ ▁ ▁NSLog (@" % @ ▁is ▁% i ▁years ▁old .", ▁[ p ▁name ], ▁[ p ▁age ]); ▁} ▁ ▁// ▁Using ▁indexes ▁for ▁( int ▁i ▁= ▁ 0 ; ▁i ▁< ▁[ the Pe ople ▁count ]; ▁i ++) ▁{ ▁ ▁Person ▁* p ▁= ▁[ the Pe ople ▁object AtIndex : i ]; ▁ ▁NSLog (@" % @ ▁is ▁% i ▁years ▁old .", ▁[ p ▁name ], ▁[ p ▁age ]); ▁} ▁ ▁// ▁Using ▁fast ▁enumer ation ▁for ▁( Person ▁* p ▁in ▁the Pe ople ) ▁{ ▁ ▁NSLog (@" % @ ▁is ▁% i ▁years ▁old .", ▁[ p ▁name ], ▁[ p ▁age ]); ▁} ▁ ▁Fast ▁enumer ation ▁generates ▁more ▁efficient ▁code ▁than ▁standard ▁enumer ation ▁because ▁method ▁calls ▁to ▁enumerate ▁over ▁objects ▁are ▁replaced ▁by ▁pointer ▁arithmetic ▁using ▁the ▁NS F ast E numer ation ▁protocol . ▁ ▁Class ▁extensions ▁A ▁class ▁extension ▁has ▁the ▁same ▁syntax ▁as ▁a ▁category ▁declaration ▁with ▁no ▁category ▁name , ▁and ▁the ▁methods ▁and ▁properties ▁declared ▁in ▁it ▁are ▁added ▁directly ▁to ▁the ▁main ▁class . ▁It ▁is ▁mostly ▁used ▁as ▁an ▁alternative ▁to ▁a ▁category ▁to ▁add ▁methods ▁to ▁a ▁class ▁without ▁advert ising ▁them ▁in ▁the ▁public ▁headers , ▁with ▁the ▁advantage ▁that ▁for ▁class ▁extensions ▁the ▁compiler ▁checks ▁that ▁all ▁the ▁priv ately ▁declared ▁methods ▁are ▁actually ▁implemented . ▁ ▁Imp lications ▁for ▁C ocoa ▁development ▁ ▁All ▁Object ive -