▁converted ▁to ▁function ▁calls ▁defined ▁in ▁the ▁Object ive - C ▁runtime ▁library . ▁It ▁is ▁not ▁necessarily ▁known ▁at ▁link ▁time ▁which ▁method ▁will ▁be ▁called ▁because ▁the ▁class ▁of ▁the ▁receiver ▁( the ▁object ▁being ▁sent ▁the ▁message ) ▁need ▁not ▁be ▁known ▁until ▁runtime . ▁ ▁Inst anti ation ▁Once ▁an ▁Object ive - C ▁class ▁is ▁written , ▁it ▁can ▁be ▁instanti ated . ▁This ▁is ▁done ▁by ▁first ▁alloc ating ▁an ▁un initial ized ▁instance ▁of ▁the ▁class ▁( an ▁object ) ▁and ▁then ▁by ▁initial izing ▁it . ▁An ▁object ▁is ▁not ▁fully ▁functional ▁until ▁both ▁steps ▁have ▁been ▁completed . ▁These ▁steps ▁should ▁be ▁accomplished ▁with ▁one ▁line ▁of ▁code ▁so ▁that ▁there ▁is ▁never ▁an ▁allocated ▁object ▁that ▁hasn ' t ▁under g one ▁initialization ▁( and ▁because ▁it ▁is ▁un wise ▁to ▁keep ▁the ▁intermediate ▁result ▁since ▁- init ▁can ▁return ▁a ▁different ▁object ▁than ▁that ▁on ▁which ▁it ▁is ▁called ). ▁ ▁Inst anti ation ▁with ▁the ▁default , ▁no - parameter ▁initial izer : ▁ ▁My Object ▁* foo ▁= ▁[[ My Object ▁alloc ] ▁init ]; ▁ ▁Inst anti ation ▁with ▁a ▁custom ▁initial izer : ▁ ▁My Object ▁* foo ▁= ▁[[ My Object ▁alloc ] ▁initWith String : my String ]; ▁ ▁In ▁the ▁case ▁where ▁no ▁custom ▁initialization ▁is ▁being ▁performed , ▁the ▁" new " ▁method ▁can ▁often ▁be ▁used ▁in ▁place ▁of ▁the ▁alloc - init ▁messages : ▁ ▁My Object ▁* foo ▁= ▁[ My