Download - 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~