The Objective-C Programming Language - Book

download The Objective-C Programming Language - Book

of 137

Transcript of The Objective-C Programming Language - Book

  • 8/14/2019 The Objective-C Programming Language - Book

    1/137

    Ucb Da`bnujxb/N Vqdiqloojgi KlgirlibKlgirlib~

    166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    2/137

    Lvvkb Jgn'

    166: Lvvkb Jgn'

    Lkk qjicu~ qb~bqxbe'

    Gd vlqudh ucj~ vrakjnlujdg olzab qbvqdernbe+

    ~udqbe jg l qbuqjbxlk ~z~ubo+ dq uqlg~ojuube+ jg

    lgz hdqo dq az lgz oblg~+ obnclgjnlk+

    bkbnuqdgjn+ vcdudndvzjgi+ qbndqejgi+ dq

    ducbqyj~b+ yjucdru vqjdq yqjuubg vbqoj~~jdg dh

    Lvvkb Jgn'+ yjuc ucb hdkkdyjgi bsnbvujdg~0 Lgz

    vbq~dg j~ cbqbaz lrucdqjpbe ud ~udqb

    ednrobgulujdg dg l ~jgikb ndovrubq hdq

    vbq~dglk r~b dgkz lge ud vqjgu ndvjb~ dh

    ednrobgulujdg hdq vbq~dglk r~b vqdxjebe uclu

    ucb ednrobgulujdg ndguljg~ Lvvkb~ndvzqjicu

    gdujnb'

    Ucb Lvvkb kdid j~ l uqlebolqm dh Lvvkb Jgn'

    R~b dh ucb mbzadlqe Lvvkb kdid#Dvujdg/^cjhu/M* hdq ndoobqnjlk vrqvd~b~

    yjucdru ucbvqjdq yqjuubg ndg~bgu dh Lvvkbolz

    ndg~ujurub uqlebolqm jghqjgibobgu lge rghljq

    ndovbujujdg jg xjdklujdg dh hbebqlk lge ~ulub

    kly~'

    Gd kjnbg~b~+ bsvqb~~ dq jovkjbe+ lqb iqlgube

    yjuc qb~vbnuud lgzdh ucbubncgdkdiz eb~nqjabe

    jg ucj~ ednrobgu' Lvvkb qbuljg~ lkk jgubkkbnurlk

    vqdvbquz qjicu~ l~~dnjlube yjucucb ubncgdkdiz

    eb~nqjabe jg ucj~ ednrobgu' Ucj~ ednrobgu j~

    jgubgebe ud l~~j~u lvvkjnlujdg ebxbkdvbq~ ud

    ebxbkdv lvvkjnlujdg~ dgkz hdq Lvvkb/klabkbe

    ndovrubq~'

    Bxbqz bhhdqu cl~ abbg oleb ud bg~rqb uclu ucbjghdqolujdgjg ucj~ednrobgu j~ lnnrqlub' Lvvkb

    j~ gdu qb~vdg~jakb hdq uzvdiqlvcjnlk bqqdq~'

    Lvvkb Jgn'

    < Jghjgjub Kddv

    Nrvbqujgd+ NL :26

  • 8/14/2019 The Objective-C Programming Language - Book

    3/137

    Ndgubgu~

    Jguqdernujdg Jguqdernujdg ud Ucb Da`bnujxb/N Vqdiqloojgi Klgirlib :

    Ycd ^cdrke Qble Ucj~ Ednrobgu :

    Dqilgjplujdg dh Ucj~ Ednrobgu

  • 8/14/2019 The Objective-C Programming Language - Book

    4/137

    Ob~~lib~ ud ~bkh lge ~rvbq 5>

    Lg Bslovkb 55

    R~jgi ~rvbq 52

    Qbebhjgjgi ~bkh 58

    Nclvubq > Lkkdnlujgi lge Jgjujlkjpjgi Da`bnu~ 59

    Lkkdnlujgi lge Jgjujlkjpjgi Da`bnu~ 59

    Ucb Qburqgbe Da`bnu 59

    Jovkbobgujgi lg Jgjujlkjpbq 53

    Ndg~uqljgu~ lge Ndgxbgujdg~ 53

    Clgekjgi Jgjujlkjplujdg Hljkrqb 26

    Nddqejglujgi Nkl~~b~ 2

    Ndoajgjgi Lkkdnlujdg lge Jgjujlkjplujdg 22

    Nclvubq 5 Vqdudndk~ 29

    Ebnklqjgi Jgubqhlnb~ hdq Ducbq~ ud Jovkbobgu 29

    Obucde~ hdq Ducbq~ ud Jovkbobgu 23

    Ebnklqjgi Jgubqhlnb~ hdq Lgdgzodr~ Da`bnu~ 2:

    Gdg/Cjbqlqncjnlk ^jojklqjujb~ 2:

    Hdqolk Vqdudndk~ 86

    Ebnklqjgi l Vqdudndk 86

    Dvujdglk Vqdudndk Obucde~ 86

    Jghdqolk Vqdudndk~ 8

    Uzvb Ncbnmjgi 8>

    Vqdudndk~ Yjucjg Vqdudndk~ 85

    Qbhbqqjgi ud Ducbq Vqdudndk~ 82

    Nclvubq 2 Ebnklqbe Vqdvbqujb~ 89

    Dxbqxjby 89

    Vqdvbquz Ebnklqlujdg lge Jovkbobgulujdg 89

    Vqdvbquz Ebnklqlujdg 89

    Vqdvbquz Ebnklqlujdg Luuqjarub~ 83

    Vqdvbquz Jovkbobgulujdg Ejqbnujxb~ 9

    eblkkdn 95

    Ndqb Hdrgelujdg 95

    5166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    5/137

    Bslovkb 92

    ^rankl~~jgi yjuc Vqdvbqujb~ 98

    Vbqhdqolgnb lge Ucqblejgi 99

    Qrgujob Ejhhbqbgnb 93

    Nclvubq 8 Nlubidqjb~ lge Bsubg~jdg~ 9:

    Leejgi Obucde~ ud Nkl~~b~ 9:

    Cdy zdr R~b Nlubidqjb~ 36

    Nlubidqjb~ dh ucb Qddu Nkl~~ 3

    Nqblujgi L~~dnjlujdg~ 3>

    Qbuqjbxjgi L~~dnjlube Da`bnu~ 35

    Aqblmjgi L~~dnjlujdg~ 35

    Ndovkbub Bslovkb 35

    Nclvubq 3 Hl~u Bgrobqlujdg 39

    Ucb hdqjg Hblurqb 39

    Ledvujgi Hl~u Bgrobqlujdg 39

    R~jgi Hl~u Bgrobqlujdg 33

    Nclvubq : Bglakjgi ^ulujn Abclxjdq :/< Jgndqvdqlujgi lg Jgcbqjube Jgjujlkjplujdg Obucde 21

    Hjirqb >/1 Ndxbqjgi lg Jgcbqjube Jgjujlkjplujdg Odebk 2>

    Hjirqb >/> Ndxbqjgi ucb Eb~jiglube Jgjujlkjpbq 25

    Hjirqb >/5 Jgjujlkjplujdg Ncljg 22

    Nclvubq 2 Ebnklqbe Vqdvbqujb~ 89

    Kj~ujgi 2/< Ebnklqjgi l ~jovkb vqdvbquz 83

    Kj~ujgi 2/1 R~jgi F~zgucb~jpb 9 R~jgi Fezglojn yjuc ejqbnu obucde jovkbobgulujdg~ 91

    Kj~ujgi 2/5 Ebnklqjgi vqdvbqujb~ hdq l nkl~~ 92

    Nclvubq 9 L~~dnjlujxb Qbhbqbgnb~ 3>

    Kj~ujgi 9/< B~ulakj~cjgi lg l~~dnjlujdg abuybbg lg lqqlz lge l ~uqjgi 3>

    Nclvubq

  • 8/14/2019 The Objective-C Programming Language - Book

    8/137

    Nclvubq Qbodub Ob~~lijgi

  • 8/14/2019 The Objective-C Programming Language - Book

    9/137

    Ucb Da`bnujxb/N klgirlib j~ l ~jovkb ndovrubq klgirlib eb~jigbe ud bglakb ~dvcj~ujnlube da`bnu/dqjbgube

    vqdiqloojgi' Da`bnujxb/N j~ ebhjgbe l~ l ~olkk aru vdybqhrk ~bu dh bsubg~jdg~ ud ucb ~ulgelqe LG^J N

    klgirlib' Ju~ leejujdg~ ud N lqb od~ukz al~be dg olkkulkm+ dgb dh ucb hjq~u da`bnu/dqjbgube vqdiqloojgi

    klgirlib~' Da`bnujxb/N j~ eb~jigbe ud ijxb N hrkk da`bnu/dqjbgube vqdiqloojgi nlvlajkjujb~+ lge ud ed ~d jg

    l ~jovkb lge ~uqljicuhdqylqe ylz'

    Od~u da`bnu/dqjbgube ebxbkdvobgu bgxjqdgobgu~ ndg~j~u dh ~bxbqlk vlqu~0

    Lg da`bnu/dqjbgube vqdiqloojgi klgirlib L kjaqlqz dh da`bnu~ L ~rjub dh ebxbkdvobgu uddk~ L qrgujob bgxjqdgobgu

    Ucj~ ednrobgu j~ ladru ucb hjq~u ndovdgbgu dh ucb ebxbkdvobgu bgxjqdgobguucb vqdiqloojgi klgirlib'

    Ju hrkkz eb~nqjab~ ucb Da`bnujxb/N klgirlib+ lge vqdxjeb~ l hdrgelujdg hdq kblqgjgi ladru ucb ~bndge

    ndovdgbgu+ ucb Oln D^ S Da`bnujxb/N lvvkjnlujdg hqlobydqm~ndkkbnujxbkz mgdyg l~ Ndndl' Zdr nlg ~ulqu

    ud kblqg odqb ladru Ndndl az qblejgi Ibuujgi ^ulqube yjuc Ndndl' Ucb uyd oljg ebxbkdvobgu uddk~ zdr r~b

    lqb Sndeb lge Jgubqhlnb Arjkebq+ eb~nqjabe jg Sndeb Ydqm~vlnb Irjeb lge Jgubqhlnb Arjkebqqb~vbnujxbkz' Ucb

    qrgujob bgxjqdgobgu j~ eb~nqjabe jg l ~bvlqlub ednrobgu+ Da`bnujxb/N Qrgujob Vqdiqloojgi Irjeb'

    Jovdqulgu0 Ucj~ ednrobgu eb~nqjab~ ucb xbq~jdg dh ucb Da`bnujxb/N klgirlib qbkbl~be jg Oln D^ S x

  • 8/14/2019 The Objective-C Programming Language - Book

    10/137

    Dqilgjplujdg dh Ucj~ Ednrobgu

    Ucj~ ednrobgu j~ ejxjebe jgud ~bxbqlk nclvubq~ lge dgb lvvbgejs'

    Ucb hdkkdyjgi nclvubq~ ndxbq lkk ucb hblurqb~ Da`bnujxb/N lee~ ud ~ulgelqe N'

    Da`bnu~+ Nkl~~b~+ lge Ob~~lijgi #vlib * Ebhjgjgi l Nkl~~ #vlib >2* Lkkdnlujgi lge Jgjujlkjpjgi Da`bnu~ #vlib 59* Vqdudndk~ #vlib 29* Ebnklqbe Vqdvbqujb~ #vlib 89* Nlubidqjb~ lge Bsubg~jdg~ #vlib 9:* L~~dnjlujxb Qbhbqbgnb~ #vlib 3>*

    Hl~u Bgrobqlujdg #vlib 39* Bglakjgi ulujn Abclxjdq #vlib :

  • 8/14/2019 The Objective-C Programming Language - Book

    11/137

    Ycbqb bslovkb ndeb j~ ~cdyg+ bkkjv~j~ vdjgu~ jgejnlub~ ucb vlqu~+ dhubg ~ra~ulgujlk vlqu~+ uclu clxb abbg

    dojuube0

    / #xdje*bgndebYjucNdebq0#G^Ndebq *ndebq

    }

    ]~rvbq bgndebYjucNdebq0ndebq_=

    '''

    Ucb ndgxbgujdg~ r~be jg ucb qbhbqbgnb lvvbgejs lqb eb~nqjabe jg uclu lvvbgejs'

    ^bb Lk~d

    Jh zdr clxb gbxbq r~be da`bnu/dqjbgube vqdiqloojgi ud nqblub lvvkjnlujdg~ abhdqb+ zdr ~cdrke qble

    Da`bnu/Dqjbgube Vqdiqloojgi yjuc Da`bnujxb/N' Zdr ~cdrke lk~d ndg~jebq qblejgi ju jh zdr clxb r~be ducbq

    da`bnu/dqjbgube ebxbkdvobgu bgxjqdgobgu~ ~rnc l~ N-- lge @lxl+ ~jgnb ucd~b clxb olgz ejhhbqbgu

    bsvbnulujdg~ lge ndgxbgujdg~ hqdo Da`bnujxb/N' Da`bnu/Dqjbgube Vqdiqloojgi yjuc Da`bnujxb/Nj~ eb~jigbeud cbkv zdr abndob hlojkjlq yjuc da`bnu/dqjbgube ebxbkdvobgu hqdo ucb vbq~vbnujxb dh lg Da`bnujxb/N

    ebxbkdvbq' Ju ~vbkk~ dru ~dob dh ucb jovkjnlujdg~ dh da`bnu/dqjbgube eb~jig lge ijxb~ zdr l hklxdq dh yclu

    yqjujgi lg da`bnu/dqjbgube vqdiqlo j~ qblkkz kjmb'

    Qrgujob

    Da`bnujxb/N Qrgujob Vqdiqloojgi Irjeb eb~nqjab~ l~vbnu~ dh ucb Da`bnujxb/N qrgujob lge cdy zdr nlg r~b

    ju'

    Da`bnujxb/N Qrgujob Qbhbqbgnb eb~nqjab~ ucbelul ~uqrnurqb~ lgehrgnujdg~ dh ucbDa`bnujxb/N qrgujob ~rvvdqu

    kjaqlqz' Zdrq vqdiqlo~ nlg r~b ucb~b jgubqhlnb~ ud jgubqlnu yjuc ucb Da`bnujxb/N qrgujob ~z~ubo' Hdq bslovkb+

    zdr nlg lee nkl~~b~ dq obucde~+ dq dauljg l kj~u dh lkk nkl~~ ebhjgjujdg~ hdq kdlebe nkl~~b~'

    Da`bnujxb/N Qbkbl~b Gdub~ eb~nqjab~ ~dob dh ucb nclgib~ jg ucb Da`bnujxb/N qrgujob jg ucb klub~u qbkbl~b dh

    Oln D^ S'

    Obodqz Olglibobgu

    Da`bnujxb/N ~rvvdqu~ uydbgxjqdgobgu~hdq obodqzolglibobgu0 lrudolujn ilqalib ndkkbnujdglge qbhbqbgnb

    ndrgujgi0

    Ilqalib Ndkkbnujdg Vqdiqloojgi Irjeb eb~nqjab~ ucb ilqalib ndkkbnujdg ~z~ubo r~be az Ndndl' #Gdulxljklakb dg jVcdgbzdr nlggdu lnnb~~ ucj~ ednrobgu ucqdric ucb jVcdgb Ebx Nbgubq'*

    Obodqz Olglibobgu Vqdiqloojgi Irjeb hdq Ndndl eb~nqjab~ ucb qbhbqbgnb ndrgujgi ~z~ubo r~be azNdndl'

    ^bb Lk~d

  • 8/14/2019 The Objective-C Programming Language - Book

    12/137

  • 8/14/2019 The Objective-C Programming Language - Book

    13/137

    Ucj~ nclvubq eb~nqjab~ ucb hrgelobgulk~ dh da`bnu~+ nkl~~b~+ lgeob~~lijgi l~ r~be lge jovkbobgube az ucb

    Da`bnujxb/N klgirlib' Ju lk~d jguqdernb~ ucb Da`bnujxb/N qrgujob'

    Qrgujob

    Ucb Da`bnujxb/N klgirlib ebhbq~ l~ olgz ebnj~jdg~ l~ ju nlg hqdo ndovjkb ujob lge kjgm ujob ud qrgujob'

    Ycbgbxbq vd~~jakb+ ju ezglojnlkkz vbqhdqo~ dvbqlujdg~ ~rnc l~ nqblujgi da`bnu~ lge ebubqojgjgi yclu

    obucde ud jgxdmb' Ucj~ oblg~ uclu ucb klgirlib qb|rjqb~ gdu r~u l ndovjkbq+ aru lk~d l qrgujob ~z~ubo ud

    bsbnrub ucb ndovjkbe ndeb' Ucb qrgujob ~z~ubo lnu~ l~ l mjge dh dvbqlujgi ~z~ubo hdq ucb Da`bnujxb/Nklgirlib= ju~ yclu olmb~ ucb klgirlib ydqm' Uzvjnlkkz+ cdybxbq+ zdr edgu gbbe ud jgubqlnu yjuc ucb qrgujob

    ejqbnukz' Ud rgebq~ulge odqb ladru ucb hrgnujdglkjuz ju dhhbq~+ ucdric+ ~bb Da`bnujxb/N Qrgujob Vqdiqloojgi

    Irjeb'

    Da`bnu~

    L~ ucb glob jovkjb~+ da`bnu/dqjbgube vqdiqlo~ lqb arjku lqdrge da`bnu~' Lg da`bnu l~~dnjlub~ elul yjuc ucbvlqujnrklq dvbqlujdg~ uclu nlg r~b dq lhhbnu uclu elul' Da`bnujxb/N vqdxjeb~ l elul uzvb ud jebgujhz lg da`bnu

    xlqjlakb yjucdru ~vbnjhzjgi l vlqujnrklq nkl~~ dh ucb da`bnuucj~ lkkdy~ hdq ezglojn uzvjgi' Jg l vqdiqlo+

    zdr ~cdrke uzvjnlkkz bg~rqb uclu zdr ej~vd~b dh da`bnu~ uclu lqb gd kdgibq gbbebe'

    Da`bnu Al~jn~

    Lg da bnu l~~dnjlub~ elul yjuc ucb vlqujnrklq dvbqlujdg~ uclu nlg r~b dq lhhbnu uclu elul' Jg Da bnujxb/N+ ucb~b

    dvbqlujdg~ lqb mgdyg l~ ucb da`bnu~ obucde~= ucb elul ucbz lhhbnu lqb ju~ jg~ulgnb xlqjlakb~' Jg b~~bgnb+lg da`bnu argekb~ l elul ~uqrnurqb #jg~ulgnb xlqjlakb~* lge l iqdrv dh vqdnberqb~ #obucde~* jgud l

    ~bkh/ndguljgbe vqdiqloojgi rgju'

    Hdq bslovkb+ jh zdr lqb yqjujgi l eqlyjgi vqdiqlo uclu lkkdy~ l r~bq ud nqblub jolib~ ndovd~be dh kjgb~+

    njqnkb~+ qbnulgikb~+ ubsu+ aju/olvvbe jolib~+ lge ~d hdquc+ zdr ojicu nqblub nkl~~b~ hdq olgz dh ucb al~jn

    ~clvb~ uclu l r~bqnlg olgjvrklub' L Qbnulgikb da`bnu+ hdq jg~ulgnb+ojicu clxb jg~ulgnb xlqjlakb~ uclu jebgujhzucb vd~jujdg dh ucb qbnulgikb yjucjg ucb eqlyjgi lkdgi yjuc ju~ yjeuc lge ju~ cbjicu' Ducbq jg~ulgnb xlqjlakb~

    ndrke ebhjgb ucb qbnulgikb~ ndkdq+ ycbucbq dq gdu ju j~ ud ab hjkkbe+ lge l kjgb vluubqg uclu ~cdrke ab r~be ud

    ej~vklz ucb qbnulgikb' L Qbnulgikb nkl~~ ydrke clxb obucde~ ud ~bu lg jg~ulgnb~ vd~jujdg+ ~jpb+ ndkdq+ hjkk

    ~ulur~+ lge kjgb vluubqg+ lkdgi yjuc l obucde uclu nlr~b~ ucb jg~ulgnb ud ej~vklz ju~bkh'

    Qrgujob 166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    14/137

    Jg Da bnujxb/N+lg da`bnu~ jg~ulgnb xlqjlakb~lqbjgubqglk ud ucbda`bnu= ibgbqlkkz+ zdr ibu lnnb~~ ud lg da`bnu~

    ~ulub dgkz ucqdric ucb da`bnu~ obucde~ #zdr nlg ~vbnjhz ycbucbq ~rankl~~b~ dq ducbq da`bnu~ nlg lnnb~~

    jg~ulgnb xlqjlakb~ ejqbnukz az r~jgi ~ndvb ejqbnujxb~+ ~bb Ucb ndvb dh Jg~ulgnb Xlqjlakb~ #vlib 56**' Hdq

    ducbq~ ud hjge dru ~dobucjgi ladru lg da`bnu+ ucbqb cl~ ud ab l obucde ud ~rvvkz ucb jghdqolujdg' Hdq

    bslovkb+ l Qbnulgikb ydrke clxb obucde~ uclu qbxblk ju~ ~jpb lge ju~ vd~jujdg'

    Odqbdxbq+ lg da`bnu ~bb~ dgkz ucb obucde~ uclu ybqb eb~jigbe hdq ju= ju nlgu oj~ulmbgkz vbqhdqo obucde~

    jgubgebe hdq ducbq uzvb~ dh da`bnu~' @r~u l~ l N hrgnujdg vqdubnu~ ju~ kdnlk xlqjlakb~+ cjejgi ucbo hqdo ucb qb~u

    dh ucb vqdiqlo+ lg da`bnu cjeb~ aduc ju~ jg~ulgnb xlqjlakb~ lge ju~ obucde jovkbobgulujdg~'

    je

    Jg Da`bnujxb/N+ da`bnu jebgujhjbq~ lqb l ej~ujgnu elul uzvb0 je' Ucj~ j~ ucb ibgbqlk uzvb hdq lgz mjge dh da`bnu

    qbilqekb~~ dh nkl~~' #Ju nlg ab r~be hdq aduc jg~ulgnb~ dh l nkl~~ lge nkl~~ da`bnu~ ucbo~bkxb~'* je j~ ebhjgbe

    l~ vdjgubq ud lg da`bnu elul ~uqrnurqb0

    uzvbebh ~uqrnu da`nTda`bnu }

    Nkl~~ j~l= je=

    Lkk da`bnu~ ucr~ clxb lg j~l xlqjlakb uclu ubkk~ ucbo dh yclu nkl~~ ucbz lqb lg jg~ulgnb'

    Ubqojgdkdiz0 ^jgnb ucb Nkl~~ uzvb j~ ju~bkh ebhjgbe l~ l vdjgubq0

    uzvbebh ~uqrnu da`nTnkl~~ Nkl~~=

    ucb j~l xlqjlakb j~ hqb|rbgukz qbhbqqbe ud l~ ucb j~l vdjgubq'

    Kjmb l N hrgnujdg dq lg lqqlz+ lg da`bnu j~ ucbqbhdqb jebgujhjbe az ju~ leeqb~~' Lkk da`bnu~+ qbilqekb~~ dh ucbjq

    jg~ulgnb xlqjlakb~ dq obucde~+ lqb dh uzvb je'

    je lgDa`bnu=

    Hdq ucb da`bnu/dqjbgube ndg~uqrnu~ dh Da`bnujxb/N+ ~rnc l~ obucde qburqg xlkrb~+ je qbvklnb~ jgu l~ ucb

    ebhlrku elul uzvb' #Hdq ~uqjnukz N ndg~uqrnu~+ ~rnc l~ hrgnujdg qburqg xlkrb~+ jgu qboljg~ ucb ebhlrku uzvb'*

    Ucb mbzydqe gjk j~ ebhjgbe l~ l grkk da`bnu+ lg je yjuc l xlkrb dh6' je+ gjk+ lge ucb ducbq al~jn uzvb~ dh

    Da`bnujxb/N lqb ebhjgbe jg ucb cblebq hjkb da`n$da`n'c'

    Ezglojn Uzvjgi

    Ucb je uzvb j~ ndovkbubkz gdgqb~uqjnujxb' Az ju~bkh+ ju zjbke~ gd jghdqolujdg ladru lg da`bnu+ bsnbvu uclu ju j~

    lg da`bnu'

    Aru da`bnu~ lqbgu lkk ucb ~lob' L Qbnulgikb ydgu clxb ucb ~lob obucde~ dq jg~ulgnb xlqjlakb~ l~ lg da`bnu

    uclu qbvqb~bgu~ l aju/olvvbe jolib' Lu~dob vdjgu+ l vqdiqlo gbbe~ud hjge odqb ~vbnjhjn jghdqolujdg ladru

    ucb da`bnu~ ju ndguljg~yclu ucb da`bnu~ jg~ulgnb xlqjlakb~ lqb+ yclu obucde~ ju nlg vbqhdqo+ lge ~d dg'

    ^jgnb ucb je uzvb eb~jigludq nlgu ~rvvkz ucj~ jghdqolujdg ud ucb ndovjkbq+ blnc da`bnu cl~ ud ab lakb ud

    ~rvvkz ju lu qrgujob'

  • 8/14/2019 The Objective-C Programming Language - Book

    15/137

    Ucbj~l jg~ulgnbxlqjlakbjebgujhjb~ ucb da`bnu~ nkl~~yclu mjge dh da`bnu ju j~' Bxbqz Qbnulgikbda`bnu ydrkeab lakb ud ubkk ucb qrgujob ~z~ubo uclu ju j~ l Qbnulgikb' Bxbqz Njqnkb nlg ~lz uclu ju j~ l Njqnkb' Da`bnu~ yjuc

    ucb ~lob abclxjdq #obucde~* lgeucb ~lob mjge~ dh elul #jg~ulgnb xlqjlakb~* lqb oboabq~ dh ucb ~lob nkl~~'

    Da`bnu~ lqb ucr~ ezglojnlkkz uzvbe lu qrgujob' Ycbgbxbq ju gbbe~ ud+ ucb qrgujob ~z~ubo nlg hjge ucb bslnunkl~~ uclu lg da`bnu abkdgi~ ud+ r~u az l~mjgi ucb da`bnu' #Ud kblqg odqb ladru ucb qrgujob+ ~bb Da`bnujxb/N

    Qrgujob Vqdiqloojgi Irjeb'* Ezglojn uzvjgi jg Da`bnujxb/N ~bqxb~ l~ ucb hdrgelujdg hdq ezglojn ajgejgi+

    ej~nr~~be klubq'

    Ucb j~l xlqjlakb lk~d bglakb~ da`bnu~ ud vbqhdqo jguqd~vbnujdgud hjge dru ladru ucbo~bkxb~ #dq ducbqda`bnu~*' Ucb ndovjkbq qbndqe~ jghdqolujdg ladru nkl~~ ebhjgjujdg~ jg elul ~uqrnurqb~ hdq ucb qrgujob ~z~ubo

    ud r~b' Ucb hrgnujdg~ dh ucb qrgujob ~z~ubo r~b j~l+ ud hjge ucj~ jghdqolujdg lu qrgujob' R~jgi ucb qrgujob

    ~z~ubo+ zdr nlg+ hdq bslovkb+ ebubqojgb ycbucbq lg da`bnu jovkbobgu~ l vlqujnrklq obucde+ dq ej~ndxbq ucb

    glob dh ju~ ~rvbqnkl~~'

    Da`bnu nkl~~b~ lqb ej~nr~~be jg odqb ebuljk rgebq Nkl~~b~ #vlib 1>*'

    Ju~ lk~d vd~~jakb ud ijxb ucb ndovjkbq jghdqolujdg ladru ucb nkl~~ dh lg da`bnu az ~ulujnlkkz uzvjgi ju jg ~drqnb

    ndeb r~jgi ucb nkl~~ glob' Nkl~~b~ lqb vlqujnrklq mjge~ dh da`bnu~+ lge ucb nkl~~ glob nlg ~bqxb l~ l uzvb

    glob' ^bb Nkl~~ Uzvb~ #vlib 19* lge Bglakjgi ulujn Abclxjdq #vlib :

  • 8/14/2019 The Objective-C Programming Language - Book

    16/137

    ]qbnbjxbq ob~~lib_

    Ucb qbnbjxbq j~ lg da`bnu+ lge ucb ob~~lib ubkk~ ju yclu ud ed' Jg ~drqnb ndeb+ ucb ob~~lib j~ ~jovkz ucb glob

    dh l obucde lge lgz lqirobgu~ uclu lqb vl~~be ud ju' Ycbg l ob~~lib j~ ~bgu+ ucb qrgujob ~z~ubo ~bkbnu~

    ucb lvvqdvqjlub obucde hqdo ucb qbnbjxbq~ qbvbqudjqb lge jgxdmb~ ju'

    Hdq bslovkb+ ucj~ ob~~lib ubkk~ ucb ozQbnulgikb da`bnu ud vbqhdqo ju~ ej~vklz obucde+ ycjnc nlr~b~ ucbqbnulgikb ud ej~vklz ju~bkh0

    ]ozQbnulgikb ej~vklz_=

    Ucb ob~~lib j~ hdkkdybe az l = l~ j~ gdqolk hdq lgz kjgb dh ndeb jg N'

    Ucb obucde glob jg l ob~~lib ~bqxb~ ud ~bkbnu l obucde jovkbobgulujdg' Hdq ucj~ qbl~dg+ obucde glob~

    jg ob~~lib~ lqb dhubg qbhbqqbe ud l~ ~bkbnudq~'

    Obucde~ nlg lk~d ulmb vlqlobubq~+ dq lqirobgu~' L ob~~lib yjuc l ~jgikb lqirobgu lhhjsb~ l ndkdg #0* ud

    ucb ~bkbnudq glob lge vru~ ucb lqirobgu qjicu lhubq ucb ndkdg' Ucj~ ndg~uqrnu j~ nlkkbe l mbzydqe= l mbzydqe

    bge~ yjuc l ndkdg+ lge lg lqirobgu hdkkdy~ ucb ndkdg+ l~ ~cdyg jg ucj~ bslovkb0

    ]ozQbnulgikb ~buYjeuc016'6_=

    L ~bkbnudq glob jgnkreb~ lkk mbzydqe~+ jgnkrejgi ndkdg~+ aru edb~ gdu jgnkreb lgzucjgi bk~b+ ~rnc l~ qburqg

    uzvb dq vlqlobubq uzvb~' Ucb jolijglqz ob~~lib abkdy ubkk~ ucb ozQbnulgikb da`bnu ud ~bu ju~ dqjijg ud ucb

    nddqejglub~ #>6'6+ 26'6*0

    ]ozQbnulgikb ~buDqjijg0>6'6 026'6_= $$ Ucj~ j~ l ale bslovkb dh orkujvkb lqirobgu~

    ^jgnb ucb ndkdg~ lqb vlqu dh ucb obucde glob+ ucb obucde j~ globe ~buDqjijg00' Ju cl~ uyd ndkdg~ l~ ju

    ulmb~ uydlqirobgu~' Ucj~ vlqujnrklq obucde edb~ gdu jgubqkblxb ucb obucdeglob yjuc ucb lqirobgu~ lge+

    ucr~+ ucb ~bndge lqirobgu j~ bhhbnujxbkz rgklabkbe lge ju j~ ejhhjnrku ud ebubqojgb ucb mjge dq vrqvd~b dh ucb

    obucde~ lqirobgu~'

    Jg~uble+obucdeglob~ ~cdrke jgubqkblxb ucbglob yjucucblqirobgu~~rnc uclu ucbobucde)~ glob glurqlkkzeb~nqjab~ ucblqirobgu~ bsvbnube az ucbobucde' Hdq bslovkb+ ucbQbnulgikb nkl~~ ndrke jg~uble jovkbobgu

    l ~buDqjijgS0z0 obucde uclu olmb~ ucb vrqvd~b dh ju~ uyd lqirobgu~ nkblq0

    ]ozQbnulgikb ~buDqjijgS0 >6'6 z0 26'6_= $$ Ucj~ j~ l idde bslovkb dh orkujvkb

    lqirobgu~

  • 8/14/2019 The Objective-C Programming Language - Book

    17/137

    Jovdqulgu0 Ucb ~ra/vlqu~ dh ucb obucde globdh ucb ~bkbnudqlqb gdu dvujdglk+ gdq nlg ucbjq dqebq abxlqjbe' Globe lqirobgu~ lge mbzydqe lqirobgu~ dhubg nlqqz ucb jovkjnlujdg uclu ucb lqirobgu~ ud l

    obucdenlg xlqz lu qrgujob+ nlg clxb ebhlrku xlkrb~+ nlg ab jg l ejhhbqbgu dqebq+ nlg vd~~jakz clxb leejujdglk

    globe lqirobgu~' Ucj~ j~ gdu ucb nl~b yjuc Da`bnujxb/N'

    Hdq lkk jgubgu~ lge vrqvd~b~+ lg Da`bnujxb/N obucde ebnklqlujdg j~ ~jovkz l N hrgnujdg uclu vqbvbge~ uyd

    leejujdglk lqirobgu~ #~bb Ob~~lijgi jg ucb Da`bnujxb/N Qrgujob Vqdiqloojgi Irjeb*' Ucj~ j~ ejhhbqbgu hqdo

    ucb globe dq mbzydqe lqirobgu~ lxljklakb jg l klgirlib kjmb Vzucdg0

    ebh hrgn#l+ a+ GbluOdeb?^rvbqGblu+ Ucjgi?EbhlrkuUcjgi*0

    vl~~

    ycbqb Ucjgi #lge GbluOdeb* ojicu ab dojuube dq ojicu clxb ejhhbqbgu xlkrb~ ycbg nlkkbe'

    Obucde~ uclu ulmb l xlqjlakb groabq dh lqirobgu~ lqb lk~d vd~~jakb+ ucdric ucbzqb ~dobyclu qlqb' Bsuql

    lqirobgu~ lqb ~bvlqlube az ndool~ lhubq ucb bge dh ucb obucde glob' #Rgkjmb ndkdg~+ ucb ndool~ lqbgu

    ndg~jebqbe vlqu dh ucb glob'* Jg ucb hdkkdyjgi bslovkb+ ucb jolijglqz olmbIqdrv0 obucde j~ vl~~be dgb

    qb|rjqbe lqirobgu #iqdrv* lge ucqbb uclu lqb dvujdglk0

    ]qbnbjxbq olmbIqdrv0iqdrv+ oboabqDgb+ oboabqUyd+ oboabqUcqbb_=

    Kjmb ~ulgelqe N hrgnujdg~+ obucde~ nlg qburqg xlkrb~' Ucb hdkkdyjgi bslovkb ~bu~ ucb xlqjlakb j~Hjkkbe ud

    ZB^ jhozQbnulgikb j~ eqlyg l~ l ~dkje qbnulgikb+ dq GD jh ju~ eqlyg jg drukjgb hdqo dgkz'

    ADDK j~Hjkkbe=

    j~Hjkkbe ? ]ozQbnulgikb j~Hjkkbe_=

    Gdub uclu l xlqjlakb lge l obucde nlg clxb ucb ~lob glob'

    Dgb ob~~lib bsvqb~~jdg nlg ab gb~ube jg~jeb lgducbq' Cbqb+ ucb ndkdq dh dgb qbnulgikb j~ ~bu ud ucb ndkdq dh

    lgducbq0

    ]ozQbnulgikb ~buVqjolqzNdkdq0]ducbqQbnu vqjolqzNdkdq__=

    Da`bnujxb/N lk~d vqdxjeb~ l edu #'* dvbqludq uclu dhhbq~ l ndovlnu lge ndgxbgjbgu ~zguls hdq jgxdmjgi lg

    da`bnu~ lnnb~~dq obucde~' Ucj~ j~ uzvjnlkkz r~be jg ndg`rgnujdg yjuc ucb ebnklqbe vqdvbqujb~ hblurqb #~bb

    Ebnklqbe Vqdvbqujb~ #vlib 89**+ lge j~ eb~nqjabe jg Edu zguls #vlib 16*'

    ^bgejgi Ob~~lib~ ud gjk

    Jg Da`bnujxb/N+ ju j~ xlkje ud ~bge l ob~~lib ud gjkju ~jovkz cl~ gd bhhbnu lu qrgujob' Ucbqb lqb ~bxbqlk

    vluubqg~ jg Ndndl uclu ulmb lexlgulib dh ucj~ hlnu' Ucb xlkrb qburqgbe hqdo l ob~~lib ud gjk olz lk~d ab

    xlkje0

    Jh ucb obucde qburqg~ lg da`bnu+ ucbg l ob~~lib ~bgu ud gjk qburqg~ 6 #gjk*+ hdq bslovkb0Vbq~dg oducbqJgKly ? ]]lVbq~dg ~vdr~b_ oducbq_=

    JhlVbq~dg~ ~vdr~b j~ gjk+ ucbg oducbq j~ ~bgu ud gjk lge ucb obucde qburqg~ gjk'

    Jh ucb obucde qburqg~ lgz vdjgubq uzvb+ lgz jgubibq ~nlklq dh ~jpb kb~~ uclg dq b|rlk ud ~jpbdh#xdje*+l hkdlu+ l edrakb+ l kdgi edrakb+ dq l kdgi kdgi+ ucbg l ob~~lib ~bgu ud gjk qburqg~ 6'

    Da`bnu Ob~~lijgi

  • 8/14/2019 The Objective-C Programming Language - Book

    18/137

    Jh ucb obucde qburqg~ l ~uqrnu+ l~ ebhjgbe az ucb Oln D^ S LAJ Hrgnujdg Nlkk Irjeb ud ab qburqgbe jgqbij~ubq~+ ucbg l ob~~lib ~bgu ud gjk qburqg~ 6'6 hdq bxbqz hjbke jg ucb elul ~uqrnurqb' Ducbq ~uqrnu elul

    uzvb~ yjkk gdu ab hjkkbe yjuc pbqd~'

    Jh ucbobucdeqburqg~ lgzucjgiducbq uclg ucblhdqbobgujdgbe xlkrb uzvb~ ucbqburqgxlkrb dh l ob~~lib~bgu ud gjk j~ rgebhjgbe'

    Ucb hdkkdyjgi ndeb hqliobgu jkkr~uqlub~ xlkje r~b dh ~bgejgi l ob~~lib ud gjk'

    je lgDa`bnuOlzabGjk ? gjk=

    $$ ucj~ j~ xlkje

    jh #]lgDa`bnuOlzabGjk obucdeUcluQburqg~LEdrakb_ ?? 6'6*

    }

    $$ jovkbobgulujdg ndgujgrb~'''

    Gdub0 Ucb abclxjdq dh ~bgejgi ob~~lib~ ud gjk nclgibe ~kjicukz yjuc Oln D^ S x

  • 8/14/2019 The Objective-C Programming Language - Book

    19/137

    Jg vlqujnrklq+ lg da`bnu nlg ab dvbqlube dg az dgkz ucd~b obucde~ uclu ybqb ebhjgbe hdq ju' Ju nlgu ndghr~b

    ucbo yjuc obucde~ ebhjgbe hdq ducbq mjge~ dh da`bnu+ bxbg jh lgducbq da`bnu cl~ l obucde yjuc ucb ~lob

    glob' Ucj~ oblg~ uclu uyd da`bnu~ nlg qb~vdge ejhhbqbgukz ud ucb ~lob ob~~lib' Hdq bslovkb+ blnc mjge dh

    da`bnu ~bgu l ej~vklzob~~lib ndrke ej~vklz ju~bkh jg l rgj|rb ylz' L Njqnkb lge l Qbnulgikb ydrke qb~vdge

    ejhhbqbgukz ud jebgujnlk jg~uqrnujdg~ ud uqlnm ucb nrq~dq'

    Ucj~ hblurqb+ qbhbqqbe ud l~ vdkzodqvcj~o+ vklz~ l ~jigjhjnlgu qdkb jg ucb eb~jig dh da`bnu/dqjbgube vqdiqlo~'Udibucbq yjuc ezglojn ajgejgi+ ju vbqoju~ zdr ud yqjub ndeb uclu ojicu lvvkz ud lgz groabq dh ejhhbqbgu

    mjge~ dh da`bnu~+ yjucdru zdr clxjgi ud ncdd~b lu ucb ujob zdr yqjub ucb ndeb yclu mjge~ dh da`bnu~ ucbz

    ojicu ab' Ucbz ojicu bxbg ab da`bnu~ uclu yjkk ab ebxbkdvbe klubq+ az ducbq vqdiqloobq~ ydqmjgi dg ducbq

    vqd`bnu~' Jh zdr yqjub ndeb uclu ~bge~ l ej~vklz ob~~lib ud lg je xlqjlakb+ lgz da`bnu uclu cl~ l ej~vklz

    obucde j~ l vdubgujlk qbnbjxbq'

    Ezglojn Ajgejgi

    L nqrnjlk ejhhbqbgnb abuybbg hrgnujdg nlkk~ lge ob~~lib~ j~ uclu l hrgnujdg lge ju~ lqirobgu~ lqb djgbe

    udibucbq jg ucb ndovjkbe ndeb+ aru l ob~~lib lge l qbnbjxjgi da`bnu lqbgu rgjube rgujk ucb vqdiqlo j~

    qrggjgi lge ucb ob~~lib j~ ~bgu' Ucbqbhdqb+ ucb bslnu obucde uclu~ jgxdmbe ud qb~vdge ud l ob~~lib nlg

    dgkz ab ebubqojgbe lu qrgujob+ gdu ycbg ucb ndeb j~ ndovjkbe'

    Ucb vqbnj~b obucde uclu l ob~~lib jgxdmb~ ebvbge~ dg ucb qbnbjxbq' Ejhhbqbgu qbnbjxbq~ olz clxb ejhhbqbgu

    obucde jovkbobgulujdg~ hdq ucb ~lob obucde glob #vdkzodqvcj~o*' Hdq ucb ndovjkbq ud hjge ucb qjicu

    obucde jovkbobgulujdg hdq l ob~~lib+ ju ydrke clxb ud mgdy yclu mjge dh da`bnu ucb qbnbjxbq j~yclu

    nkl~~ ju abkdgi~ ud' Ucj~ j~ jghdqolujdg ucb qbnbjxbq j~ lakb ud qbxblk lu qrgujob ycbg ju qbnbjxb~ l ob~~lib

    #ezglojn uzvjgi*+ aru ju~ gdu lxljklakb hqdo ucb uzvb ebnklqlujdg~ hdrge jg ~drqnb ndeb'

    Ucb ~bkbnujdg dh l obucde jovkbobgulujdgclvvbg~ lu qrgujob' Ycbg l ob~~lib j~ ~bgu+ l qrgujob ob~~lijgi

    qdrujgbkddm~ lu ucbqbnbjxbq lgelu ucb obucdeglobe jg ucbob~~lib' Ju kdnlub~ ucbqbnbjxbq~ jovkbobgulujdg

    dh l obucde oluncjgi ucbglob+ nlkk~ ucb obucde+ lge vl~~b~ ju l vdjgubq ud ucb qbnbjxbq~ jg~ulgnb xlqjlakb~'

    #Hdq odqb dg ucj~ qdrujgb+ ~bb Ob~~lijgi jg ucb Da`bnujxb/N Qrgujob Vqdiqloojgi Irjeb'*

    Ucj~ ezglojn ajgejgi dh obucde~ ud ob~~lib~ydqm~clge/jg/clgeyjucvdkzodqvcj~oud ijxbda`bnu/dqjbgubevqdiqloojgi ornc dh ju~ hkbsjajkjuz lge vdybq' ^jgnb blnc da`bnu nlg clxb ju~ dyg xbq~jdg dh l obucde+ l

    vqdiqlo nlg lncjbxb l xlqjbuz dh qb~rku~+ gdu az xlqzjgi ucb ob~~lib ju~bkh+ aru az xlqzjgi r~u ucb da`bnu

    uclu qbnbjxb~ ucb ob~~lib' Ucj~ nlg ab edgb l~ ucb vqdiqlo qrg~= qbnbjxbq~ nlg ab ebnjebe dg ucb hkz lge

    nlg ab oleb ebvbgebgu dg bsubqglk hlnudq~ ~rnc l~ r~bq lnujdg~'

    Ycbg bsbnrujgi ndeb al~be rvdg ucb Lvvkjnlujdg Mju+ hdq bslovkb+ r~bq~ ebubqojgb ycjnc da`bnu~ qbnbjxb

    ob~~lib~ hqdo obgr ndoolge~ kjmb Nru+ Ndvz+ lge Vl~ub' Ucb ob~~lib idb~ ud yclubxbq da`bnu ndguqdk~

    ucb nrqqbgu ~bkbnujdg' Lg da`bnu uclu ej~vklz~ ubsu ydrke qblnu ud l ndvz ob~~lib ejhhbqbgukz hqdo lg da`bnu

    uclu ej~vklz~ ~nlggbe jolib~' Lg da`bnu uclu qbvqb~bgu~ l ~bu dh ~clvb~ ydrke qb~vdge ejhhbqbgukz hqdo l

    Qbnulgikb' ^jgnb ob~~lib~ edgu ~bkbnu obucde~ #obucde~ lqbgu adrge ud ob~~lib~* rgujk qrgujob+ ucb~b

    ejhhbqbgnb~ lqb j~dklube jg ucb obucde~ uclu qb~vdge ud ucb ob~~lib' Ucb ndeb uclu ~bge~ ucb ob~~lib

    edb~gu clxb ud ab ndgnbqgbe yjuc ucbo= ju edb~gu bxbg clxb ud bgrobqlubucbvd~~jajkjujb~' Blnc lvvkjnlujdgnlg jgxbgu ju~ dyg da`bnu~ uclu qb~vdge jg ucbjq dyg ylz ud ndvz ob~~lib~'

    Da`bnujxb/N ulmb~ ezglojn ajgejgi dgb ~ubv hrqucbq lge lkkdy~ bxbg ucb ob~~lib uclu~ ~bgu #ucb obucde

    ~bkbnudq* ud ab l xlqjlakb uclu~ ebubqojgbe lu qrgujob' Ucj~ j~ ej~nr~~be jg ucb ~bnujdg Ob~~lijgi jg ucbDa`bnujxb/N Qrgujob Vqdiqloojgi Irjeb'

    Da`bnu Ob~~lijgi

  • 8/14/2019 The Objective-C Programming Language - Book

    20/137

    Ezglojn Obucde Qb~dkrujdg

    Zdr nlg vqdxjebjovkbobgulujdg~ dh nkl~~ lge jg~ulgnb obucde~ lu qrgujobr~jgi ezglojnobucdeqb~dkrujdg'

    ^bb Ezglojn Obucde Qb~dkrujdg jg ucb Da`bnujxb/N Qrgujob Vqdiqloojgi Irjeb hdq odqb ebuljk~'

    Edu ^zguls

    Da`bnujxb/N vqdxjeb~ l edu #'* dvbqludq uclu dhhbq~ l ndovlnu lge ndgxbgjbgu ~zguls zdr nlg r~b l~ lg

    lkubqglujxb ud ~|rlqb aqlnmbu gdulujdg #]_~* ud jgxdmb lnnb~~dq obucde~' Ju j~ vlqujnrklqkz r~bhrk ycbg zdr

    ylgu ud lnnb~~ dq odejhz l vqdvbquz uclu j~ l vqdvbquz dh lgducbq da`bnu #uclu j~ l vqdvbquz dh lgducbq da`bnu+

    lge ~d dg*'

    R~jgi ucb Edu ^zguls

    Dxbqxjby

    Zdr nlg r~b ucb edu ~zguls ud jgxdmb lnnb~~dq obucde~ r~jgi ucb ~lob vluubqg l~ lnnb~~jgi ~uqrnurqbbkbobgu~ l~ jkkr~uqlube jg ucb hdkkdyjgi bslovkb0

    ozJg~ulgnb'xlkrb ?

  • 8/14/2019 The Objective-C Programming Language - Book

    21/137

    Lnnb~~jgi l vqdvbquz vqdvbquznlkk~ ucb ibu obucde l~~dnjlube yjuc ucb vqdvbquz #az ebhlrku+ vqdvbquz* lge

    ~buujgi ju nlkk~ ucb ~bu obucde l~~dnjlube yjuc ucb vqdvbquz #az ebhlrku+ ~buVqdvbquz0*' Zdr nlg nclgib ucb

    obucde~ uclu lqb jgxdmbe az r~jgi ucb Ebnklqbe Vqdvbqujb~ hblurqb #~bb Ebnklqbe Vqdvbqujb~ #vlib 89**'

    Eb~vjub lvvblqlgnb~ ud ucb ndguqlqz+ ucbedu ~zguls ucbqbhdqb vqb~bqxb~ bgnlv~rklujdgzdrlqb gdulnnb~~jgi

    lg jg~ulgnb xlqjlakb ejqbnukz'

    Ucb hdkkdyjgi ~ulubobgu~ ndovjkb ud bslnukz ucb ~lob ndeb l~ ucb ~ulubobgu~ ~cdyg jg Kj~ujgi

  • 8/14/2019 The Objective-C Programming Language - Book

    22/137

    gjk Xlkrb~

    Jh l gjk xlkrb j~ bgndrgubqbe erqjgi vqdvbquz uqlxbq~lk+ ucb qb~rku j~ ucb ~lob l~ ~bgejgi ucb b|rjxlkbgu

    ob~~lib ud gjk' Hdq bslovkb+ ucb hdkkdyjgi vljq~ lqb lkk b|rjxlkbgu0

    $$ blnc oboabq dh ucb vluc j~ lg da`bnu

    s ? vbq~dg'leeqb~~'~uqbbu'glob=

    s ? ]]]vbq~dg leeqb~~_ ~uqbbu_ glob_=

    $$ ucb vluc ndguljg~ l N ~uqrnu

    $$ yjkk nql~c jh yjgedy j~ gjk dq /ndgubguXjby qburqg~ gjk

    z ? yjgedy'ndgubguXjby'adrge~'dqjijg'z=

    z ? ]]yjgedy ndgubguXjby_ adrge~_'dqjijg'z=

    $$ lg bslovkb dh r~jgi l ~buubq''''

    vbq~dg'leeqb~~'~uqbbu'glob ? F!Dshdqe Qdle!=

    ]]]vbq~dg leeqb~~_ ~uqbbu_ ~buGlob0 F!Dshdqe Qdle!_=

    ~bkh

    Jh zdr ylgu udlnnb~~ l vqdvbquz dh~bkh r~jgi lnnb~~dq obucde~+ zdror~u bsvkjnjukznlkkdru~bkh l~ jkkr~uqlube

    jg ucj~ bslovkb0

    ~bkh'lib ?

  • 8/14/2019 The Objective-C Programming Language - Book

    23/137

    G^Jgubibq j ? 166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    24/137

    Ucb ndovjkbq nqblub~ `r~u dgb lnnb~~jakb da`bnu hdq blnc nkl~~+ l nkl~~ da`bnu uclu mgdy~ cdy ud arjke gbyda`bnu~ abkdgijgi ud ucb nkl~~' #Hdq ucj~ qbl~dg ju~ uqlejujdglkkz nlkkbe l hlnudqz da`bnu'* Ucb nkl~~ da`bnu j~

    ucb ndovjkbe xbq~jdg dh ucb nkl~~= ucb da`bnu~ ju arjke~ lqb jg~ulgnb~ dh ucb nkl~~' Ucb da`bnu~ uclu ed ucboljg ydqm dh zdrq vqdiqlo lqb jg~ulgnb~ nqblube az ucb nkl~~ da`bnu lu qrgujob'

    Lkk jg~ulgnb~ dh l nkl~~ clxb ucb ~lob ~bu dh obucde~+ lge ucbz lkk clxb l ~bu dh jg~ulgnb xlqjlakb~ nru hqdo

    ucb ~lob odke' Blnc da`bnu ibu~ ju~ dyg jg~ulgnb xlqjlakb~+ aru ucb obucde~ lqb ~clqbe'

    Az ndgxbgujdg+ nkl~~ glob~ abijg yjuc lg rvvbqnl~b kbuubq #~rnc l~ Qbnulgikb*= ucb glob~ dh jg~ulgnb~

    uzvjnlkkz abijg yjuc l kdybqnl~b kbuubq #~rnc l~ ozQbnulgikb*'

    Jgcbqjulgnb

    Nkl~~ ebhjgjujdg~ lqb leejujxb= blnc gby nkl~~ uclu zdr ebhjgb j~ al~be dg lgducbq nkl~~ hqdo ycjnc ju jgcbqju~obucde~ lge jg~ulgnb xlqjlakb~' Ucb gby nkl~~ ~jovkz lee~ ud dq odejhjb~ yclu ju jgcbqju~' Ju edb~gu gbbe ud

    ervkjnlub jgcbqjube ndeb'

    Jgcbqjulgnb kjgm~ lkk nkl~~b~ udibucbq jg l cjbqlqncjnlk uqbb yjuc l ~jgikb nkl~~ lu ju~ qddu' Ycbg yqjujgi ndebuclu j~ al~be rvdg ucb Hdrgelujdg hqlobydqm+ uclu qddu nkl~~ j~ uzvjnlkkz G^Da`bnu' Bxbqz nkl~~ #bsnbvu l

    qddu nkl~~* cl~ l ~rvbqnkl~~ dgb ~ubvgblqbq ucb qddu+ lge lgz nkl~~ #jgnkrejgi l qddu nkl~~* nlgab ucb ~rvbqnkl~~hdq lgz groabq dh~rankl~~b~ dgb ~ubv hlqucbq hqdo ucb qddu' Hjirqb

  • 8/14/2019 The Objective-C Programming Language - Book

    25/137

    Ycbg zdr ebhjgb l nkl~~+ zdr kjgm ju ud ucb cjbqlqncz az ebnklqjgi ju~ ~rvbqnkl~~= bxbqz nkl~~ zdr nqblub or~u

    ab ucb ~rankl~~ dh lgducbq nkl~~ #rgkb~~ zdr ebhjgb l gby qddu nkl~~*' Vkbguz dh vdubgujlk ~rvbqnkl~~b~ lqb

    lxljklakb' Ndndl jgnkreb~ ucb G^Da`bnu nkl~~ lge ~bxbqlk hqlobydqm~ ndguljgjgi ebhjgjujdg~ hdq odqb uclg

    126 leejujdglk nkl~~b~' dob lqb nkl~~b~ uclu zdr nlg r~b dhh ucb ~cbkhjgndqvdqlub jgud zdrq vqdiqlo l~

    j~' Ducbq~ zdr ojicu ylgu ud lelvu ud zdrq dyg gbbe~ az ebhjgjgi l ~rankl~~'

    ^dob hqlobydqm nkl~~b~ ebhjgb lkod~u bxbqzucjgi zdr gbbe+ aru kblxb ~dob ~vbnjhjn~ ud ab jovkbobgube jg

    l ~rankl~~' Zdr nlgucr~ nqblubxbqz ~dvcj~ujnlube da`bnu~ azyqjujgi dgkz l ~olkk lodrgudh ndeb+lgeqbr~jgi

    ydqm edgb az ucb vqdiqloobq~ dh ucb hqlobydqm'

    Ucb G^Da`bnu Nkl~~

    G^Da`bnu j~ l qddu nkl~~+ lge ~d edb~gu clxb l ~rvbqnkl~~' Ju ebhjgb~ ucb al~jn hqlobydqm hdq Da`bnujxb/N

    da`bnu~ lgeda`bnu jgubqlnujdg~' Ju jovlqu~ ud ucbnkl~~b~ lgejg~ulgnb~ dh nkl~~b~ uclu jgcbqju hqdo ju ucblajkjuz

    ud abclxb l~ da`bnu~ lge nddvbqlub yjuc ucb qrgujob ~z~ubo'

    L nkl~~ uclu edb~gu gbbe ud jgcbqju lgz ~vbnjlk abclxjdq hqdo lgducbq nkl~~ ~cdrke gbxbqucbkb~~ ab oleb l

    ~rankl~~ dh ucbG^Da`bnu nkl~~' Jg~ulgnb~ dh ucbnkl~~ or~u lu kbl~u clxb ucblajkjuz ud abclxb kjmb Da`bnujxb/N

    da`bnu~ lu qrgujob' Jgcbqjujgi ucj~ lajkjuz hqdo ucb G^Da`bnu nkl~~ j~ ornc ~jovkbq lge ornc odqb qbkjlakbuclg qbjgxbgujgi ju jg l gby nkl~~ ebhjgjujdg'

    Gdub0 Jovkbobgujgi l gby qddu nkl~~ j~ l ebkjnlub ul~m lge dgb yjuc olgz cjeebg clplqe~' Ucb nkl~~ or~uervkjnlub ornc dh yclu ucb G^Da`bnu nkl~~ edb~+ ~rnc l~ lkkdnlub jg~ulgnb~+ ndggbnu ucbo ud ucbjq nkl~~+

    lge jebgujhz ucbo ud ucb qrgujob ~z~ubo' Hdq ucj~ qbl~dg+ zdr ~cdrke ibgbqlkkz r~b ucb G^Da`bnu nkl~~

    vqdxjebe yjuc Ndndl l~ ucb qddu nkl~~' Hdq odqb jghdqolujdg+ ~bb ucb Hdrgelujdg hqlobydqm ednrobgulujdg

    hdq ucb G^Da`bnu nkl~~ lge ucb G^Da`bnu vqdudndk'

    Jgcbqjujgi Jg~ulgnb Xlqjlakb~

    Ycbg l nkl~~ da`bnu nqblub~ l gby jg~ulgnb+ ucb gby da`bnu ndguljg~ gdu dgkz ucb jg~ulgnb xlqjlakb~ ucluybqb ebhjgbe hdq ju~ nkl~~ aru lk~d ucb jg~ulgnb xlqjlakb~ ebhjgbe hdq ju~ ~rvbqnkl~~ lge hdq ju~ ~rvbqnkl~~~

    ~rvbqnkl~~+ lkk ucb ylz alnm ud ucb qddu nkl~~' Ucr~+ ucb j~l jg~ulgnb xlqjlakb ebhjgbe jg ucb G^Da`bnu nkl~~

    abndob~ vlqu dh bxbqz da`bnu' j~l ndggbnu~ blnc da`bnu ud ju~ nkl~~'

    Hjirqb

  • 8/14/2019 The Objective-C Programming Language - Book

    26/137

    L nkl~~ edb~gu clxb ud ebnklqb jg~ulgnb xlqjlakb~' Ju nlg ~jovkz ebhjgb gby obucde~ lge qbkz dg ucb jg~ulgnb

    xlqjlakb~ ju jgcbqju~+ jh ju gbbe~ lgz jg~ulgnb xlqjlakb~ lu lkk' Hdq bslovkb+ |rlqb ojicu gdu ebnklqb lgz gby

    jg~ulgnb xlqjlakb~ dh ju~ dyg'

    Jgcbqjujgi Obucde~

    Lg da`bnu cl~ lnnb~~ gdu dgkz ud ucb obucde~ ebhjgbe hdq ju~ nkl~~+ aru lk~d ud obucde~ ebhjgbe hdq ju~

    ~rvbqnkl~~+ lge hdq ju~ ~rvbqnkl~~~ ~rvbqnkl~~+ lkk ucb ylz alnm ud ucb qddu dh ucb cjbqlqncz' Hdq jg~ulgnb+ l

    ^|rlqb da`bnu nlg r~b obucde~ ebhjgbe jg ucb Qbnulgikb+ clvb+ Iqlvcjn+ lge G^Da`bnu nkl~~b~ l~ ybkk l~

    obucde~ ebhjgbe jg ju~ dyg nkl~~'

    Lgz gby nkl~~ zdr ebhjgb jg zdrq vqdiqlo nlg ucbqbhdqb olmb r~b dh ucb ndeb yqjuubg hdq lkk ucb nkl~~b~

    ladxb ju jg ucb cjbqlqncz' Ucj~ uzvb dh jgcbqjulgnb j~ l ol`dq abgbhju dh da`bnu/dqjbgube vqdiqloojgi' Ycbg

    zdr r~b dgb dh ucb da`bnu/dqjbgube hqlobydqm~ vqdxjebe az Ndndl+ zdrq vqdiqlo~ nlg ulmb lexlgulib dh

    ucb al~jn hrgnujdglkjuz ndebe jgud ucb hqlobydqm nkl~~b~' Zdr clxb ud lee dgkz ucb ndeb uclu nr~udojpb~ ucb

    ~ulgelqe hrgnujdglkjuz ud zdrq lvvkjnlujdg'

    Nkl~~ da`bnu~ lk~d jgcbqju hqdo ucb nkl~~b~ ladxb ucbo jg ucb cjbqlqncz' Aru abnlr~b ucbz edgu clxb jg~ulgnb

    xlqjlakb~ #dgkz jg~ulgnb~ ed*+ ucbz jgcbqju dgkz obucde~'

    Dxbqqjejgi Dgb Obucde Yjuc Lgducbq

    Ucbqb~ dgb r~bhrk bsnbvujdg ud jgcbqjulgnb0 Ycbg zdr ebhjgb l gby nkl~~+ zdr nlg jovkbobgu l gby obucde

    yjuc ucb~lob glob l~ dgb ebhjgbe jg l nkl~~ hlqucbqrv ucbcjbqlqncz' Ucb gbyobucde dxbqqjeb~ ucbdqjijglk=

    jg~ulgnb~ dh ucb gby nkl~~ vbqhdqo ju qlucbq uclg ucb dqjijglk+ lge ~rankl~~b~ dh ucb gby nkl~~ jgcbqju ju qlucbq

    uclg ucb dqjijglk'

    Hdq bslovkb+ Iqlvcjn ebhjgb~ l ej~vklz obucde uclu Qbnulgikb dxbqqjeb~ az ebhjgjgi ju~ dyg xbq~jdg dh

    ej~vklz' Ucb Iqlvcjn obucde j~ lxljklakb ud lkk mjge~ dh da`bnu~ uclu jgcbqju hqdo ucb Iqlvcjn nkl~~aru

    gdu ud Qbnulgikb da`bnu~+ ycjnc jg~uble vbqhdqo ucb Qbnulgikb xbq~jdg dhej~vklz'

    Lkucdric dxbqqjejgi l obucde akdnm~ ucb dqjijglk xbq~jdg hqdo abjgi jgcbqjube+ ducbq obucde~ ebhjgbe jg

    ucb gby nkl~~nlg ~mjv dxbq ucb qbebhjgbe obucde lge hjge ucbdqjijglk #~bb Ob~~lib~ ud~bkh lge ~rvbq #vlib

    5>* ud kblqg cdy*'

    L qbebhjgbe obucde nlg lk~d jgndqvdqlub ucbxbqz obucde ju dxbqqjeb~' Ycbg ju edb~+ ucbgbyobucde~bqxb~

    dgkz ud qbhjgb dq odejhz ucb obucde ju dxbqqjeb~+ qlucbq uclg qbvklnb ju druqjicu' Ycbg ~bxbqlk nkl~~b~ jg ucb

    cjbqlqncz ebhjgb ucb ~lob obucde+ aru blnc gby xbq~jdg jgndqvdqlub~ ucb xbq~jdg ju dxbqqjeb~+ ucb

    jovkbobgulujdg dh ucb obucde j~ bhhbnujxbkz ~vqble dxbq lkk ucb nkl~~b~'

    Lkucdric l ~rankl~~ nlg dxbqqjeb jgcbqjube obucde~+ ju nlgu dxbqqjeb jgcbqjube jg~ulgnb xlqjlakb~' jgnb lg

    da`bnu cl~ obodqz lkkdnlube hdq bxbqz jg~ulgnb xlqjlakb ju jgcbqju~+ zdr nlgu dxbqqjeb lg jgcbqjube xlqjlakb

    az ebnklqjgi l gby dgb yjuc ucb ~lob glob' Jh zdr uqz+ ucb ndovjkbq yjkk ndovkljg'

    La~uqlnu Nkl~~b~

    ^dob nkl~~b~ lqb eb~jigbe dgkz dq vqjolqjkz ~d uclu ducbq nkl~~b~ nlg jgcbqju hqdo ucbo' Ucb~b la~uqlnunkl~~b~ iqdrv obucde~ lge jg~ulgnb xlqjlakb~ uclu nlg ab r~be az l groabq dh ejhhbqbgu ~rankl~~b~ jgud lndoodg ebhjgjujdg' Ucb la~uqlnu nkl~~ j~ uzvjnlkkz jgndovkbub az ju~bkh+ aru ndguljg~ r~bhrk ndeb uclu qbernb~

    ucb jovkbobgulujdg arqebg dh ju~ ~rankl~~b~' #Abnlr~b la~uqlnu nkl~~b~ or~u clxb ~rankl~~b~ ud ab r~bhrk+

    ucbzqb ~dobujob~ lk~d nlkkbe la~uqlnu ~rvbqnkl~~b~'*

    18 Nkl~~b~166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    27/137

  • 8/14/2019 The Objective-C Programming Language - Book

    28/137

    Uzvb Jguqd~vbnujdg

    Jg~ulgnb~ nlgqbxblk ucbjq uzvb~ lu qrgujob' Ucb j~OboabqDhNkl~~0obucde+ ebhjgbe jg ucbG^Da`bnu nkl~~+

    ncbnm~ ycbucbq ucb qbnbjxbq j~ lg jg~ulgnb dh l vlqujnrklq nkl~~0

    jh # ]lgDa`bnu j~OboabqDhNkl~~0~dobNkl~~_ *

    '''

    Ucb j~MjgeDhNkl~~0obucde+ lk~d ebhjgbe jg ucb G^Da`bnu nkl~~+ ncbnm~ odqb ibgbqlkkz ycbucbq ucb

    qbnbjxbq jgcbqju~ hqdo dq j~ l oboabq dh l vlqujnrklq nkl~~ #ycbucbq ju cl~ ucb nkl~~ jg ju~ jgcbqjulgnb vluc*0

    jh # ]lgDa`bnu j~MjgeDhNkl~~0~dobNkl~~_ *

    '''

    Ucb ~bu dh nkl~~b~ hdq ycjnc j~MjgeDhNkl~~0 qburqg~ ZB^ j~ ucb ~lob ~bu ud ycjnc ucb qbnbjxbq nlg ab

    ~ulujnlkkz uzvbe'

    Jguqd~vbnujdg j~gu kjojube ud uzvb jghdqolujdg' Klubq ~bnujdg~ dh ucj~ nclvubq ej~nr~~ obucde~ uclu qburqg ucb

    nkl~~ da`bnu+ qbvdqu ycbucbq lg da`bnu nlg qb~vdge ud l ob~~lib+ lge qbxblk ducbq jghdqolujdg'

    ^bb ucbG^Da`bnu nkl~~ ~vbnjhjnlujdg jg ucb Hdrgelujdg hqlobydqm qbhbqbgnb hdqodqb dgj~MjgeDhNkl~~0+

    j~OboabqDhNkl~~0+ lge qbklube obucde~'

    Nkl~~ Da`bnu~

    L nkl~~ ebhjgjujdg ndguljg~ xlqjdr~ mjge~ dh jghdqolujdg+ ornc dh ju ladru jg~ulgnb~ dh ucb nkl~~0

    Ucb glob dh ucb nkl~~ lge ju~ ~rvbqnkl~~ L ubovklub eb~nqjajgi l ~bu dh jg~ulgnb xlqjlakb~ Ucb ebnklqlujdg~ dh obucde glob~ lge ucbjq qburqg lge lqirobgu uzvb~ Ucb obucde jovkbobgulujdg~

    Ucj~ jghdqolujdg j~ ndovjkbe lge qbndqebe jg elul ~uqrnurqb~ oleb lxljklakb ud ucb qrgujob ~z~ubo' Ucb

    ndovjkbq nqblub~ r~u dgb da`bnu+ l nkl~~ da`bnu+ ud qbvqb~bgu ucb nkl~~' Ucb nkl~~ da`bnu cl~ lnnb~~ ud lkk ucbjghdqolujdg ladru ucb nkl~~+ ycjnc oblg~ oljgkz jghdqolujdg ladru yclu jg~ulgnb~ dh ucb nkl~~ lqb kjmb' Ju~

    lakb ud vqdernb gby jg~ulgnb~ lnndqejgi ud ucb vklg vru hdqylqe jg ucb nkl~~ ebhjgjujdg'

    Lkucdric l nkl~~ da`bnu mbbv~ ucb vqduduzvb dh l nkl~~ jg~ulgnb+ ju~ gdu lg jg~ulgnb ju~bkh' Ju cl~ gd jg~ulgnb

    xlqjlakb~ dh ju~dyg lge ju nlguvbqhdqo obucde~jgubgebehdq jg~ulgnb~ dh ucb nkl~~' Cdybxbq+ l nkl~~ ebhjgjujdg

    nlg jgnkreb obucde~ jgubgebe ~vbnjhjnlkkz hdq ucb nkl~~ da`bnunkl~~ obucde~ l~ dvvd~be ud jg~ulgnbobucde~' L nkl~~ da`bnu jgcbqju~ nkl~~ obucde~ hqdo ucb nkl~~b~ ladxb ju jg ucb cjbqlqncz+ `r~u l~ jg~ulgnb~jgcbqju jg~ulgnb obucde~'

    Jg ~drqnb ndeb+ ucb nkl~~ da`bnu j~ qbvqb~bgube az ucb nkl~~ glob' Jg ucb hdkkdyjgi bslovkb+ ucb Qbnulgikb

    nkl~~ qburqg~ ucb nkl~~ xbq~jdg groabq r~jgi l obucde jgcbqjube hqdo ucb G^Da`bnu nkl~~0

    jgu xbq~jdgGroabq ? ]Qbnulgikb xbq~jdg_=

    Cdybxbq+ ucb nkl~~ glob ~ulge~ hdq ucb nkl~~ da`bnu dgkz l~ ucb qbnbjxbq jg l ob~~lib bsvqb~~jdg' Bk~bycbqb+

    zdr gbbe ud l~m lg jg~ulgnb dq ucb nkl~~ ud qburqg ucb nkl~~ je' Aduc qb~vdge ud l nkl~~ ob~~lib0

    je lNkl~~ ? ]lgDa`bnu nkl~~_=

    13 Nkl~~b~166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    29/137

    je qbnuNkl~~ ? ]Qbnulgikb nkl~~_=

    L~ ucb~b bslovkb~ ~cdy+ nkl~~ da`bnu~ nlg+ kjmb lkk ducbq da`bnu~+ ab uzvbe je' Aru nkl~~ da`bnu~ nlg lk~d ab

    odqb ~vbnjhjnlkkz uzvbe ud ucb Nkl~~ elul uzvb0

    Nkl~~ lNkl~~ ? ]lgDa`bnu nkl~~_=

    Nkl~~ qbnuNkl~~ ? ]Qbnulgikb nkl~~_=

    Lkk nkl~~ da`bnu~ lqb dh uzvb Nkl~~' R~jgi ucj~ uzvb glob hdq l nkl~~ j~ b|rjxlkbgu ud r~jgi ucb nkl~~ glob ud

    ~ulujnlkkz uzvb lg jg~ulgnb'

    Nkl~~ da`bnu~ lqb ucr~ hrkk/hkbeibe da`bnu~ uclu nlg ab ezglojnlkkz uzvbe+ qbnbjxb ob~~lib~+ lge jgcbqju

    obucde~ hqdo ducbq nkl~~b~' Ucbzqb ~vbnjlk dgkz jg uclu ucbzqb nqblube az ucb ndovjkbq+ klnm elul ~uqrnurqb~

    #jg~ulgnb xlqjlakb~* dh ucbjq dyg ducbq uclg ucd~b arjku hqdo ucb nkl~~ ebhjgjujdg+ lge lqb ucb libgu~ hdq

    vqdernjgi jg~ulgnb~ lu qrgujob'

    Gdub0 Ucb ndovjkbq lk~d arjke~ l obulnkl~~ da`bnu hdq blnc nkl~~' Ju eb~nqjab~ ucb nkl~~ da`bnu r~u l~ ucbnkl~~ da`bnu eb~nqjab~ jg~ulgnb~ dh ucb nkl~~' Aru ycjkb zdr nlg ~bge ob~~lib~ ud jg~ulgnb~ lge ud ucb nkl~~

    da`bnu+ ucb obulnkl~~ da`bnu j~ r~be dgkz jgubqglkkz az ucb qrgujob ~z~ubo'

    Nqblujgi Jg~ulgnb~

    L vqjgnjvlk hrgnujdg dh l nkl~~ da`bnu j~ ud nqblub gby jg~ulgnb~' Ucj~ ndeb ubkk~ ucb Qbnulgikb nkl~~ ud nqblub

    l gby Qbnulgikb jg~ulgnb lge l~~jig ju ud ucb ozQbnulgikb xlqjlakb0

    je ozQbnulgikb=

    ozQbnulgikb ? ]Qbnulgikb lkkdn_=

    Ucblkkdnobucde ezglojnlkkz lkkdnlub~obodqz hdq ucb gby da`bnu~ jg~ulgnbxlqjlakb~lge jgjujlkjpb~ ucbo

    lkk ud 6lkk+ uclu j~+ bsnbvu ucb j~l xlqjlakb uclu ndggbnu~ ucb gby jg~ulgnb ud ju~ nkl~~' Hdq lg da`bnu ud ab

    r~bhrk+ ju ibgbqlkkz gbbe~ ud ab odqb ndovkbubkz jgjujlkjpbe' Uclu~ ucbhrgnujdg dh lgjgjuobucde' Jgjujlkjplujdg

    uzvjnlkkz hdkkdy~ joobejlubkz lhubq lkkdnlujdg0

    ozQbnulgikb ? ]]Qbnulgikb lkkdn_ jgju_=

    Ucj~ kjgb dh ndeb+ dq dgb kjmb ju+ ydrke ab gbnb~~lqz abhdqb ozQbnulgikb ndrke qbnbjxb lgz dh ucb ob~~lib~

    uclu ybqb jkkr~uqlube jg vqbxjdr~ bslovkb~ jg ucj~ nclvubq' Ucb lkkdn obucde qburqg~ l gby jg~ulgnb lge

    uclu jg~ulgnb vbqhdqo~ lgjgjuobucde ud ~bu ju~ jgjujlk ~ulub' Bxbqz nkl~~ da`bnu cl~ lu kbl~u dgb obucde #kjmb

    lkkdn* uclu bglakb~ ju ud vqdernb gby da`bnu~+ lge bxbqz jg~ulgnb cl~ lu kbl~u dgb obucde #kjmb jgju* uclu

    vqbvlqb~ ju hdq r~b' Jgjujlkjplujdg obucde~ dhubg ulmb lqirobgu~ ud lkkdy vlqujnrklq xlkrb~ ud ab vl~~be lge

    clxb mbzydqe~ ud klabk ucb lqirobgu~ #jgjuYjucVd~jujdg0~jpb0+ hdq bslovkb+ j~ l obucde uclu ojicu

    jgjujlkjpb l gby Qbnulgikb jg~ulgnb*+ aru ucbz lkk abijg yjuc jgju'

    Nr~udojplujdg Yjuc Nkl~~ Da`bnu~

    Ju~ gdu r~u l ycjo dh ucb Da`bnujxb/N klgirlib uclu nkl~~b~ lqb uqblube l~ da`bnu~' Ju ~ l ncdjnb uclu cl~

    jgubgebe+ lge ~dobujob~ ~rqvqj~jgi+ abgbhju~ hdq eb~jig' Ju~ vd~~jakb+ hdq bslovkb+ ud nr~udojpb lg da`bnu

    yjuc l nkl~~+ ycbqb ucb nkl~~ abkdgi~ ud lg dvbg/bgebe ~bu' Jg ucb Lvvkjnlujdg Mju+ hdq bslovkb+ lg G^Oluqjs

    da`bnu nlg ab nr~udojpbe yjuc l vlqujnrklq mjge dhG^Nbkk da`bnu'

    Nkl~~b~ 1:166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    30/137

    Lg G^Oluqjs da`bnu nlg ulmb qb~vdg~jajkjuz hdq nqblujgi ucb jgejxjerlk da`bnu~ uclu qbvqb~bgu ju~ nbkk~' Ju nlg

    ed ucj~ ycbg ucb oluqjs j~ hjq~u jgjujlkjpbe lge klubq ycbg gby nbkk~ lqb gbbebe' Ucb xj~jakb oluqjs uclu lg

    G^Oluqjs da`bnu eqly~ dg ucb ~nqbbg nlg iqdy lge ~cqjgm lu qrgujob+ vbqclv~ jg qb~vdg~b ud r~bq lnujdg~'

    Ycbg ju iqdy~+ ucb oluqjs gbbe~ ud ab lakb ud vqdernb gby da`bnu~ ud hjkk ucb gby ~kdu~ uclu lqb leebe'

    Aru yclu mjge dh da`bnu~ ~cdrke ucbz ab4 Blnc oluqjs ej~vklz~ `r~u dgb mjge dhG^Nbkk+ aru ucbqb lqb olgz

    ejhhbqbgu mjge~' Ucb jgcbqjulgnb cjbqlqncz jg Hjirqb ~cdy~ ~dob dh ucd~b vqdxjebe az ucb Lvvkjnlujdg Mju'

    Lkk jgcbqju hqdo ucb ibgbqjn G^Nbkk nkl~~0

    Hjirqb Jgcbqjulgnb cjbqlqncz hdq G^Nbkk

    G^Da`bnu

    G^Nbkk

    G^LnujdgNbkk

    G^UbsuHjbkeNbkk G^^kjebqNbkkG^AruudgNbkk G^HdqoNbkk

    G^ObgrNbkk

    G^Aqdy~bqNbkk

    Ycbg l oluqjs nqblub~ G^Nbkk da`bnu~+ ~cdrke ucbz ab G^AruudgNbkk da`bnu~ ud ej~vklz l algm dh aruudg~

    dq ~yjuncb~+ G^UbsuHjbkeNbkk da`bnu~ ud ej~vklz hjbke~ ycbqb ucb r~bq nlg bgubq lge beju ubsu+ dq ~dob

    ducbq mjge dhG^Nbkk4 Ucb G^Oluqjs da`bnu or~u lkkdy hdq lgz mjge dh nbkk+ bxbg uzvb~ uclu clxbgu abbg

    jgxbgube zbu'

    Dgb ~dkrujdg ud ucj~ vqdakbo j~ ud ebhjgb ucb G^Oluqjs nkl~~ l~ lg la~uqlnu nkl~~ lge qb|rjqb bxbqzdgb ycd

    r~b~ ju ud ebnklqb l ~rankl~~ lge jovkbobgu ucb obucde~ uclu vqdernb gby nbkk~' Abnlr~b ucbz ydrke ab

    jovkbobgujgi ucb obucde~+ r~bq~ dh ucb nkl~~ ndrke ab ~rqb uclu ucb da`bnu~ ucbz nqblube ybqb dh ucb qjicu

    uzvb'

    Aru ucj~ qb|rjqb~ ducbq~ ud ed ydqm uclu dricu ud ab edgb jg ucb G^Oluqjs nkl~~+ lge ju rggbnb~~lqjkz

    vqdkjhbqlub~ ucb groabq dh nkl~~b~' jgnb lg lvvkjnlujdg ojicu gbbe odqb uclg dgb mjge dhG^Oluqjs+ blnc

    yjuc l ejhhbqbgumjge dhG^Nbkk+ ju ndrkeabndob nkruubqbe yjuc G^Oluqjs ~rankl~~b~'Bxbqz ujobzdrjgxbgube

    l gby mjgedhG^Nbkk+ zdre lk~dclxbud ebhjgbl gby mjge dhG^Oluqjs' Odqbdxbq+ vqdiqloobq~ dg ejhhbqbgu

    vqd`bnu~ ydrke ab yqjujgi xjqurlkkz jebgujnlk ndeb ud ed ucb ~lob da+ lkk ud olmb rv hdq G^Oluqjs)~ hljkrqb

    ud ed ju'

    L abuubq ~dkrujdg+ ucb ~dkrujdg ucb G^Oluqjs nkl~~ lnurlkkz ledvu~+ j~ ud lkkdy G^Oluqjs jg~ulgnb~ ud ab

    jgjujlkjpbe yjuc l mjge dhG^Nbkkyjuc l nkl~~ da`bnu' Ju ebhjgb~ l ~buNbkkNkl~~0 obucde uclu vl~~b~ ucb

    nkl~~ da`bnu hdq ucb mjge dhG^Nbkk da`bnu lg G^Oluqjs ~cdrke r~b ud hjkk bovuz ~kdu~0

    ]ozOluqjs ~buNbkkNkl~~0]G^AruudgNbkk nkl~~__=

    Ucb G^Oluqjs da`bnu r~b~ ucb nkl~~ da`bnu ud vqdernb gby nbkk~ ycbg ju~ hjq~u jgjujlkjpbe lge ycbgbxbq ju~

    qb~jpbe ud ndguljg odqb nbkk~' Ucj~ mjge dh nr~udojplujdg ydrke ab ejhhjnrku jh nkl~~b~ ybqbgu da`bnu~ uclu

    ndrke ab vl~~be jg ob~~lib~ lge l~~jigbe ud xlqjlakb~'

    >6 Nkl~~b~166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    31/137

    Xlqjlakb~ lge Nkl~~ Da`bnu~

    Ycbg zdr ebhjgb l gby nkl~~+ zdr nlg ~vbnjhz jg~ulgnb xlqjlakb~' Bxbqz jg~ulgnb dh ucb nkl~~ nlg oljguljg ju~

    dyg ndvz dh ucb xlqjlakb~ zdr ebnklqbblnc da`bnu ndguqdk~ ju~ dyg elul' Ucbqb j~+ cdybxbq+ gd nkl~~

    xlqjlakb ndrgubqvlqu ud lg jg~ulgnb xlqjlakb' Dgkz jgubqglk elul~uqrnurqb~+ jgjujlkjpbe hqdoucb nkl~~ ebhjgjujdg+

    lqb vqdxjebe hdq ucb nkl~~' Odqbdxbq+ l nkl~~ da`bnu cl~ gd lnnb~~ ud ucb jg~ulgnb xlqjlakb~ dh lgz jg~ulgnb~=ju nlgu jgjujlkjpb+ qble+ dq lkubq ucbo'

    Hdq lkk ucb jg~ulgnb~ dh l nkl~~ ud ~clqb elul+ zdr or~u ebhjgb lg bsubqglk xlqjlakb dh ~dob ~dqu' Ucb ~jovkb~u

    ylz ud ed ucj~ j~ ud ebnklqb l xlqjlakb jg ucb nkl~~ jovkbobgulujdg hjkb l~ jkkr~uqlube jg ucb hdkkdyjgi ndeb

    hqliobgu'

    jgu ONK^IkdalkXlqjlakb=

    Fjovkbobgulujdg OzNkl~~

    $$ jovkbobgulujdg ndgujgrb~

    Jg l odqb ~dvcj~ujnlube jovkbobgulujdg+ zdr nlgebnklqb l xlqjlakbud ab~ulujn+ lgevqdxjeb nkl~~ obucde~

    ud olglib ju' Ebnklqjgi l xlqjlakb ~ulujn kjoju~ ju~ ~ndvb ud `r~u ucb nkl~~lge ud `r~u ucb vlqu dh ucb nkl~~

    uclu~ jovkbobgube jg ucb hjkb' #Ucr~ rgkjmb jg~ulgnb xlqjlakb~+ ~ulujn xlqjlakb~ nlggdu ab jgcbqjube az+ dqejqbnukz olgjvrklube az+ ~rankl~~b~'* Ucj~ vluubqg j~ ndoodgkz r~be ud ebhjgb ~clqbe jg~ulgnb~ dh l nkl~~

    #~rnc l~ ~jgikbudg~+ ~bb Nqblujgi l ^jgikbudg Jg~ulgnb jg Ndndl Hrgelobgulk~ Irjeb*'

    ~ulujn OzNkl~~ ONK^^clqbeJg~ulgnb=

    Fjovkbobgulujdg OzNkl~~

    - #OzNkl~~ *~clqbeJg~ulgnb

    }

    $$ ncbnm hdq bsj~ubgnb dh ~clqbe jg~ulgnb

    $$ nqblub jh gbnb~~lqz

    qburqg ONK^^clqbeJg~ulgnb=

    $$ jovkbobgulujdg ndgujgrb~

    ^ulujn xlqjlakb~ cbkv ijxb ucb nkl~~ da`bnuodqb hrgnujdglkjuz uclg `r~u uclu dh l hlnudqz vqdernjgi jg~ulgnb~=

    ju nlg lvvqdlnc abjgi l ndovkbub lge xbq~lujkb da`bnu jg ju~dyg qjicu' L nkl~~ da`bnu nlgab r~be ud nddqejglub

    ucb jg~ulgnb~ ju nqblub~+ ej~vbg~b jg~ulgnb~ hqdo kj~u~ dh da`bnu~ lkqblez nqblube+ dq olglib ducbq vqdnb~~b~

    b~~bgujlk ud ucb lvvkjnlujdg' Jg ucb nl~b ycbg zdr gbbe dgkz dgb da`bnu dh l vlqujnrklq nkl~~+ zdr nlg vru lkk

    ucb da`bnu~ ~ulub jgud ~ulujn xlqjlakb~ lge r~b dgkz nkl~~ obucde~' Ucj~ ~lxb~ ucb ~ubv dh lkkdnlujgi lge

    jgjujlkjpjgi lg jg~ulgnb'

    Gdub0 Ju j~ lk~d vd~~jakb ud r~bbsubqglk xlqjlakb~ uclu lqbgduebnklqbe~ulujn+ aru ucb kjojube ~ndvb dh ~ulujnxlqjlakb~ abuubq ~bqxb~ ucb vrqvd~b dh bgnlv~rklujgi elul jgud ~bvlqlub da`bnu~'

    Jgjujlkjpjgi l Nkl~~ Da`bnu

    Jh zdr ylgu ud r~b l nkl~~ da`bnu hdq lgzucjgi ab~jeb~ lkkdnlujgi jg~ulgnb~+ zdr olz gbbe ud jgjujlkjpb ju r~u

    l~ zdr ydrke lg jg~ulgnb' Lkucdric vqdiqlo~ edgu lkkdnlub nkl~~ da`bnu~+ Da`bnujxb/N edb~ vqdxjeb l ylz

    hdq vqdiqlo~ ud jgjujlkjpb ucbo'

    Jh l nkl~~ olmb~ r~b dh ~ulujn dq ikdalk xlqjlakb~+ ucb jgjujlkjpb obucde j~ l idde vklnb ud ~bu ucbjq jgjujlk

    xlkrb~' Hdq bslovkb+ jh l nkl~~ oljguljg~ lg lqqlz dh jg~ulgnb~+ ucb jgjujlkjpb obucde ndrke ~bu rv ucb

    lqqlz lge bxbg lkkdnlub dgb dq uyd ebhlrku jg~ulgnb~ ud clxb ucbo qblez'

    Nkl~~b~ >2166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    36/137

    Ucb hjq~u kjgb dh ucb ebnklqlujdg vqb~bgu~ ucb gby nkl~~ glob lge kjgm~ ju ud ju~ ~rvbqnkl~~' Ucb ~rvbqnkl~~

    ebhjgb~ ucb vd~jujdg dh ucb gby nkl~~ jg ucb jgcbqjulgnb cjbqlqncz+ l~ ej~nr~~be rgebq Jgcbqjulgnb #vlib

    15*' Jh ucb ndkdg lge ~rvbqnkl~~ glob lqb dojuube+ ucb gby nkl~~ j~ ebnklqbe l~ l qddu nkl~~+ l qjxlk ud ucb

    G^Da`bnu nkl~~'

    Hdkkdyjgi ucb hjq~u vlqu dh ucb nkl~~ ebnklqlujdg+ aqlnb~ bgnkd~b ebnklqlujdg~ dhjg~ulgnb xlqjlakb~+ ucb elul~uqrnurqb~ uclu lqb vlqu dh blnc jg~ulgnb dh ucb nkl~~' Cbqb~ l vlqujlk kj~u dh jg~ulgnb xlqjlakb~ uclu ojicu ab

    ebnklqbe jg ucb Qbnulgikb nkl~~0

    hkdlu yjeuc=

    hkdlu cbjicu=

    ADDK hjkkbe=

    G^Ndkdq hjkkNdkdq=

    Obucde~ hdq ucb nkl~~ lqb ebnklqbe gbsu+ lhubq ucb aqlnb~ bgnkd~jgi jg~ulgnb xlqjlakb~ lge abhdqb ucb bge dh

    ucb nkl~~ ebnklqlujdg' Ucb glob~ dh obucde~ uclu nlg ab r~be az nkl~~ da`bnu~+ nkl~~ obucde~+ lqb vqbnbebeaz l vkr~ ~jig0

    - lkkdn=

    Ucb obucde~ uclu jg~ulgnb~ dh l nkl~~ nlg r~b+ jg~ulgnb obucde~+ lqb olqmbe yjuc l ojgr~ ~jig0

    / #xdje*ej~vklz=

    Lkucdric ju~ gdu l ndoodg vqlnujnb+ zdr nlg ebhjgb l nkl~~ obucde lge lg jg~ulgnb obucde yjuc ucb ~lob

    glob' L obucde nlg lk~d clxb ucb ~lob glob l~ lg jg~ulgnb xlqjlakb' Ucj~ j~ odqb ndoodg+ b~vbnjlkkz jh

    ucb obucde qburqg~ ucb xlkrb jg ucb xlqjlakb' Hdq bslovkb+ Njqnkb cl~ l qlejr~ obucde uclu ndrke olunc l

    qlejr~ jg~ulgnb xlqjlakb'

    Obucde qburqg uzvb~ lqb ebnklqbe r~jgi ucb ~ulgelqe N ~zguls hdq nl~ujgi dgb uzvb ud lgducbq0

    / #hkdlu*qlejr~=

    Lqirobgu uzvb~ lqb ebnklqbe jg ucb ~lob ylz0

    / #xdje*~buQlejr~0#hkdlu*lQlejr~=

    Jh l qburqg dq lqirobgu uzvb j~gu bsvkjnjukz ebnklqbe+ ju~ l~~robe ud ab ucb ebhlrku uzvb hdq obucde~ lge

    ob~~lib~lg je' Ucb lkkdn obucde jkkr~uqlube blqkjbq qburqg~ je'

    Ycbg ucbqb~ odqb uclg dgblqirobgu+ ucblqirobgu~ lqbebnklqbe yjucjgucb obucdeglob lhubq ucbndkdg~'

    Lqirobgu~ aqblm ucb glob lvlqu jg ucb ebnklqlujdg+ r~u l~ jg l ob~~lib' Hdq bslovkb0

    / #xdje*~buYjeuc0#hkdlu*yjeuc cbjicu0#hkdlu*cbjicu=

    Obucde~ uclu ulmb l xlqjlakb groabq dh lqirobgu~ ebnklqb ucbo r~jgi l ndool lge bkkjv~j~ vdjgu~+ r~u l~

    l hrgnujdg ydrke0

    / olmbIqdrv0iqdrv+ '''=

    >8 Nkl~~ Jgubqhlnb166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    37/137

    Jovdqujgi ucb Jgubqhlnb

    Ucb jgubqhlnb hjkb or~u ab jgnkrebe jg lgz ~drqnb oderkb uclu ebvbge~ dg ucb nkl~~ jgubqhlnbuclu jgnkreb~

    lgz oderkb uclu nqblub~ lg jg~ulgnb dh ucb nkl~~+ ~bge~ l ob~~lib ud jgxdmb l obucde ebnklqbe hdq ucb nkl~~+

    dq obgujdg~ lg jg~ulgnb xlqjlakb ebnklqbe jg ucb nkl~~' Ucb jgubqhlnb j~ r~rlkkz jgnkrebe yjuc ucb .jovdqu

    ejqbnujxb0

    .jovdqu !Qbnulgikb'c!

    Ucj~ ejqbnujxb j~ jebgujnlk ud .jgnkreb+ bsnbvu uclu ju olmb~ ~rqb uclu ucb ~lob hjkb j~ gbxbq jgnkrebe odqb

    uclg dgnb' Ju~ ucbqbhdqb vqbhbqqbe lge j~ r~be jg vklnb dh.jgnkreb jg ndeb bslovkb~ ucqdricdru

    Da`bnujxb/Nal~be ednrobgulujdg'

    Ud qbhkbnu ucb hlnu uclu l nkl~~ ebhjgjujdg arjke~ dg ucb ebhjgjujdg~ dh jgcbqjube nkl~~b~+ lg jgubqhlnb hjkb abijg~

    az jovdqujgi ucb jgubqhlnb hdq ju~ ~rvbqnkl~~0

    .jovdqu !Ju~^rvbqnkl~~'c!

    Fjgubqhlnb Nkl~~Glob 0 Ju~^rvbqnkl~~}

    jg~ulgnb xlqjlakb ebnklqlujdg~

    obucde ebnklqlujdg~

    Fbge

    Ucj~ ndgxbgujdg oblg~ uclu bxbqz jgubqhlnb hjkb jgnkreb~+ jgejqbnukz+ ucb jgubqhlnb hjkb~ hdq lkk jgcbqjube nkl~~b~'

    Ycbg l ~drqnb oderkb jovdqu~ l nkl~~ jgubqhlnb+ ju ibu~ jgubqhlnb~ hdq ucb bgujqb jgcbqjulgnb cjbqlqncz uclu

    ucb nkl~~ j~ arjku rvdg'

    Gdub uclu jh ucbqb j~ l vqbndovl vqbndovjkbe cblebquclu ~rvvdqu~ ucb ~rvbqnkl~~+ zdr olz vqbhbq ud

    jovdqu ucb vqbndov jg~uble'

    Qbhbqqjgi ud Ducbq Nkl~~b~

    Lg jgubqhlnb hjkb ebnklqb~ l nkl~~ lge+ az jovdqujgi ju~ ~rvbqnkl~~+ jovkjnjukz ndguljg~ ebnklqlujdg~ hdq lkk

    jgcbqjube nkl~~b~+ hqdo G^Da`bnu dg edyg ucqdric ju~ ~rvbqnkl~~' Jh ucb jgubqhlnb obgujdg~ nkl~~b~ gdu jg

    ucj~ cjbqlqncz+ ju or~u jovdqu ucbo bsvkjnjukz dq ebnklqb ucbo yjuc ucb Fnkl~~ ejqbnujxb0

    Fnkl~~ Qbnulgikb+ Njqnkb=

    Ucj~ ejqbnujxb ~jovkz jghdqo~ ucb ndovjkbq uclu Qbnulgikb lge Njqnkb lqb nkl~~ glob~' Ju edb~gu jovdqu

    ucbjq jgubqhlnb hjkb~'

    Lg jgubqhlnb hjkbobgujdg~ nkl~~ glob~ ycbg ju ~ulujnlkkz uzvb~ jg~ulgnb xlqjlakb~+ qburqg xlkrb~+ lgelqirobgu~'

    Hdq bslovkb+ ucj~ ebnklqlujdg

    / #xdje*~buVqjolqzNdkdq0#G^Ndkdq *lNdkdq=

    obgujdg~ ucb G^Ndkdq nkl~~'

    ^jgnb ebnklqlujdg~ kjmb ucj~ ~jovkz r~b ucb nkl~~ glob l~ l uzvb lge edgu ebvbge dg lgz ebuljk~ dh ucb nkl~~

    jgubqhlnb #ju~ obucde~ lge jg~ulgnb xlqjlakb~*+ ucbFnkl~~ejqbnujxbijxb~ ucb ndovjkbq~rhhjnjbgu hdqbylqgjgi

    dh yclu ud bsvbnu' Cdybxbq+ ycbqb ucb jgubqhlnb ud l nkl~~ j~ lnurlkkz r~be #jg~ulgnb~ nqblube+ ob~~lib~ ~bgu*+

    Nkl~~ Jgubqhlnb >9166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    38/137

    ucb nkl~~ jgubqhlnb or~u ab jovdqube' Uzvjnlkkz+ lg jgubqhlnb hjkb r~b~ Fnkl~~ ud ebnklqb nkl~~b~+ lge ucb

    ndqqb~vdgejgi jovkbobgulujdg hjkb jovdqu~ ucbjq jgubqhlnb~ #~jgnb ju yjkk gbbe ud nqblub jg~ulgnb~ dh ucd~b

    nkl~~b~ dq ~bge ucbo ob~~lib~*'

    Ucb Fnkl~~ ejqbnujxb ojgjojpb~ ucb lodrgu dh ndeb ~bbg az ucb ndovjkbq lge kjgmbq+ lge j~ ucbqbhdqb ucb

    ~jovkb~u ylz ud ijxb l hdqylqe ebnklqlujdg dh l nkl~~ glob' Abjgi ~jovkb+ ju lxdje~ vdubgujlk vqdakbo~ uclu

    olzndob yjuc jovdqujgi hjkb~ uclu jovdqu ~ujkk ducbq hjkb~' Hdq bslovkb+ jh dgb nkl~~ ebnklqb~ l ~ulujnlkkz uzvbe

    jg~ulgnb xlqjlakb dh lgducbq nkl~~+ lge ucbjq uyd jgubqhlnb hjkb~ jovdqu blnc ducbq+ gbjucbq nkl~~ olz ndovjkb

    ndqqbnukz'

    Ucb Qdkb dh ucb Jgubqhlnb

    Ucb vrqvd~b dh ucb jgubqhlnb hjkb j~ ud ebnklqb ucb gby nkl~~ ud ducbq ~drqnb oderkb~ #lge ud ducbq

    vqdiqloobq~*' Ju ndguljg~ lkk ucb jghdqolujdg ucbz gbbe ud ydqm yjuc ucb nkl~~ #vqdiqloobq~ ojicu lk~d

    lvvqbnjlub l kjuukb ednrobgulujdg*'

    Ucb jgubqhlnb hjkb ubkk~ r~bq~ cdy ucb nkl~~ j~ ndggbnube jgud ucb jgcbqjulgnb cjbqlqncz lge yclu ducbqnkl~~b~jgcbqjube dq ~jovkz qbhbqqbe ud ~dobycbqb jg ucb nkl~~lqb gbbebe'

    Ucb jgubqhlnb hjkb lk~d kbu~ ucb ndovjkbq mgdy yclu jg~ulgnb xlqjlakb~ lg da`bnu ndguljg~+ lge ubkk~vqdiqloobq~ yclu xlqjlakb~ ~rankl~~b~ jgcbqju' Lkucdric jg~ulgnb xlqjlakb~ lqb od~u glurqlkkz xjbybe

    l~ l oluubq dh ucb jovkbobgulujdg dh l nkl~~ qlucbq uclg ju~ jgubqhlnb+ ucbz or~u gbxbqucbkb~~ ab ebnklqbe

    jg ucb jgubqhlnb hjkb' Ucj~ j~ abnlr~b ucb ndovjkbq or~u ab lylqb dh ucb ~uqrnurqb dh lg da`bnu ycbqb ju~

    r~be+ gdu `r~u ycbqb ju~ ebhjgbe' L~ l vqdiqloobq+ cdybxbq+ zdr nlg ibgbqlkkz jigdqb ucb jg~ulgnb

    xlqjlakb~ dh ucb nkl~~b~ zdr r~b+ bsnbvu ycbg ebhjgjgi l ~rankl~~'

    Hjglkkz+ ucqdric ju~ kj~u dh obucdeebnklqlujdg~+ ucb jgubqhlnb hjkb kbu~ ducbq oderkb~ mgdy yclu ob~~lib~nlg ab ~bgu ud ucb nkl~~ da`bnu lge jg~ulgnb~ dh ucb nkl~~' Bxbqz obucde uclu nlg ab r~be dru~jeb ucb

    nkl~~ ebhjgjujdg j~ ebnklqbe jg ucb jgubqhlnb hjkb= obucde~ uclu lqb jgubqglk ud ucb nkl~~ jovkbobgulujdg

    nlg ab dojuube'

    Nkl~~ Jovkbobgulujdg

    Ucb ebhjgjujdg dh l nkl~~ j~ ~uqrnurqbe xbqz ornc kjmb ju~ ebnklqlujdg' Ju abijg~ yjuc ucb Fjovkbobgulujdg

    ejqbnujxb lge bge~ yjuc ucb Fbge ejqbnujxb0

    Fjovkbobgulujdg Nkl~~Glob 0 Ju~^rvbqnkl~~

    }

    jg~ulgnb xlqjlakb ebnklqlujdg~

    obucde ebhjgjujdg~

    Fbge

    Cdybxbq+ bxbqz jovkbobgulujdg hjkb or~u jovdqu ju~ dyg jgubqhlnb' Hdq bslovkb+ Qbnulgikb'o jovdqu~

    Qbnulgikb'c' Abnlr~b ucb jovkbobgulujdg edb~gu gbbe ud qbvblu lgz dh ucb ebnklqlujdg~ ju jovdqu~+ ju nlg

    ~lhbkz doju0

    Ucb glob dh ucb ~rvbqnkl~~ Ucb ebnklqlujdg~ dh jg~ulgnb xlqjlakb~

    >3 Nkl~~ Jovkbobgulujdg166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    39/137

    Ucj~ ~jovkjhjb~ ucb jovkbobgulujdg lge olmb~ ju oljgkz ebxdube ud obucde ebhjgjujdg~0

    .jovdqu !Nkl~~Glob'c!

    Fjovkbobgulujdg Nkl~~Glob

    obucde ebhjgjujdg~

    Fbge

    Obucde~ hdq l nkl~~ lqb ebhjgbe+ kjmb N hrgnujdg~+ yjucjg l vljq dh aqlnb~' Abhdqb ucb aqlnb~+ ucbzqb ebnklqbe

    jg ucb ~lob olggbq l~ jg ucb jgubqhlnb hjkb+ aru yjucdru ucb ~bojndkdg' Hdq bslovkb0

    - #je*lkkdn

    }

    '''

    / #ADDK*j~Hjkkbe

    }

    '''

    / #xdje*~buHjkkbe0#ADDK*hkli

    }

    '''

    Obucde~ uclu ulmb l xlqjlakb groabq dh lqirobgu~ clgekb ucbo r~u l~ l hrgnujdg ydrke0

    .jovdqu ;~uelqi'c7

    '''

    / ibuIqdrv0iqdrv+ '''

    }

    xlTkj~u lv=xlT~ulqu#lv+ iqdrv*=

    '''

    Qbhbqqjgi ud Jg~ulgnb Xlqjlakb~

    Az ebhlrku+ ucb ebhjgjujdg dh lg jg~ulgnb obucde cl~ lkk ucb jg~ulgnb xlqjlakb~ dh ucb da`bnu yjucjg ju~ ~ndvb'

    Ju nlg qbhbq ud ucbo ~jovkz az glob' Lkucdric ucb ndovjkbq nqblub~ ucb b|rjxlkbgu dh N ~uqrnurqb~ ud ~udqb

    jg~ulgnb xlqjlakb~+ ucbbslnuglurqb dh ucb ~uqrnurqb j~ cjeebg' Zdr edgu gbbe bjucbq dh ucb~uqrnurqb dvbqludq~

    #' dq /7* ud qbhbq ud lg da`bnu~ elul' Hdq bslovkb+ ucb hdkkdyjgi obucde ebhjgjujdg qbhbq~ ud ucb qbnbjxbq~

    hjkkbe jg~ulgnb xlqjlakb0

    / #xdje*~buHjkkbe0#ADDK*hkli

    }

    hjkkbe ? hkli=

    '''

    Gbjucbq ucb qbnbjxjgi da`bnu gdq ju~ hjkkbe jg~ulgnb xlqjlakb j~ ebnklqbe l~ lg lqirobgu ud ucj~ obucde+ zbu

    ucb jg~ulgnb xlqjlakb hlkk~ yjucjg ju~ ~ndvb' Ucj~ ~jovkjhjnlujdg dh obucde ~zguls j~ l ~jigjhjnlgu ~cdquclge jg

    ucb yqjujgi dh Da`bnujxb/N ndeb'

    Nkl~~ Jovkbobgulujdg >:166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    40/137

    Ycbg ucb jg~ulgnb xlqjlakb abkdgi~ ud lg da`bnu uclu~ gdu ucb qbnbjxbq+ ucb da`bnu~ uzvb or~u ab oleb

    bsvkjnju ud ucb ndovjkbq ucqdric ~ulujn uzvjgi' Jg qbhbqqjgi ud ucb jg~ulgnb xlqjlakb dh l ~ulujnlkkz uzvbe da`bnu+

    ucb ~uqrnurqb vdjgubq dvbqludq #/7* j~ r~be'

    ^rvvd~b+ hdq bslovkb+ uclu ucb jakjgi nkl~~ ebnklqb~ l ~ulujnlkkz uzvbe da`bnu+ uyjg+ l~ lg jg~ulgnb xlqjlakb0

    Fjgubqhlnb ^jakjgi 0 G^Da`bnu}

    ^jakjgi uyjg=

    jgu ibgebq=

    ~uqrnu hblurqb~ lvvblqlgnb=

    L~ kdgi l~ ucb jg~ulgnb xlqjlakb~ dh ucb ~ulujnlkkz uzvbe da`bnu lqb yjucjg ucb ~ndvb dh ucb nkl~~ #l~ ucbz lqb

    cbqb abnlr~b uyjg j~ uzvbe ud ucb ~lob nkl~~*+ l ^jakjgi obucde nlg ~bu ucbo ejqbnukz0

    / olmbJebgujnlkUyjg

    }

    jh # ,uyjg * }

    uyjg ? ]]^jakjgi lkkdn_ jgju_=

    uyjg/7ibgebq ? ibgebq=

    uyjg/7lvvblqlgnb ? lvvblqlgnb=

    qburqg uyjg=

    Ucb ^ndvb dh Jg~ulgnb Xlqjlakb~

    Lkucdric ucbzqb ebnklqbe jg ucb nkl~~ jgubqhlnb+ jg~ulgnb xlqjlakb~ lqb odqb l oluubq dh ucb ylz l nkl~~ j~

    jovkbobgube uclg dh ucb ylz ju~ r~be' Lg da`bnu~ jgubqhlnb kjb~ jg ju~ obucde~+ gdu jg ju~ jgubqglk elul

    ~uqrnurqb~'

    Dhubg ucbqb~ l dgb/ud/dgb ndqqb~vdgebgnb abuybbg l obucde lge lg jg~ulgnb xlqjlakb+ l~ jg ucb hdkkdyjgi

    bslovkb0

    / #ADDK*j~Hjkkbe

    }

    qburqg hjkkbe=

    Aru ucj~ gbbe gdu ab ucb nl~b' dob obucde~ ojicu qburqg jghdqolujdg gdu ~udqbe jg jg~ulgnb xlqjlakb~+ lge

    ~dob jg~ulgnb xlqjlakb~ ojicu ~udqb jghdqolujdg uclu lg da`bnu j~ rgyjkkjgi ud qbxblk'

    L~ l nkl~~ j~ qbxj~be hqdo ujob ud ujob+ ucbncdjnb dh jg~ulgnb xlqjlakb~ olz nclgib+bxbg ucdricucb obucde~

    ju ebnklqb~ qboljg ucb ~lob' L~ kdgi l~ ob~~lib~ lqb ucb xbcjnkb hdq jgubqlnujgi yjuc jg~ulgnb~ dh ucb nkl~~+

    ucb~b nclgib~ ydgu qblkkz lhhbnu ju~ jgubqhlnb'

    Ud bghdqnb ucb lajkjuz dh lg da`bnu ud cjeb ju~ elul+ ucb ndovjkbq kjoju~ ucb ~ndvb dh jg~ulgnb xlqjlakb~uclu

    j~+ kjoju~ ucbjq xj~jajkjuz yjucjg ucb vqdiqlo' Aru ud vqdxjeb hkbsjajkjuz+ ju lk~d kbu~ zdr bsvkjnjukz ~bu ucb ~ndvb

    lu ucqbb ejhhbqbgu kbxbk~' Blnc kbxbk j~ olqmbe az l ndovjkbq ejqbnujxb0

    OblgjgiEjqbnujxb

    Ucb jg~ulgnb xlqjlakb j~ lnnb~~jakb dgkz yjucjg ucb nkl~~ uclu ebnklqb~ ju'Fvqjxlub

    56 Nkl~~ Jovkbobgulujdg166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    41/137

    OblgjgiEjqbnujxb

    Ucb jg~ulgnb xlqjlakb j~ lnnb~~jakb yjucjg ucb nkl~~ uclu ebnklqb~ ju lge yjucjg nkl~~b~ uclu

    jgcbqju ju'

    Fvqdubnube

    Ucb jg~ulgnb xlqjlakb j~ lnnb~~jakb bxbqzycbqb'Fvrakjn

    R~jgi ucb odebqg qrgujob+ lg Fvlnmlib jg~ulgnb xlqjlakb lnu~ kjmb Fvrakjn jg~jeb ucb

    jolib uclu jovkbobgu~ ucb nkl~~+ aru Fvqjxlub dru~jeb'

    Ucj~ j~ lglkdidr~ ud vqjxlubTbsubqg hdq xlqjlakb~ lge hrgnujdg~' Lgz ndeb dru~jeb ucb

    nkl~~ jovkbobgulujdg~ jolib uclu uqjb~ ud r~b ucb jg~ulgnb xlqjlakb yjkk ibu l kjgm bqqdq' Ucj~

    j~ od~u r~bhrk hdq jg~ulgnb xlqjlakb~ jg hqlobydqm nkl~~b~+ ycbqb Fvqjxlub olz ab udd

    qb~uqjnujxb aru Fvqdubnube dq Fvrakjn udd vbqoj~~jxb'

    Fvlnmlib

    Ucj~ j~ jkkr~uqlube jg Hjirqb 1/

  • 8/14/2019 The Objective-C Programming Language - Book

    42/137

    Fvrakjn

    je ad~~=

    Az ebhlrku+ lkk rgolqmbe jg~ulgnb xlqjlakb~ #kjmb glob ladxb* lqb Fvqdubnube'

    Lkk jg~ulgnb xlqjlakb~ uclu l nkl~~ ebnklqb~+ gd oluubq cdy ucbzqb olqmbe+ lqb yjucjg ucb ~ndvb dh ucb nkl~~ebhjgjujdg' Hdq bslovkb+ l nkl~~ uclu ebnklqb~ l `da jg~ulgnb xlqjlakb+ ~rnc l~ ucb Ydqmbq nkl~~ ~cdyg ladxb+

    nlg qbhbq ud ju jg l obucde ebhjgjujdg0

    / vqdodubUd0gbyVd~jujdg

    }

    je dke ? `da=

    `da ? gbyVd~jujdg=

    qburqg dke=

    Daxjdr~kz+ jh l nkl~~ ndrkegu lnnb~~ ju~ dyg jg~ulgnb xlqjlakb~+ ucb jg~ulgnb xlqjlakb~ ydrke ab dh gd r~b

    yclu~dbxbq'

    Gdqolkkz+ l nkl~~ lk~d cl~lnnb~~ud ucb jg~ulgnb xlqjlakb~ ju jgcbqju~' Ucblajkjuz ud qbhbq ud lg jg~ulgnb xlqjlakb

    j~ r~rlkkz jgcbqjube lkdgi yjuc ucb xlqjlakb' Ju olmb~ ~bg~b hdq nkl~~b~ ud clxb ucbjq bgujqb elul ~uqrnurqb~

    yjucjgucbjq ~ndvb+ b~vbnjlkkz jh zdr ucjgm dh l nkl~~ ebhjgjujdg l~ obqbkzlg bkladqlujdg dh ucbnkl~~b~ ju jgcbqju~

    hqdo' Ucb vqdodubUd0 obucde jkkr~uqlube blqkjbq ndrke r~u l~ ybkk clxb abbg ebhjgbe jg lgz nkl~~ uclu

    jgcbqju~ ucb `da jg~ulgnb xlqjlakb hqdo ucb Ydqmbq nkl~~'

    Cdybxbq+ ucbqb lqb qbl~dg~ ycz zdr ojicu ylgu ud qb~uqjnu jgcbqjujgi nkl~~b~ hqdo ejqbnukz lnnb~~jgi lg

    jg~ulgnb xlqjlakb0

    Dgnb l ~rankl~~ lnnb~~b~ lg jgcbqjube jg~ulgnb xlqjlakb+ ucb nkl~~ uclu ebnklqb~ ucb xlqjlakb j~ ujbe ud ucluvlqu dh ju~ jovkbobgulujdg' Jg klubq xbq~jdg~+ ju nlgu bkjojglubucbxlqjlakbdq lkubq ucbqdkb ju vklz~ yjucdru

    jglexbqubgukz aqblmjgi ucb ~rankl~~'

    Odqbdxbq+ jh l ~rankl~~ lnnb~~b~ lg jgcbqjube jg~ulgnb xlqjlakb lge lkubq~ ju~ xlkrb+ ju olz jglexbqubgukzjguqdernb ari~ jg ucbnkl~~ uclu ebnklqb~ ucbxlqjlakb+ b~vbnjlkkz jh ucbxlqjlakb j~ jgxdkxbe jg nkl~~/jgubqglk

    ebvbgebgnjb~'

    Ud kjoju lg jg~ulgnb xlqjlakb~ ~ndvb ud `r~u ucb nkl~~ uclu ebnklqb~ ju+ zdr or~u olqm ju Fvqjxlub' Jg~ulgnb

    xlqjlakb~ olqmbe Fvqjxlub lqb dgkz lxljklakb ud ~rankl~~b~ az nlkkjgi vrakjn lnnb~~dq obucde~+ jh ucbz bsj~u'

    Lu ucbducbq bsuqbob+ olqmjgil xlqjlakbFvrakjnolmb~ ju ibgbqlkkz lxljklakb+ bxbg dru~jebdh nkl~~ ebhjgjujdg~

    uclu jgcbqju dq ebnklqb ucb xlqjlakb' Gdqolkkz+ ud ibu jghdqolujdg ~udqbe jg lg jg~ulgnb xlqjlakb+ ducbq da`bnu~

    or~u ~bge l ob~~lib qb|rb~ujgi ju' Cdybxbq+ l vrakjn jg~ulgnb xlqjlakb nlg ab lnnb~~be lgzycbqb l~ jh ju

    ybqb l hjbke jg l N ~uqrnurqb' Hdq bslovkb0

    Ydqmbq nbd ? ]]Ydqmbq lkkdn_ jgju_=

    nbd/7ad~~ ? gjk=

    Gdub uclu ucb da`bnu or~u ab ~ulujnlkkz uzvbe'

    Olqmjgi jg~ulgnb xlqjlakb~ Fvrakjn ebhblu~ ucb lajkjuz dh lg da`bnu ud cjeb ju~ elul' Ju qrg~ ndrgubq ud l

    hrgelobgulk vqjgnjvkb dh da`bnu/dqjbgube vqdiqloojgiucb bgnlv~rklujdg dh elul yjucjg da`bnu~ ycbqb

    ju~ vqdubnube hqdo xjby lge jglexbqubgu bqqdq' Vrakjn jg~ulgnb xlqjlakb~ ~cdrke ucbqbhdqb ab lxdjebe bsnbvu

    jg bsuqldqejglqz nl~b~'

    51 Nkl~~ Jovkbobgulujdg166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    43/137

    Ob~~lib~ ud ~bkh lge ~rvbq

    Da`bnujxb/N vqdxjeb~ uyd ubqo~ uclu nlg ab r~be yjucjg l obucde ebhjgjujdg ud qbhbq ud ucb da`bnu uclu

    vbqhdqo~ ucb obucde~bkh lge ~rvbq'

    ^rvvd~b+ hdq bslovkb+ uclu zdr ebhjgb l qbvd~jujdg obucde uclu gbbe~ ud nclgib ucb nddqejglub~ dh

    yclubxbq da`bnu ju lnu~ dg' Ju nlg jgxdmb ucb ~buDqjijg00 obucde ud olmb ucb nclgib' Lkk ju gbbe~ ud ed

    j~ ~bge l ~buDqjijg00ob~~lib ud ucb ~lob da`bnu uclu ucb qbvd~jujdgob~~lib ju~bkh yl~ ~bgu ud' Ycbg

    zdrqb yqjujgi ucb qbvd~jujdg ndeb+ zdr nlg qbhbq ud uclu da`bnu l~ bjucbq ~bkh dq ~rvbq' Ucb qbvd~jujdg

    obucde ndrke qble bjucbq0

    / qbvd~jujdg

    }

    '''

    ]~bkh ~buDqjijg0~dobS 0~dobZ_=

    '''

    dq0

    / qbvd~jujdg

    }

    '''

    ]~rvbq ~buDqjijg0~dobS 0~dobZ_=

    '''

    Cbqb+ ~bkh lge ~rvbq aduc qbhbq ud ucb da`bnu qbnbjxjgi l qbvd~jujdgob~~lib+ yclubxbq da`bnu uclu olz

    clvvbg ud ab' Ucb uyd ubqo~ lqb |rjub ejhhbqbgu+ cdybxbq' ~bkh j~ dgb dh ucb cjeebg lqirobgu~ uclu ucb

    ob~~lijgi qdrujgb vl~~b~ ud bxbqz obucde= ju~ l kdnlk xlqjlakb uclu nlg ab r~be hqbbkz yjucjg l obucde

    jovkbobgulujdg+ r~u l~ ucb glob~ dh jg~ulgnb xlqjlakb~ nlg ab' ~rvbq j~ l ubqo uclu ~ra~ujurub~ hdq ~bkh

    dgkz l~ ucb qbnbjxbq jg l ob~~lib bsvqb~~jdg' L~ qbnbjxbq~+ ucb uyd ubqo~ ejhhbq vqjgnjvlkkz jg cdy ucbz lhhbnuucb ob~~lijgi vqdnb~~0

    ~bkh ~blqncb~ hdq ucb obucde jovkbobgulujdg jg ucb r~rlk olggbq+ ~ulqujgi jg ucb ej~vlunc ulakb dh ucbqbnbjxjgi da`bnu~ nkl~~' Jg ucb bslovkb ladxb+ ju ydrke abijg yjuc ucb nkl~~ dh ucb da`bnu qbnbjxjgi ucb

    qbvd~jujdg ob~~lib'

    ~rvbq ~ulqu~ ucb~blqnchdqucbobucdejovkbobgulujdg jg l xbqz ejhhbqbgu vklnb' Ju abijg~ jg ucb~rvbqnkl~~dh ucb nkl~~ uclu ebhjgb~ ucb obucde ycbqb ~rvbq lvvblq~' Jg ucb bslovkb ladxb+ ju ydrke abijg yjuc

    ucb ~rvbqnkl~~ dh ucb nkl~~ ycbqb qbvd~jujdg j~ ebhjgbe'

    Ycbqbxbq ~rvbq qbnbjxb~ l ob~~lib+ ucb ndovjkbq ~ra~ujurub~ lgducbq ob~~lijgi qdrujgb hdq ucb

    da`nTo~i^bge hrgnujdg' Ucb ~ra~ujurub qdrujgb kddm~ ejqbnukz ud ucb ~rvbqnkl~~ dh ucb ebhjgjgi nkl~~uclu

    j~+ ud ucb ~rvbqnkl~~ dh ucb nkl~~ ~bgejgi ucb ob~~lib ud~rvbqqlucbq uclg ud ucb nkl~~ dh ucb da`bnu qbnbjxjgiucb ob~~lib'

    Ob~~lib~ ud ~bkh lge ~rvbq 5>166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    44/137

    Lg Bslovkb

    Ucb ejhhbqbgnb abuybbg~bkh lge ~rvbqabndob~ nkblq jg l cjbqlqncz dh ucqbb nkl~~b~' ^rvvd~b+ hdqbslovkb+

    uclu yb nqblub lg da`bnu abkdgijgi ud l nkl~~ nlkkbe Kdy' Kdy~ ~rvbqnkl~~ j~ Oje= Oje~ ~rvbqnkl~~ j~ Cjic'

    Lkk ucqbb nkl~~b~ ebhjgb l obucde nlkkbe gbidujlub+ ycjnc ucbz r~b hdq l xlqjbuz dh vrqvd~b~' Jg leejujdg+

    Ojeebhjgb~ lg loajujdr~ obucdenlkkbeolmbKl~ujgiVblnb+ ycjnc lk~dcl~ gbbedh ucbgbidujlubobucde'

    Ucj~ j~ jkkr~uqlube jg Hjirqb 1/10

    Hjirqb 1/1 Cjic+ Oje+ Kdy

    Oje

    Cjic

    Kdy

    ~rvbqnkl~~

    gbidujlub

    ~rvbqnkl~~

    gbidujlub

    ~rvbqnkl~~

    gbidujlub

    olmbKl~ujgiVblnb

    Yb gdy ~bge l ob~~lib ud drq Kdy da`bnu ud vbqhdqo ucb olmbKl~ujgiVblnbobucde+ lge

    olmbKl~ujgiVblnb+ jg urqg+ ~bge~ l gbidujlub ob~~lib ud ucb ~lob Kdy da`bnu' Jh ~drqnb ndeb nlkk~ ucj~

    da`bnu ~bkh+

    / olmbKl~ujgiVblnb

    }

    ]~bkh gbidujlub_=

    '''

    ucb ob~~lijgi qdrujgb hjge~ ucb xbq~jdg dhgbidujlub ebhjgbe jg Kdy+ ~bkh~ nkl~~' Cdybxbq+ jh Oje~ ~drqnb

    ndeb nlkk~ ucj~ da`bnu ~rvbq+

    55 Ob~~lib~ ud ~bkh lge ~rvbq166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    45/137

    / olmbKl~ujgiVblnb

    }

    ]~rvbq gbidujlub_=

    '''

    ucb ob~~lijgi qdrujgb yjkk hjge ucb xbq~jdg dhgbidujlub ebhjgbe jg Cjic' Ju jigdqb~ ucb qbnbjxjgi da`bnu~nkl~~ #Kdy* lge ~mjv~ ud ucb ~rvbqnkl~~ dh Oje+ ~jgnb Oje j~ ycbqb olmbKl~ujgiVblnb j~ ebhjgbe' Gbjucbq

    ob~~lib hjge~ Oje~ xbq~jdg dhgbidujlub'

    L~ ucj~ bslovkb jkkr~uqlub~+ ~rvbq vqdxjeb~ l ylz ud azvl~~ l obucde uclu dxbqqjeb~ lgducbq obucde' Cbqb

    ju bglakbe olmbKl~ujgiVblnb ud lxdje ucb Oje xbq~jdg dhgbidujlub uclu qbebhjgbe ucb dqjijglk Cjic

    xbq~jdg'

    Gdu abjgi lakb ud qblnc Oje~ xbq~jdg dhgbidujlub olz ~bbo kjmb l hkly+ aru+ rgebq ucb njqnro~ulgnb~+ ju~

    qjicu ud lxdje ju0

    Ucb lrucdq dh ucb Kdy nkl~~ jgubgujdglkkz dxbqqdeb Oje~ xbq~jdg dhgbidujlub ~d uclu jg~ulgnb~ dh ucbKdy nkl~~ #lge ju~ ~rankl~~b~* ydrke jgxdmb ucb qbebhjgbe xbq~jdg dh ucb obucde jg~uble' Ucb eb~jigbq

    dh Kdy ejegu ylgu Kdy da`bnu~ ud vbqhdqo ucb jgcbqjube obucde'

    Jg ~bgejgi ucb ob~~lib ud~rvbq+ ucb lrucdq dh Oje~ olmbKl~ujgiVblnb obucde jgubgujdglkkz ~mjvvbedxbq Oje~ xbq~jdg dhgbidujlub #lge dxbq lgz xbq~jdg~ uclu ojicu ab ebhjgbe jg nkl~~b~ kjmb Kdy uclu

    jgcbqju hqdo Oje* ud vbqhdqo ucb xbq~jdg ebhjgbe jg ucb Cjic nkl~~' Oje~ eb~jigbq ylgube ud r~b ucb

    Cjic xbq~jdg dhgbidujlub lge gd ducbq'

    Oje~ xbq~jdg dhgbidujlub ndrke ~ujkk ab r~be+ aru ju ydrke ulmb l ejqbnu ob~~lib ud l Oje jg~ulgnb ud ed

    ju'

    R~jgi ~rvbq

    Ob~~lib~ ud ~rvbq lkkdy obucde jovkbobgulujdg~ ud ab ej~uqjarube dxbq odqb uclg dgb nkl~~' Zdr nlg

    dxbqqjeb lg bsj~ujgi obucdeud odejhz dq leeud ju+ lge~ujkk jgndqvdqlub ucbdqjijglk obucdejg ucbodejhjnlujdg0

    / gbidujlub

    }

    '''

    qburqg ]~rvbq gbidujlub_=

    Hdq ~dob ul~m~+ blnc nkl~~ jg ucb jgcbqjulgnb cjbqlqncz nlg jovkbobgu l obucde uclu edb~ vlqu dh ucb da

    lge vl~~b~ ucb ob~~lib dg ud ~rvbq hdq ucb qb~u' Ucb jgju obucde+ ycjnc jgjujlkjpb~ l gbykz lkkdnlube

    jg~ulgnb+ j~ eb~jigbe ud ydqm kjmb ucj~' Blnc jgju obucde cl~ qb~vdg~jajkjuz hdq jgjujlkjpjgi ucb jg~ulgnb

    xlqjlakb~ ebhjgbe jg ju~ nkl~~' Aru abhdqb edjgi ~d+ ju ~bge~ lg jgju ob~~lib ud ~rvbq ud clxb ucb nkl~~b~ ju

    jgcbqju~ hqdojgjujlkjpb ucbjq jg~ulgnb xlqjlakb~' Blncxbq~jdg dhjgju hdkkdy~ ucj~ vqdnberqb+ ~d nkl~~b~ jgjujlkjpbucbjq jg~ulgnb xlqjlakb~ jg ucb dqebq dh jgcbqjulgnb0

    / #je*jgju

    }

    jh #~bkh ? ]~rvbq jgju_* }

    '''

    Ob~~lib~ ud ~bkh lge ~rvbq 52166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    46/137

    Jgjujlkjpbq obucde~ clxb ~dob leejujdglk ndg~uqljgu~+ lge lqb eb~nqjabe jg odqb ebuljk jg Lkkdnlujgi lge

    Jgjujlkjpjgi Da`bnu~ #vlib 59*'

    Ju~ lk~d vd~~jakb ud ndgnbguqlub ndqb hrgnujdglkjuz jg dgbobucde ebhjgbe jg l ~rvbqnkl~~+ lgeclxb ~rankl~~b~

    jgndqvdqlub ucbobucdeucqdric ob~~lib~ ud~rvbq' Hdqbslovkb+bxbqz nkl~~ obucdeuclu nqblub~ lg jg~ulgnb

    or~u lkkdnlub ~udqlib hdq ucb gby da`bnu lge jgjujlkjpb ju~ j~l xlqjlakb ud ucb nkl~~ ~uqrnurqb' Ucj~ j~ uzvjnlkkz

    kbhu ud ucb lkkdn lge lkkdnYjucPdgb0 obucde~ ebhjgbe jg ucb G^Da`bnu nkl~~' Jh lgducbq nkl~~ dxbqqjeb~

    ucb~b obucde~ #l qlqb nl~b*+ ju nlg ~ujkk ibu ucb al~jn hrgnujdglkjuz az ~bgejgi l ob~~lib ud ~rvbq'

    Qbebhjgjgi ~bkh

    ~rvbq j~ ~jovkz l hkli ud ucb ndovjkbq ubkkjgi ju ycbqb ud abijg ~blqncjgi hdq ucb obucde ud vbqhdqo= ju~ r~be

    dgkz l~ ucb qbnbjxbq dh l ob~~lib' Aru ~bkh j~ l xlqjlakb glob uclu nlg ab r~be jg lgz groabq dh ylz~+ bxbg

    l~~jigbe l gby xlkrb'

    Ucbqb~ l ubgebgnz ud ed `r~u uclu jg ebhjgjujdg~ dh nkl~~ obucde~' Nkl~~ obucde~ lqb dhubg ndgnbqgbe gdu

    yjuc ucb nkl~~ da`bnu+ aru yjuc jg~ulgnb~ dh ucb nkl~~' Hdq bslovkb+ olgz nkl~~ obucde~ ndoajgb lkkdnlujdg

    lge jgjujlkjplujdg dh lg jg~ulgnb+ dhubg ~buujgi rv jg~ulgnb xlqjlakb xlkrb~ lu ucb~lob ujob' Jg ~rnc l obucde+ju ojicu ab ubovujgi ud ~bge ob~~lib~ ud ucb gbykz lkkdnlube jg~ulgnb lge ud nlkk ucb jg~ulgnb ~bkh+ `r~u

    l~ jg lg jg~ulgnbobucde' Aru uclu ydrke ablg bqqdq' ~bkh lge~rvbqaduc qbhbq ud ucbqbnbjxjgi da`bnuucb

    da`bnu uclu ibu~ l ob~~lib ubkkjgi ju ud vbqhdqo ucb obucde' Jg~jeb lg jg~ulgnb obucde+ ~bkh qbhbq~ ud ucb

    jg~ulgnb= aru jg~jeb l nkl~~ obucde+ ~bkh qbhbq~ ud ucb nkl~~ da`bnu' Ucj~ j~ lg bslovkb dh yclu gdu ud ed0

    - #Qbnulgikb *qbnulgikbDhNdkdq0#G^Ndkdq * ndkdq

    }

    ~bkh ? ]]Qbnulgikb lkkdn_ jgju_= $$ ALE

    ]~bkh ~buNdkdq0ndkdq_=

    qburqg ]~bkh lrudqbkbl~b_=

    Ud lxdje ndghr~jdg+ ju~ r~rlkkz abuubq ud r~b l xlqjlakb ducbq uclg ~bkh ud qbhbq ud lg jg~ulgnb jg~jeb l nkl~~obucde0

    - #je*qbnulgikbDhNdkdq0#G^Ndkdq *ndkdq

    }

    je gbyJg~ulgnb ? ]]Qbnulgikb lkkdn_ jgju_= $$ IDDE

    ]gbyJg~ulgnb ~buNdkdq0ndkdq_=

    qburqg ]gbyJg~ulgnb lrudqbkbl~b_=

    Jg hlnu+ qlucbq uclg ~bgejgi ucb lkkdnob~~lib ud ucb nkl~~ jg l nkl~~ obucde+ ju~ dhubg abuubq ud ~bge lkkdn

    ud ~bkh' Ucj~ ylz+ jh ucb nkl~~ j~ ~rankl~~be+ lge ucb qbnulgikbDhNdkdq0ob~~lib j~ qbnbjxbe az l ~rankl~~+

    ucb jg~ulgnb qburqgbe yjkk ab ucb ~lob uzvb l~ ucb ~rankl~~ #hdq bslovkb+ ucb lqqlz obucde dhG^Lqqlz j~

    jgcbqjube az G^OrulakbLqqlz*'

    - #je*qbnulgikbDhNdkdq0#G^Ndkdq *ndkdq

    }

    je gbyJg~ulgnb ? ]]~bkh lkkdn_ jgju_= $$ BSNBKKBGU

    ]gbyJg~ulgnb ~buNdkdq0ndkdq_=

    qburqg ]gbyJg~ulgnb lrudqbkbl~b_=

    ^bb Lkkdnlujgi lge Jgjujlkjpjgi Da`bnu~ #vlib 59* hdq odqb jghdqolujdg ladru da`bnu lkkdnlujdg'

    58 Ob~~lib~ ud ~bkh lge ~rvbq166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    47/137

    Lkkdnlujgi lge Jgjujlkjpjgi Da`bnu~

    Ju ulmb~ uyd ~ubv~ ud nqblub lg da`bnu r~jgi Da`bnujxb/N' Zdr or~u0

    Ezglojnlkkz lkkdnlub obodqz hdq ucb gby da`bnu Jgjujlkjpb ucb gbykz lkkdnlube obodqz ud lvvqdvqjlub xlkrb~

    Lg da`bnu j~gu hrkkz hrgnujdglk rgujkaduc ~ubv~ clxb abbg ndovkbube' Blnc ~ubv j~ lnndovkj~cbe az l ~bvlqlub

    obucde aru uzvjnlkkz jg l ~jgikb kjgb dh ndeb0

    je lgDa`bnu ? ]]Qbnulgikb lkkdn_ jgju_=

    ^bvlqlujgi lkkdnlujdg hqdo jgjujlkjplujdg ijxb~ zdr jgejxjerlk ndguqdk dxbq blnc ~ubv ~d uclu blnc nlg ab

    odejhjbe jgebvbgebgukz dh ucb ducbq' Ucb hdkkdyjgi ~bnujdg~ kddm hjq~u lu lkkdnlujdg lge ucbg lu jgjujlkjplujdg+

    lge ej~nr~~ cdy ucbz lqb ndguqdkkbe lge odejhjbe'

    Jg Da`bnujxb/N+ obodqz hdq gby da`bnu~ j~ lkkdnlube r~jgi nkl~~ obucde~ ebhjgbe jg ucb G^Da`bnu nkl~~'

    G^Da`bnu ebhjgb~ uyd vqjgnjvlk obucde~ hdq ucj~ vrqvd~b+ lkkdn lge lkkdnYjucPdgb0'

    Ucb~b obucde~ lkkdnlub bgdric obodqz ud cdke lkk ucb jg~ulgnb xlqjlakb~ hdq lg da`bnu abkdgijgi ud ucb

    qbnbjxjgi nkl~~' Ucbz edgu gbbe ud ab dxbqqjeebg lge odejhjbe jg ~rankl~~b~'

    Ucb lkkdn lge lkkdnYjucPdgb0obucde~ jgjujlkjpb l gbykz lkkdnlube da`bnu~ j~l jg~ulgnb xlqjlakb ~d ucluju vdjgu~ ud ucb da`bnu~ nkl~~ #ucb nkl~~ da`bnu*' Lkk ducbq jg~ulgnb xlqjlakb~ lqb ~bu ud 6' R~rlkkz+ lg da`bnu

    gbbe~ ud ab odqb ~vbnjhjnlkkz jgjujlkjpbe abhdqb ju nlg ab ~lhbkz r~be'

    Ucj~ jgjujlkjplujdg j~ ucb qb~vdg~jajkjuz dh nkl~~/~vbnjhjn jg~ulgnb obucde~ uclu+ az ndgxbgujdg+ abijg yjuc ucb

    laaqbxjlujdg jgju' Jh ucb obucde ulmb~ gd lqirobgu~+ ucb obucde glob j~ `r~u ucd~b hdrq kbuubq~+ jgju' Jh ju

    ulmb~ lqirobgu~+ klabk~ hdq ucb lqirobgu~ hdkkdy ucb jgju vqbhjs' Hdq bslovkb+ lg G^Xjby da`bnu nlg ab

    jgjujlkjpbe yjuc lg jgjuYjucHqlob0 obucde'

    Bxbqz nkl~~ uclu ebnklqb~ jg~ulgnb xlqjlakb~or~u vqdxjeblgjgju'''obucdeud jgjujlkjpb ucbo' UcbG^Da`bnu

    nkl~~ ebnklqb~ ucb j~l xlqjlakb lge ebhjgb~ lg jgju obucde' Cdybxbq+ ~jgnb j~l j~ jgjujlkjpbe ycbg obodqz

    hdq lg da`bnu j~ lkkdnlube+ lkk G^Da`bnu~jgju obucde edb~ j~ qburqg ~bkh' G^Da`bnu ebnklqb~ ucb obucde

    oljgkz ud b~ulakj~c ucb glojgi ndgxbgujdg eb~nqjabe blqkjbq'

    Ucb Qburqgbe Da`bnu

    Lg jgju''' obucde gdqolkkz jgjujlkjpb~ ucb jg~ulgnb xlqjlakb~ dh ucb qbnbjxbq+ ucbg qburqg~ ju' Ju~ ucb

    qb~vdg~jajkjuz dh ucb obucde ud qburqg lg da`bnu uclu nlg ab r~be yjucdru bqqdq'

    Lkkdnlujgi lge Jgjujlkjpjgi Da`bnu~ 59166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    48/137

    Cdybxbq+ jg ~dob nl~b~+ ucj~ qb~vdg~jajkjuz nlg oblg qburqgjgi l ejhhbqbgu da`bnu uclg ucb qbnbjxbq' Hdq

    bslovkb+ jh l nkl~~ mbbv~ l kj~u dh globe da`bnu~+ ju ojicu vqdxjeb lg jgjuYjucGlob0 obucde ud jgjujlkjpb

    gby jg~ulgnb~' Jh ucbqb nlg ab gd odqb uclg dgb da`bnu vbq glob+ jgjuYjucGlob0 ojicu qbhr~b ud l~~jig

    ucb ~lob glob ud uyd da`bnu~' Ycbg l~mbe ud l~~jig l gby jg~ulgnb l glob uclu~ lkqblez abjgi r~be az

    lgducbq da`bnu+ ju ojicu hqbb ucb gbykz lkkdnlube jg~ulgnb lge qburqg ucb ducbq da`bnuucr~ bg~rqjgi ucb

    rgj|rbgb~~ dh ucbglob ycjkb lu ucb~lob ujob vqdxjejgi yclu yl~ l~mbe hdq+ lg jg~ulgnb yjuc ucbqb|rb~ubeglob'

    Jg l hby nl~b~+ ju ojicu ab jovd~~jakb hdq lg jgju''' obucde ud ed yclu ju ~ l~mbe ud ed' Hdq bslovkb+ lg

    jgjuHqdoHjkb0 obucde ojicu ibu ucb elul ju gbbe~ hqdo l hjkb vl~~be l~ lg lqirobgu' Jh ucb hjkb glob ju~

    vl~~be edb~gu ndqqb~vdge ud lg lnurlk hjkb+ ju ydgu ab lakb ud ndovkbub ucb jgjujlkjplujdg' Jg ~rnc l nl~b+ ucb

    jgju''' obucdendrke hqbb ucb qbnbjxbq lgeqburqggjk+ jgejnlujgi uclu ucb qb|rb~ubeda`bnu nlgu ab nqblube'

    Abnlr~b lg jgju''' obucde ojicu qburqg lg da`bnu ducbq uclg ucb gbykz lkkdnlube qbnbjxbq+ dq bxbg qburqg

    gjk+ ju~ jovdqulgu uclu vqdiqlo~ r~b ucb xlkrb qburqgbe az ucb jgjujlkjplujdg obucde+ gdu r~u uclu qburqgbe

    az lkkdn dq lkkdnYjucPdgb0' Ucb hdkkdyjgi ndeb j~ xbqz elgibqdr~+ ~jgnb ju jigdqb~ ucb qburqg dhjgju'

    je lgDa`bnu ? ]^dobNkl~~ lkkdn_=

    ]lgDa`bnu jgju_=

    ]lgDa`bnu ~dobDucbqOb~~lib_=

    Jg~uble+ ud ~lhbkz jgjujlkjpb lg da`bnu+ zdr ~cdrke ndoajgb lkkdnlujdg lge jgjujlkjplujdg ob~~lib~ jg dgb kjgb

    dh ndeb'

    je lgDa`bnu ? ]]^dobNkl~~ lkkdn_ jgju_=

    ]lgDa`bnu ~dobDucbqOb~~lib_=

    Jh ucbqb~ l nclgnb uclu ucb jgju''' obucde ojicu qburqg gjk #~bb Clgekjgi Jgjujlkjplujdg Hljkrqb #vlib

    26**+ ucbg zdr ~cdrke ncbnm ucb qburqg xlkrb abhdqb vqdnbbejgi0

    je lgDa`bnu ? ]]^dobNkl~~ lkkdn_ jgju_=

    jh # lgDa`bnu *

    ]lgDa`bnu ~dobDucbqOb~~lib_=

    bk~b

    '''

    Jovkbobgujgi lg Jgjujlkjpbq

    Ycbg l gby da`bnu j~ nqblube+ lkk aju~ dh obodqz #bsnbvu hdq j~l*lge cbgnb ucb xlkrb~ hdq lkk ju~ jg~ulgnb

    xlqjlakb~lqb ~bu ud 6' Jg ~dob ~jurlujdg~+ ucj~ olz ab lkk zdr qb|rjqb ycbg lg da`bnu j~ jgjujlkjpbe= jg olgz

    ducbq~+ zdr ylgu ud vqdxjeb ducbq ebhlrku xlkrb~ hdq lg da`bnu~ jg~ulgnb xlqjlakb~+ dq zdr ylgu ud vl~~ xlkrb~

    l~ lqirobgu~ ud ucb jgjujlkjpbq' Jg ucb~b ducbq nl~b~+ zdr gbbe ud yqjub l nr~udo jgjujlkjpbq' Jg Da`bnujxb/N+

    nr~udo jgjujlkjpbq~ lqb ~ra`bnu ud odqb ndg~uqljgu~ lge ndgxbgujdg~ uclg lqb od~u ducbq obucde~'

    Ndg~uqljgu~ lge Ndgxbgujdg~

    Ucbqb lqb ~bxbqlk ndg~uqljgu~ lge ndgxbgujdg~ uclu lvvkz ud jgjujlkjpbq obucde~ uclu ed gdu lvvkz ud ducbq

    obucde~0

    Az ndgxbgujdg+ ucb glob dh l nr~udo jgjujlkjpbq obucde abijg~ yjuc jgju'

    53 Jovkbobgujgi lg Jgjujlkjpbq166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    49/137

    Bslovkb~ hqdo ucb Hdrgelujdg hqlobydqm jgnkreb+ jgjuYjucHdqolu0+ jgjuYjucDa`bnu~0+ lge

    jgjuYjucDa`bnu~LgeMbz~0'

    Ucb qburqg uzvb dh lg jgjujlkjpbq obucde ~cdrke ab je'Ucb qbl~dg hdq ucj~ j~ uclu je ijxb~ lg jgejnlujdg uclu ucb nkl~~ j~ vrqvd~bhrkkz gdu ndg~jebqbeuclu ucb

    nkl~~ j~ rg~vbnjhjbe lge ~ra`bnu ud nclgib+ ebvbgejgi dg ndgubsu dh jgxdnlujdg' Hdq bslovkb+ G^^uqjgivqdxjeb~ l obucde jgjuYjucHdqolu0' Ycbg ~bgu ud lg jg~ulgnb dhG^Orulakb^uqjgi #l ~rankl~~ dh

    G^^uqjgi*+ cdybxbq+ ucb ob~~lib qburqg~ lg jg~ulgnb dhG^Orulakb^uqjgi+ gdu G^^uqjgi' #^bb lk~d+

    ucdric+ ucb ~jgikbudg bslovkb ijxbg jg Ndoajgjgi Lkkdnlujdg lge Jgjujlkjplujdg #vlib 22*'*

    Jg ucb jovkbobgulujdg dh l nr~udo jgjujlkjpbq+ zdr or~u rkujolubkz jgxdmb l eb~jiglube jgjujlkjpbq'Eb~jiglube jgjujlkjpbq~ lqb eb~nqjabe jg Ucb Eb~jiglube Jgjujlkjpbq #vlib 2>*= l hrkk bsvklglujdg dh ucj~

    j~~rb j~ ijxbg jg Nddqejglujgi Nkl~~b~ #vlib 2

  • 8/14/2019 The Objective-C Programming Language - Book

    50/137

    Ucb gbsu bslovkb jkkr~uqlub~ ucb jovkbobgulujdg dh l nr~udo jgjujlkjpbq uclu ulmb~ l ~jgikb lqirobgu' Jg ucj~

    nl~b+ ucbnkl~~ jgcbqju~ hqdoG^Xjby' Ju ~cdy~ ucluzdr nlg edydqm abhdqb jgxdmjgi ucb ~rvbq nkl~~~ eb~jiglube

    jgjujlkjpbq'

    / #je*jgjuYjucJolib0#G^Jolib *lgJolib }

    $$ Hjge ucb ~jpb hdq ucb gby jg~ulgnb hqdo ucb jolibG^^jpb ~jpb ? lgJolib'~jpb=

    G^Qbnu hqlob ? G^OlmbQbnu#6'6+ 6'6+ ~jpb'yjeuc+ ~jpb'cbjicu*=

    $$ L~~jig ~bkh ud xlkrb qburqgbe az ~rvbq)~ eb~jiglube jgjujlkjpbq

    $$ Eb~jiglube jgjujlkjpbq hdq G^Xjby j~ jgjuYjucHqlob0

    jh #~bkh ? ]~rvbq jgjuYjucHqlob0hqlob_* }

    jolib ? ]lgJolib qbuljg_=

    qburqg ~bkh=

    Ucj~ bslovkb edb~gu ~cdy yclu ud ed jh ucbqb lqb lgz vqdakbo~ erqjgi jgjujlkjplujdg= ucj~ j~ ej~nr~~be jg ucb

    gbsu ~bnujdg'

    Clgekjgi Jgjujlkjplujdg Hljkrqb

    Jg ibgbqlk+ jh ucbqb j~ l vqdakbo erqjgilg jgjujlkjplujdg obucde+ zdr ~cdrkenlkk ]~bkh qbkbl~b_ lgeqburqg

    gjk'

    Ucbqb lqb uyd oljg ndg~b|rbgnb~ dh ucj~ vdkjnz0

    Lgz da`bnu #ycbucbq zdrq dyg nkl~~+ l ~rankl~~+ dq lg bsubqglknlkkbq* uclu qbnbjxb~ l gjk hqdolg jgjujlkjpbqobucde ~cdrke ab lakb ud eblk yjuc ju' Jg ucb rgkjmbkz nl~b ycbqb ucb nlkkbq cl~ b~ulakj~cbe lgz bsubqglk

    qbhbqbgnb~ ud ucb da`bnu abhdqb ucb nlkk+ ucj~ jgnkreb~ rgedjgi lgz ndggbnujdg~'

    Zdr or~u olmb ~rqb uclu eblkkdn obucde~ lqb ~lhb jg vqb~bgnb dh vlqujlkkz/jgjujlkjpbe da`bnu~'

    Gdub0 Zdr ~cdrke dgkz nlkk ]~bkh qbkbl~b_ lu ucb vdjgu dh hljkrqb' Jh zdr ibu gjk alnm hqdo lg jgxdnlujdgdh ucb ~rvbqnkl~~~ jgjujlkjpbq+ zdr ~cdrke gdu lk~d nlkk qbkbl~b' Zdr ~cdrke ~jovkz nkblg rv lgz qbhbqbgnb~

    zdr ~bu rv uclu lqb gdu eblku yjuc jg eblkkdn lge qburqg gjk' Ucj~ j~ uzvjnlkkz clgekbe az ucb vluubqg dh

    vbqhdqojgijgjujlkjplujdgyjucjgl akdnm ebvbgebgudg l ub~u dh ucbqburqgxlkrb dh ucb~rvbqnkl~~~ jgjujlkjpbql~

    ~bbg jg vqbxjdr~ bslovkb~0

    / #je*jgju }

    jh #~bkh ? ]~rvbq jgju_* }

    nqblujdgElub ? ]]G^Elub lkkdn_ jgju_=

    qburqg ~bkh=

    Ucb hdkkdyjgi bslovkb arjke~ dg uclu ~cdyg jg Ndg~uqljgu~ lge Ndgxbgujdg~ #vlib 53* ud ~cdy cdy ud

    clgekb lg jglvvqdvqjlub xlkrb vl~~be l~ ucb vlqlobubq0

    / #je*jgjuYjucJolib0#G^Jolib *lgJolib }

    26 Jovkbobgujgi lg Jgjujlkjpbq166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    51/137

    jh #lgJolib ?? gjk* }

    ]~bkh qbkbl~b_=

    qburqg gjk=

    $$ Hjge ucb ~jpb hdq ucb gby jg~ulgnb hqdo ucb jolib

    G^^jpb ~jpb ? lgJolib'~jpb=G^Qbnu hqlob ? G^OlmbQbnu#6'6+ 6'6+ ~jpb'yjeuc+ ~jpb'cbjicu*=

    $$ L~~jig ~bkh ud xlkrb qburqgbe az ~rvbq)~ eb~jiglube jgjujlkjpbq

    $$ Eb~jiglube jgjujlkjpbq hdq G^Xjby j~ jgjuYjucHqlob0

    jh #~bkh ? ]~rvbq jgjuYjucHqlob0hqlob_* }

    jolib ? ]lgJolib qbuljg_=

    qburqg ~bkh=

    Ucb gbsu bslovkb jkkr~uqlub~ ab~u vqlnujnb ycbqb+ jg ucb nl~b dh l vqdakbo+ ucbqb j~ l vd~~jajkjuz dh qburqgjgi

    oblgjgihrk jghdqolujdg jg ucb hdqo dh lg G^Bqqdq da`bnu qburqgbe az qbhbqbgnb0

    / #je*jgjuYjucRQK0#G^RQK *lRQK bqqdq0#G^Bqqdq *bqqdqVuq }

    jh #~bkh ? ]~rvbq jgju_* }

    G^Elul elul ? ]]G^Elul lkkdn_ jgjuYjucNdgubgu~DhRQK0lRQK

    dvujdg~0G^RgnlncbeQble bqqdq0bqqdqVuq_=

    jh #elul ?? gjk* }

    $$ Jg ucj~ nl~b ucb bqqdq da`bnu j~ nqblube jg ucb G^Elul jgjujlkjpbq

    ]~bkh qbkbl~b_=

    qburqg gjk=

    $$ jovkbobgulujdg ndgujgrb~'''

    Zdr ~cdrke uzvjnlkkzgdur~bbsnbvujdg~ud ~jigjhz bqqdq~ dh ucj~ ~dquhdq odqb jghdqolujdg+~bb BqqdqClgekjgi

    Vqdiqloojgi Irjeb Hdq Ndndl'

    Nddqejglujgi Nkl~~b~

    Ucb jgju''' obucde~ l nkl~~ ebhjgb~ uzvjnlkkz jgjujlkjpb dgkz ucd~b xlqjlakb~ ebnklqbe jg uclu nkl~~' Jgcbqjube

    jg~ulgnb xlqjlakb~ lqb jgjujlkjpbe az ~bgejgi l ob~~lib ud ~rvbq ud vbqhdqo lg jgjujlkjplujdg obucde ebhjgbe

    ~dobycbqb hlqucbq rv ucb jgcbqjulgnb cjbqlqncz0

    / #je*jgjuYjucGlob0#G^^uqjgi *~uqjgi }

    jh # ~bkh ? ]~rvbq jgju_ * }glob ? ]~uqjgi ndvz_=

    qburqg ~bkh=

    Ucb ob~~lib ud ~rvbq ncljg~ udibucbq jgjujlkjplujdg obucde~ jg lkk jgcbqjube nkl~~b~' Abnlr~b ju ndob~ hjq~u+

    ju bg~rqb~ uclu ~rvbqnkl~~xlqjlakb~ lqb jgjujlkjpbeabhdqb ucd~b ebnklqbe jg ~rankl~~b~' Hdqbslovkb+ l Qbnulgikb

    da`bnu or~u ab jgjujlkjpbe l~ lg G^Da`bnu+ l Iqlvcjn+ lge l ^clvb abhdqb ju~ jgjujlkjpbe l~ l Qbnulgikb'

    Jovkbobgujgi lg Jgjujlkjpbq 2//< Jgndqvdqlujgi lg Jgcbqjube Jgjujlkjplujdg Obucde

    Nkl~~ A

    Nkl~~ L

    jgju

    jgjuYjucGlob0

    L nkl~~ or~u lk~d olmb ~rqb uclu lkk jgcbqjube jgjujlkjplujdg obucde~ ydqm' Hdq bslovkb+ jh nkl~~ L ebhjgb~ lg

    jgju obucde lge ju~ ~rankl~~ A ebhjgb~ lg jgjuYjucGlob0obucde+ l~ ~cdyg jg Hjirqb >//1

    jgnkreb~ A~ xbq~jdg dhjgju0

    21 Jovkbobgujgi lg Jgjujlkjpbq166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    53/137

    Hjirqb >/1 Ndxbqjgi lg Jgcbqjube Jgjujlkjplujdg Odebk

    Nkl~~ A

    Nkl~~ L

    jgju

    jgju

    jgjuYjucGlob0

    Ndxbqjgi jgcbqjube jgjujlkjplujdg obucde~ olmb~ ucb nkl~~ zdr ebhjgb odqb vdqulakb ud ducbq lvvkjnlujdg~' Jh

    zdrkblxb lg jgcbqjube obucdergndxbqbe+ ~dobdgb bk~bolzr~b ju ud vqdernb jgndqqbnukz jgjujlkjpbe jg~ulgnb~

    dh zdrq nkl~~'

    Ucb Eb~jiglube Jgjujlkjpbq

    Jg ucb bslovkb ijxbg jg Nddqejglujgi Nkl~~b~ #vlib 2

  • 8/14/2019 The Objective-C Programming Language - Book

    54/137

    Hjirqb >/> Ndxbqjgi ucb Eb~jiglube Jgjujlkjpbq

    jgjuYjucGlob0hqdoHjkb0

    jgjuYjucGlob0

    Nkl~~ A

    jgju

    Nkl~~ N

    jgjuYjucGlob0

    Ucj~ hjirqb doju~ lg jovdqulgu ebuljk' Ucb jgjuYjucGlob0hqdoHjkb0obucde+ abjgi ucb eb~jiglube

    jgjujlkjpbq hdq ucb N nkl~~+ ~bge~ l ob~~lib ud ~rvbq ud jgxdmb lg jgcbqjube jgjujlkjplujdg obucde' Aru ycjnc

    dh A~ obucde~ ~cdrke ju jgxdmb+ jgju dq jgjuYjucGlob04 Ju nlgu jgxdmb jgju+ hdq uyd qbl~dg~0

    Njqnrklqjuz ydrkeqb~rku #jgju jgxdmb~ N~jgjuYjucGlob0+ ycjnc jgxdmb~jgjuYjucGlob0hqdoHjkb0+ycjnc jgxdmb~ jgju liljg*'

    Ju ydgu ab lakb ud ulmb lexlgulib dh ucb jgjujlkjplujdg ndeb jg A~ xbq~jdg dhjgjuYjucGlob0'

    Ucbqbhdqb+ jgjuYjucGlob0hqdoHjkb0or~u jgxdmb jgjuYjucGlob00

    / jgjuYjucGlob0#nclq *~uqjgi hqdoHjkb0#nclq *vlucglob }

    jh # ~bkh ? ]~rvbq jgjuYjucGlob0~uqjgi_ *

    '''

    Ibgbqlk Vqjgnjvkb0 Ucb eb~jiglube jgjujlkjpbq jg l nkl~~ or~u+ ucqdric l ob~~lib ud ~rvbq+ jgxdmb ucbeb~jiglube jgjujlkjpbq jg l ~rvbqnkl~~'

    Eb~jiglube jgjujlkjpbq~ lqb ncljgbe ud blnc ducbq ucqdric ob~~lib~ ud ~rvbq+ ycjkb ducbq jgjujlkjplujdg

    obucde~ lqb ncljgbe ud eb~jiglube jgjujlkjpbq~ ucqdric ob~~lib~ ud ~bkh'

    Hjirqb >/5 ~cdy~ cdy lkk ucb jgjujlkjplujdg obucde~ jg nkl~~b~ L+ A+ lge N lqb kjgmbe' Ob~~lib~ ud ~bkh lqb

    ~cdyg dg ucb kbhu lge ob~~lib~ ud ~rvbq lqb ~cdyg dg ucb qjicu'

    25 Ucb Eb~jiglube Jgjujlkjpbq166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    55/137

    Hjirqb >/5 Jgjujlkjplujdg Ncljg

    jgjuYjucGlob0hqdoHjkb0

    jgjuYjucGlob0

    Nkl~~ A

    Nkl~~ L

    jgju

    jgju

    Nkl~~ N

    jgjuYjucGlob0

    Gdub uclu A~ xbq~jdg dhjgju ~bge~ l ob~~lib ud ~bkh ud jgxdmb ucb jgjuYjucGlob0 obucde' Ucbqbhdqb+

    ycbg ucb qbnbjxbq j~ lg jg~ulgnb dh ucb A nkl~~+ ju jgxdmb~ A~ xbq~jdg dhjgjuYjucGlob0+ lge ycbg ucb

    qbnbjxbq j~ lg jg~ulgnb dh ucb N nkl~~+ ju jgxdmb~ N~ xbq~jdg'

    Ndoajgjgi Lkkdnlujdg lge Jgjujlkjplujdg

    Jg Ndndl+ ~dob nkl~~b~ ebhjgb nqblujdg obucde~ uclu ndoajgb ucb uyd ~ubv~ dh lkkdnlujgi lge jgjujlkjpjgi ud

    qburqg gby+ jgjujlkjpbe jg~ulgnb~ dh ucbnkl~~' Ucb~b obucde~lqb dhubg qbhbqqbe ud l~ ndgxbgjbgnbndg~uqrnudq~lge uzvjnlkkz ulmb ucb hdqo - nkl~~Glob''' ycbqb nkl~~Glob j~ ucb glob dh ucb nkl~~' Hdq bslovkb+G^^uqjgi

    cl~ ucb hdkkdyjgi obucde~ #lodgi ducbq~*0

    - #je*~uqjgiYjucN^uqjgi0#ndg~u nclq *n^uqjgi bgndejgi0#G^^uqjgiBgndejgi*bgn=

    - #je*~uqjgiYjucHdqolu0#G^^uqjgi *hdqolu+ '''=

    ^jojklqkz+ G^Lqqlz ebhjgb~ ucb hdkkdyjgi nkl~~ obucde~ uclu ndoajgb lkkdnlujdg lge jgjujlkjplujdg0

    - #je*lqqlz=

    Ndoajgjgi Lkkdnlujdg lge Jgjujlkjplujdg 22166:/

  • 8/14/2019 The Objective-C Programming Language - Book

    56/137

    - #je*lqqlzYjucDa`bnu0#je*lgDa bnu=

    - #je*lqqlzYjucDa`bnu~0#je*hjq~uDa`+ '''=

    Jovdqulgu0 Ju j~ jovdqulgu ud rgebq~ulge ucb obodqz olglibobgu jovkjnlujdg~ dh r~jgi ucb~b obucde~ jhzdr ed gdu r~b ilqalib ndkkbnujdg #~bb Obodqz Olglibobgu #vlib

  • 8/14/2019 The Objective-C Programming Language - Book

    57/137

    Vqdudndk~ ebnklqb obucde~ uclu nlg ab jovkbobgube az lgz nkl~~' Vqdudndk~ lqb r~bhrk jg lu kbl~u ucqbb

    ~jurlujdg~0

    Ud ebnklqb obucde~ uclu ducbq~ lqb bsvbnube ud jovkbobgu Ud ebnklqb ucb jgubqhlnb ud lg da`bnu ycjkb ndgnblkjgi ju~ nkl~~ Ud nlvurqb ~jojklqjujb~ lodgi nkl~~b~ uclu lqb gdu cjbqlqncjnlkkz qbklube

    Ebnklqjgi Jgubqhlnb~ hdq Ducbq~ ud JovkbobguNkl~~ lge nlubidqz jgubqhlnb~ ebnklqb obucde~ uclu lqb l~~dnjlube yjuc l vlqujnrklq nkl~~oljgkz obucde~

    uclu ucb nkl~~ jovkbobgu~' Jghdqolk lge hdqolk vqdudndk~+ dg ucb ducbq clge+ ebnklqb obucde~ uclu lqbjgebvbgebgu dh lgz ~vbnjhjn nkl~~+ aru ycjnc lgz nkl~~+ lge vbqclv~ olgz nkl~~b~+ ojicu jovkbobgu'

    L vqdudndk j~ ~jovkz l kj~u dh obucde ebnklqlujdg~+ rgluulncbe ud l nkl~~ ebhjgjujdg' Hdq bslovkb+ ucb~b obucde~