[Powered by Google Translate] [Seminar] [IOS: Kitba apps Bħal Boss]
[Tommy MacWilliam] [Università ta 'Harvard]
[Dan huwa CS50.] [CS50.TV]
>> Kull dritt, kulħadd, merħba lill IOS: Kitba apps bħal Boss.
Dan is-seminar ser jiffoka fuq kitba apps għall-iPhone
u min-naħa miktub apps għall-iPad, u għalhekk aħna qed bażikament se jimxu permezz
xi eżempji differenti ftit ta 'kif tagħmel app, logħba sempliċi bħal Tic Tac Toe,
jew jekk int aktar interessati li jagħmlu app bħal xi tip ta 'aħbarijiet qarrej
jew xi ħaġa li jinteraġixxi ma 'l-Internet I se jitkellmu dwar dan ukoll.
Hawn aġenda fil-qosor tagħna.
>> Apps IOS huma miktuba b'lingwa imsejjaħ Objettiv-C,
u għalhekk dan huwa ftit simili għal C iżda mhux verament fil-livelli kollha,
hekk aħna ser tkun jitkellem ftit dwar il-lingwa nnifisha
u mbagħad kif tibni apps iPhone jużaw dan il-programm app imsejħa Xcode,
li jekk int ma jitniżżel encore tħossok liberu li tibda l-download issa.
Huwa gigabytes diversi.
Għandu jkun ħieles fuq il-Aħżen App, hekk ikollok bzonn li jkollhom Mac
idealment jmexxu l-aħħar verżjoni ta 'OS X.
Jekk int ma, l-ebda problema.
Għandna MACs fil-ċentru tax-xjenza disponibbli għall-użu tiegħek
ma Xcode installati, u hekk li tħossok liberu li juża dawk għall-iżvilupp.
Jekk inti tixtieq li tagħmel app iżda ma jkollhomx Mac, tinkwetax.
Hemm ħafna ta 'riżorsi kampus għal dan.
U hekk allura aħna qed tmur biex tkopri 2 eżempji akbar ta 'apps differenti inti tista' tagħmel.
Għan-C hija teknikament dak li sejjaħ sett super ta 'C.
Dan ifisser li kwalunkwe kodiċi C hija wkoll valida Għan-C kodiċi.
Dan ifisser li aħna tip ta 'kanal taped fuq xi karatteristiċi addizzjonali għal C.
Xi wħud minn dawn il-karatteristiċi jinkludu ma jkollhom qatt tikteb malloc darb'oħra, nirringrazzjaw 'l Alla,
ebda joqogħdu jinkwetaw dwar dawk il-pointers stupid u ħelsien tagħhom u dak kollu li Jittieħed
inti hated dwar Ċ, u huwa tip ta 'marret fil-Objettiv-C.
>> Issa, Objettiv-C għandha wkoll librerija standard ħafna akbar,
hekk hemm funzjonalità ħafna aktar ikollok għal ġewwa mingħajr Objettiv-C.
Tiftakar meta konna bil-miktub PHP aħna ndunat li aħna marru minn
din il-lingwa iżgħar għall-librerija ġgant ta 'dawn l-affarijiet crazy li tista' tagħmel.
L-istess ħaġa jiġri fil IOS.
Hemm oġġetti għal affarijiet bħall-kalendarju Buddisti, u verament xejn
inti tista 'possibilment taħseb probabbilment teżisti diġà fl-implimentazzjoni Objettiv-C ta.
Il-parti objettiv ta 'Objettiv-C huwa referenzar xi ħaġa
imsejħa Għan Orjentati Programmazzjoni-.
Dan huwa tip ta 'kunċett ġdid, imma aħna ħadthom attwalment aktar tgħallmu
ħafna ta 'dawn il-kunċetti diġà.
L-idea wara Għan Orjentati Programmazzjoni huwa li inti qed tmur biex jistrutturaw
ħafna tal-kodiċi tiegħek madwar dawn l-affarijiet imsejħa klassijiet,
u dawn il-klassijiet huma verament glorified structs.
Ġewwa ta 'Struct aħna bażikament qal hawnhekk hija ħaġa,
u dan ħaġa jista 'jkollhom membri.
Per eżempju, node f'lista marbut jista 'jkollhom affarijiet oħra
bħal valur, pointer għall-node li jmiss fil-lista,
u flimkien li pointer u li l-valur kompost f'dan il-każ wieħed ta 'Struct.
Klassijiet huma simili ħafna ħlief
klassijiet tista 'wkoll ikollhom funzjonijiet ġewwa minnhom.
Meta aħna iddikjarat Struct, nistgħu biss jgħidu n INT jew * node jmiss.
>> Issa ma Objettiv-C nistgħu fil-fatt imqiegħda funzjonijiet
ġewwa ta 'dawk l-affarijiet.
Ħaġa oħra li l-klassijiet tista 'tagħmel huwa ikunu jistgħu jirtu data minn klassijiet oħrajn.
Per eżempju, aħna ser tkun tħares lejn mazz ta 'mibnija fil-Objettiv-C klassijiet.
Wieħed minnhom jista 'jkun il-klassi li tirrappreżenta l-fehma għal screen,
u dan billi qal nixtieq li jimplimentaw fehma tiegħi stess
aħna bażikament ngħidu xi ħadd fuq medda ta 'Apple, in-nies probabbilment tassew sbieħ,
kiteb din il-klassi għalija, u mankijiet affarijiet simili wiri buttuni
jew jirrendu l-iskrin, u aħna se jkunu verament pained
biex jimplimentaw dak kollu li funzjonalità nfusna, u dan billi sempliċiment
jiret id-data nistgħu ngħidu dak kollu li għamilt f'dik il-klassi
Nixtieq ukoll ġewwa ta 'klassi tiegħi, u mbagħad jien ser jagħmlu xi għalf ieħor,
jiġifieri jimplimentaw app.
Dak hu li wirt kelma tfisser. Ser naraw eżempju aktar konkreta.
>> U fl-aħħarnett, il-muftieħ bil Għan Orjentati Programmazzjoni huwa li
din twassal għal data inkapsulament.
F'xi wħud mill-problema tagħna settijiet jista 'jkollna dawn kbar, varjabbli globali
u globals kullimkien, u li l kif aħna'd jżommu rekord ta 'l-istat.
Bil-klassijiet nkunu nistgħu nibdew siġillar informazzjoni minn ġewwa ta 'oġġett.
Jekk aħna għandna waħda iskrin fuq app tagħna, aħna ma verament bżonn li jkollhom xi data minn
ieħor iskrin fil ġewwa app tagħna ta 'dan,
u dan billi siġillar affarijiet fil-klassijiet dan fil-fatt iwassal
it-tfassil kodiċi ferm aħjar, u dan huwa possibbli ma 'wħud mill-karatteristiċi addizzjonali
ta 'Objettiv-C.
Forewarning, il-sintassi għall-Objettiv-C hija banana.
Huwa simili xejn konna rajna qabel,
għalhekk huwa xi ftit ta 'kurva tat-tagħlim jkollna użati biex
dak l-Heck jfisser dan?
Imma ladarba ikollok passat li kurva tat-tagħlim tal-bidu huwa tassew, tassew bla xkiel
li tibda bil-miktub apps.
>> Tiddikjara klassi, li jgħidu hawnhekk hija klassi tiegħi, dan jeżisti,
u forsi hawn huma xi affarijiet li jien ser jiddefinixxu aktar tard,
Jien se ngħid @ interface.
Jien se ngħid @ interface. Jien ser tagħti klassi tiegħi isem.
U mbagħad wara x'imkien ieħor jien se ngħid @ għan,
u kollox bejn l-interface @ u t-tmiem @
se tkun klassi tiegħi.
Dan se jkun x'hemm ġewwa ta 'fajls tagħna h..
Eżatt bħal fis-C tagħna. Fajls h bażikament qal hawn huma xi affarijiet li se jeżistu.
Jien ma neċessarjament tghidlek dak li jagħmlu s'issa,
iżda l-kumpilatur jeħtieġ li tkun taf li dawn jeżistu.
Aktar tard ġewwa ta '. M tagħna files' għax m għall-Objettiv-C
huwa fejn aħna qed attwalment għaddejjin biex jiddefinixxu liema dawn il-klassijiet do.
Ħafna bħall-fajls tagħna c., Aħna ipprovdew implimentazzjoni għall-funzjonijiet.
Ġewwa ta '. M fajl tagħna aħna qed tmur biex ngħid hawnhekk huwa dak li l-funzjonijiet kollha
ġewwa ta 'tiegħi klassi dak dawn kollha jagħmlu.
U fl-aħħarnett, ġewwa ta 'Struct nistgħu ngħidu ġewwa ta' dawk ċineg kaboċċi
int, n jew node * li jmiss
u fl-Għan-C aħna qed tmur biex tuża l-keyword @ proprjetà,
u dan huwa dak li għaddej biex jiddefinixxu l-karatteristiċi,
jew il-funzjonijiet mhux li huma parti ta 'klassijiet tiegħi.
>> Sejħat funzjonijiet Objettiv-C hija wkoll banana.
Meta aħna ddikjarat funzjonijiet C għidna xi ħaġa bħal int foo
u miftuħa paren u mbagħad tatha lista ta 'argumenti.
Dan huwa dak li tiddikjara metodi jew funzjonijiet Dehra fil Objettiv-C.
Jekk irrid niddikjara funzjoni jew metodu
fejn jien qal il-metodu huwa verament ftit funzjoni li l-membru ta 'klassi,
għalhekk tip ta 'interkambjabbli, imma mhux verament,
hekk ġewwa ta 'metodu tiegħi Irrid li toħloq metodu ġdid.
Huwa ser jirritorna xejn, hekk li għaddej biex tkun ta 'tip null.
Dan huwa t-tip ritorn ta 'funzjoni tiegħi.
Issa għandna parens hawnhekk għaliex-I do not know.
Li jmiss se tkun l-isem tal-funzjoni tiegħi,
u mbagħad finalment aħna għandna punto virgola bħad kellna fil C.
X'hemm ġdid hawn huwa dan Guy hawn.
Dan sing huwa effettivament neċessarju, u dak li dan jgħid huwa li
dan il-metodu hawn għandhom jiġu mistiedna każ ta 'klassi.
>> Wara aħna ddikjarat structs tagħna aħna probabbilment qal xi ħaġa simili
n node Struct, u li fil-fatt ħoloq
jew instantiated wieħed minn dawk structs sabiex I jistgħu attwalment jibdew jaħdmu
ma x'hemm ġewwa ta 'dan, sabiex dan sing ifisser li għandna biex
instantiate-klassi bħad aħna instantiated li Struct
qabel ma nistgħu sejħa dan il-metodu fuqha.
Jekk irrid tibda żżid argumenti għall-metodi tiegħi
jiġrilha banana saħansitra aktar.
Hawn isem tal-metodu tiegħi.
Imbagħad jien ser ikollhom kolon, u wara dan kolon jgħid hawnhekk jidħol xi argumenti.
Dan il-metodu tieħu waħda argument.
It-tip ta 'argument tagħha huwa int, u l-isem ta' dan l-argument
jew il-varjabbli li jien ser tibda tuża ġewwa tal-metodu huwa msejjaħ i.
Għal darb'oħra, dan huwa metodu. Huwa jieħu l-argument.
>> Jekk inti tixtieq li tibda żżid l-argumenti aktar jiġrilha banana aktar
f'dak aħna għandna dan kolon li tgħid hawnhekk jidħol lista tiegħi ta 'argumenti.
Dan l-argument ewwel huwa integer.
Issa, dan l-argument tat-tieni huwa interessanti.
Il-varjabbli li jien se tkun qed tuża ġewwa tal-funzjoni tiegħi
huwa msejjaħ f, hekk ġewwa ta 'funzjoni tiegħi nista' ngħid
f = 1 + jew xi ħaġa.
Din ħaġa hawnhekk huwa bażikament ewlieni għall dan l-argument jew parametru.
Eżatt bħal kellna pari b'valur ewlenin u xi ħaġa simili JSON jew arrays ta 'assoċjazzjoni
Għan-C għamlet id-deċiżjoni li jgħidu, okay, biss b'tali mod li huwa verament ċara
meta inti sejħa metodu liema dawn il-parametri huma
Jien fil-fatt ser insemmu lilhom kollha.
Meta inti sejħa metodu, inti ser fil-fatt tgħid andFloat,
u allura inti ser jgħaddu hija pulzieri
>> Interessanti, dan huwa wieħed mhux imsemmi, iżda kollha tal-parametri l-oħra huma,
hekk jekk kellna argument 3 nista 'ngħid andFloat
u ieħor float u l-bqija.
Meta I call dawn il-metodi huwa ta 'banana kors,
hekk jekk I jkollhom oġġett, u I definit metodu msejjaħ foo,
u nixtieq li hija sejħa, aktar milli qal foo miftuħa / mill-qrib parens
Jien ser tiftaħ bracket.
Hawn l-isem tal-metodu tiegħi.
Jien ser tagħlaq il-kategorija, u dan huwa l-oġġett jien ssejjaħ fuq.
Ftakar, kollha ta 'dawn il-metodi jeżistu fil-klassijiet
minħabba klassijiet jista 'jkollhom metodi definiti ġewwa minnhom.
>> Hawnhekk stajt arbitrarju maħluqa oġġett ta 'xi klassi,
u dan huwa l-sintassi biex isir dan.
Hemm 2 passi għall-ħolqien ta 'oġġett.
L-ewwel pass huwa li jgħidu Irrid li jallokaw spazju.
Dan huwa l-ekwivalenti ta 'malloc. Aħna ma jkollhom jgħidu malloc aktar.
Aħna niżel l-m, għamilha alloc, u ssostitwixxa-c. Ma. M.
Wara xi ħaġa alloc għandna aħna mbagħad bżonn li initialize dan.
Bażikament meta inti joħolqu oġġetti li inti tista 'tixtieq li jkollha xi loġika
li tesegwixxi meta jkunu qed maħluqa, sabiex inti tista 'tgħaddi f'xi valuri awtomatiċi
jew xi ħaġa bħal dik, u għalhekk dan il-metodu Iniz huwa dak effettivament toħloq l-oġġett.
Aħna l-ewwel talloka l-ispazju, bħal għamilna fis-C,
u allura aħna initialize dan, li jistgħu jew ma jistgħux jagħmlu lott kollu.
Imbagħad aħna qed jirritornaw din il-ħaġa fi o oġġett.
Hemm stilla hawnhekk għaliex dan huwa teknikament pointer,
imma tinkwetax, pointers mhumiex dik big ftehim fil-Objettiv-C aktar.
>> Issa konna instantiated din il-klassi imsejħa NSObject,
u dan huwa biss klassi każwali li Apple.
Imxejna instantiated dan, u issa għandi każ ta 'din il-klassi
f'dan o oġġett, b'tali mod li jfisser li jekk I definit
dawn il-metodi I jistgħu jsejħulhom bħal dan.
Bl-istess mod, jekk jien ridt li sejħa metodu ma 'wieħed argument,
għalhekk dan huwa l-metodu bar, li tieħu waħda argument,
u hawn huwa l-baz: metodu QUX, sabiex din tieħu 2 argumenti.
Dan qed jitlob funzjoni waħda fuq dan o oġġett.
Jagħmel sens?
Is-sintassi għandu jagħmel sens, imma int it-tip ta jidraw lilha.
>> Okay, ejja nitkellmu dwar ftit affarijiet li huma mibnija fil-Objettiv-C
li ma kinux neċessarjament mibnija fis C.
Fl C aħna tip ta kellha tittratta kordi kif dawn arrays karattru stupid,
u li ltqajna verament annoying.
Għan-C għandha dawk kollha mibnija għalina, u huwa mibni fil-
jużaw din il-klassi imsejħa NSString.
Meta Irrid li joħolqu NSString għandna sintassi aktar arcane.
Pjuttost milli qal "cs50" aħna ngħidu @ "cs50"
u dan huwa biss l-sintassi li tiddikjara kordi fl-Objettiv-C.
Dan huwa estremament faċli li tinsa, hekk ma.
Issa, ladarba I jkollhom din, dan huwa string, iżda avviż
huwa verament biss oġġett.
I said NSString, li jfisser I instantiated-klassi
imsejħa NSString, li xi ħadd ieħor kiteb għalija,
u dawn kienu sbieħ ħafna dwar dan, u hekk issa
I tista 'tibda ssejjaħ metodi fuqha.
Jekk I call it-tul metodu fuq dan i-oġġett
li għaddej biex jirritornaw għall lili it-tul tas-sekwenza.
Dan huwa biss bħal strlen fl C.
Dan se jerġa 'lura 4.
>> Bl-istess mod, metodu ieħor I tista 'tixtieq li jimpurtahom huwa dan characterAtIndex.
Dan huwa metodu li tgħid dwar dan i string
Nixtieq li tikseb l-karattru 0,
u għalhekk dan se jerġa 'lura lili lc karattru,
u hemm mazz sħiħ aktar ta 'dawn il-metodi li inti tista' Google verament faċilment.
Dokumentazzjoni Apple huwa kbir, u aħna ser tagħti ħarsa lejn dak ftit.
Dawk huma kordi.
Għandna wkoll arrays daqs varjabbli mibnija pulzieri
Ftakar fis-C meta aħna dikjarati firxa
kellna ngħidu li għandek 5 elementi, tmiem ta 'l-istorja.
Meta aħna ltqajna biex JavaScript u PHP aħna tista 'tibda
tagħmel affarijiet simili żżid elementi jew li jiċċaqilqu elementi.
Nistgħu nagħmlu l-istess Objettiv-C.
Pjuttost milli toħloq firxa fil-mod normali C
għandna mill-ġdid fi klassi oħra msejħa NSMutableArray.
Hemm ukoll NSArray,
u dan se bażikament jirrappreżentaw xi array.
Dan jgħid l-ewwel ħaġa li nixtieq do huwa li nixtieq li jalloka
ispazju għal firxa ġdida, u wara I tatiha
I imbagħad jkollhom bżonn initialize dan.
Għal darb'oħra, just ssejjaħ dawn il-metodi 2.
Issa dan ifisser li ġewwa ta dan l-oġġett ta '
Għandi l-firxa vojta seduta hemmhekk.
Jekk I tixtieq iżżid xi ħaġa ma 'din array, nista' sejħa tal-metodu addObject.
I tixtieq iżżid oġġett għall-firxa ta ', u nixtieq li jżidu l-sekwenza CS50.
Jekk jien ridt li bil-maqlub tneħħi li nista 'ngħid li nixtieq
neħħi l-oġġett fl-ewwel post fuq il-firxa jew toġġezzjona a.
>> Jagħmel sens?
Okay, inti tip ta jidraw dan ħaġa parentesi kwadri.
Mill-mod, ġewwa ta 'lott ta' libreriji Apple tkun taf tara dan NS.
Il NS attwalment stands għall-pass li jmiss, li kienet waħda mill-kumpaniji Steve 1 Impjiegi,
u li fejn hu verament beda kitba ta 'lott tal-kodiċi
bħala tip ta 'l-bażi għall Mac OS X u kollha ta' l-għalf ieħor,
u għalhekk dan NS huwa tip ta 'dan il-wirt sabiħ shout out għal waħda mill-kumpaniji preċedenti
lura meta Apple kienet l-ewwel bdew.
Huwa kullimkien.
Ejja tagħti ħarsa lejn iktar olistiku Għan-C eżempju.
Here I am ġewwa ta 'Xcode.
Biex tikseb hawn, I-ewwel jitniżżel Xcode mill-Aħżen App,
fetaħ it up, u mbagħad I marru hawn biex fajl,
fuq hawn biex proġett ġdid, u mbagħad.
Wara nagħmel li għandi dawn l-għażliet ta 'dak li nixtieq li joħolqu,
u hekk aħna ser tagħti ħarsa lejn dawn l-għażliet aktar tard,
iżda biss għal dan l-eżempju, għaliex aħna mhux qed fil-fatt se jkollhom app għadhom,
I niżlet hawn, u I said Tool Linja ta 'Kmand,
u dan huwa app li I tista 'tmexxi fil-linja tal-kmand
bħad aħna kont qed jibda mid C.
Li kif I ħolqot dan il-proġett, u hekk issa jien hawn,
hekk ejja ewwel ħarsa lejn dan il-fajl, u din għandha tħares pretty familjari.
I jkollhom isem int. Hemm ħabib argc tiegħi, barra buddy tiegħi ARGV.
U hekk nistgħu naraw li dan huwa l-punt ta 'dħul għall-ewwel Għan-C tiegħi applikazzjoni.
Hawnhekk nistgħu ninjoraw dan għal issa.
Dan huwa bażikament xi għalf ġestjoni tal-memorja li int mhux se verament
qatt ma jkollhom għalfejn tinkwieta dwar.
>> Ejja nħarsu lejn din il-blokka 1 hawn.
Din il-linja 1, jekk ngħidilhom Student * Alice = [alloc Student [] Iniz] x'hemm li tagħmel?
Dan student 1 hawn, dan huwa probabbilment klassi.
Din mhix klassi li Apple kiteb, imma hija klassi I li kiteb.
L-ewwel ħaġa li nixtieq do huwa nixtieq li jallokaw spazju għal student ġdid,
u mbagħad nixtieq li initialize dan, sabiex din tagħti me back
dan l-oġġett student ġdid, u jien ħażna dan fil-varjabbli imsejjaħ Alice.
Fejn ma dik il-klassi ġejjin minn?
Well, hawn fuq fuq ix-xellug dawn huma kollha tal-fajls differenti ġewwa ta 'proġett tiegħi.
Nistgħu naraw hawnhekk għandi Student.h u Student.m.
Il-fajl h., Ftakar, huwa fejn niddikjara l-affarijiet
li se jeżistu fi ħdan il-klassi.
>> Ejja tagħti ħarsa lejn dak.
Kull dritt, hawnhekk għandna dan interface @, u dan jgħid li hawnhekk jidħol
dikjarazzjonijiet ta 'dak kollu li se jeżistu fi ħdan klassi tiegħi.
Imbagħad I jkollhom kolon. Imbagħad I jkollhom din ħaġa NSObject.
Dan kolon ifisser li ftit wirt aħna qed niddiskutu ftit qabel.
Dan jgħid kollox l NSObject tista 'tagħmel
fejn NSObject hija din il-klassi miktub minn xi ħadd ieħor,
kollox dan NSObject tista 'tagħmel Irrid li tkun tista' tagħmel dan.
Billi qal: NSObject dan ifisser li jien bażikament
wiret kollha tal-funzjonalità ta 'klassi oħra.
Li verament tatni mazz sħiħ ta 'metodi differenti u l-proprjetajiet li I jistgħu jużaw.
Down hawn jien ħolqien 2 proprjetajiet.
Dan ifisser istudenti tiegħi, jekk dan kien Struct, dawn ikunu l-affarijiet 2
ġewwa ta 'Struct tiegħi, hekk kull student ikollu isem
li hija sekwenza, u student għandha wkoll grad,
li huwa int.
>> Fl-aħħarnett, stabbiliti hawn jien ser toħloq metodu għall-istudenti tiegħi.
I imsejħa metodu tiegħi, initWithName, u li tieħu 1 argument,
u dan l-argument huwa string, u I sejħitilha isem.
Issa ejja nħarsu lejn kif għandna attwalment implimentata din il-klassi.
Hawnhekk, issa jien ġewwa tal-fajl tiegħi m.,
m għall-implimentazzjoni, I raden.
Għandi l-implimentazzjoni tiegħi, tmiem tiegħi, u hawn huwa fejn jien attwalment tiddefinixxi
dak initWithName ma.
Għandi initWithName, l-isem tal-parametru tiegħi, u allura dan
huwa fejn jien attwalment ħolqien ta 'student,
u għalhekk dan huwa ftit cryptic, iżda dan huwa tip ta 'boilerplate
li inti tixtieq li jinkludu fil-kostrutturi tiegħek.
Din il-funzjoni inizjalizzazzjoni hawn, initWithName, huwa tip ta 'kostruttur.
Inti bażikament tinbena oġġett student ġdid
u forsi jibgħat xi data ġewwa ta 'dan.
L-ewwel ħaġa li nixtieq do huwa li nixtieq sejħa Iniz fuq din il-ħaġa super.
>> Ftakar li meta għidt lura hawn fil-fajl h.
li kollox l NSObject għandu student wkoll.
Dan ifisser li meta I joħolqu student dak I wkoll bżonn tagħmel huwa
kun żgur li l-NSObject li jien jiret kollha ta 'dik id-data mill-
huwa wkoll initialized suppost.
What I bżonn li ngħid huwa dan super huwa attwalment għaddejjin biex jirreferi għall-klassi ġenitur
li jien jiret minn, so I jixtiequ jagħmlu ċert I initialize
dak kollu li jien jiddependi fuq qabel nibda jippruvaw jużaw dan.
Imbagħad jekk dan initialized korrett din hija biss bħal ngħidu jekk malloc
ma reġgħux lura null mbagħad I tista 'tibda iffissar xi proprjetajiet.
>> Fil JavaScript u PHP kellna dan il-keyword sejjaħ din,
u dan irrefera għall-każ attwali ta 'klassi.
Fil Għan-C nitolbu din l-awto.
Meta I say self.name, dan ifisser li l-oġġett
I biss ħolqu meta għidt alloc student Iniz,
li għaddej biex jagħti me lura xi oġġett.
Dan ifisser Irrid li jistabbilixxu l-isem ta 'dik oġġett
għal dak kollu li I biss għadda pulzieri
Eżatt bħal fil Ċ, aħna jkollhom aċċess membri ma 'din dot,
hekk self.name jgħid l-isem tal-oġġett istudent
issa se tkun xi tkun biss għadda pulzieri
U hekk finalment, I tista 'tibagħtu lura so I attwalment nikseb lura xi ħaġa.
>> Mistoqsijiet?
Okay, hekk din l-awto = super Iniz,
jekk inti ma jifhmu totalment l-għalf wirt tinkwetax.
Biss jafu li jekk inti qatt tixtieq li tagħmel il-metodu Iniz tiegħek stess biss
tagħmel dan, u tkun taf tkun tajba biex tmur.
Yeah. >> [Student] Xi tfisser awto jekk?
Dan ifisser li meta aħna malloc xi ħaġa aħna dejjem ċċekkjati jekk kien ugwali għal null,
u jekk kien null, allura aħna ħareġ.
Dan huwa l-istess ħaġa, għaliex jekk dan null prospetti, allura aħna qed probabbilment se tort seq
jekk nibdew jippruvaw jimmanipulaw dan.
Li klassi istudent tagħna.
Dan ifisser li nistgħu initialize-istudenti tagħna f'wieħed minn żewġ modi.
Jekk jiena ngħid alloc student Iniz Jien ma jużaw dak il-metodu li I biss kiteb,
u minflok nista 'sempliċement jgħidu alice.name,
u issa jien ser jistabbilixxu li l-isem tal-proprjetà.
>> Bl-istess mod, jekk I jridu jużaw dan il-metodu initWithName
I tista 'sempliċement jgħidu alloc, u mbagħad minflok qal Iniz
Jien ser sejħa dan il-metodu li jien biss maħluqa, u jien ser jgħaddu Bob.
Fuq dan il-punt, din Bob oġġett għandha isem ugwali għal Bob.
Okay, stabbiliti hawn jien jużaw dan NSMutableArray li ħarisna lejn preċedenti.
Jien allokazzjoni space.Then jien initializing firxa ġdida.
Jien ser żid 2 affarijiet lilha.
Dan firxa issa għandha l-oġġetti l-istudenti.
Avviż li mkien ma jien ngħid li dan huwa firxa ta 'studenti.
I said huwa firxa, il-perjodu.
Imbagħad I tista 'tpoġġi kwalunkwe ġewwa ta' dan li nixtieq.
Hawnhekk I għandhom 2 oġġetti.
>> Finalment, għandi oġġett ieħor hawnhekk, dan il-TF.
Matul hawn fil TF.h bażikament l-istess ħaġa.
Jien jiret minn NSObject, u mill-mod,
meta inti toħloq klassijiet din hija kollha isir għalik,
dan it-tip ta 'boilerplate interface.
Hija għandha proprjetà ta 'studenti.
I jkollhom metodi koppja hawn li ma verament jagħmlu ħafna kollu,
u sabiex ifisser wara I joħolqu dan l-oġġett TF
I jistgħu sejħa dan il-metodu ta 'grad fuqha bħal dan.
Kwalunkwe mistoqsijiet dwar Objettiv-C sintassi qabel we tibda miexja lejn uħud aktar
interessanti Jittieħed iżvilupp apps?
>> Okay, so ejja fil-fatt jagħmel app iPhone.
Il-klassijiet ewlenin li inti ser tkun qed tuża ġewwa ta 'app iPhone tiegħek huma msejħa kontrolluri view,
u l-kontrollur ħsieb bażikament jirrappreżenta skrin wieħed
ġewwa ta 'app tiegħek, hekk jekk jien fuq l-app mużika, per eżempju,
kontrollur ħsieb wieħed jista 'jirrappreżenta l-fehma li nista tara l-kanzunetti fuq iPhone tiegħi.
Ieħor kontrollur ħsieb jista 'jkun meta I ikklikkja kanzunetta u tibda playing
jew kif jien tħaffir isfel fil artisti.
Kull wieħed minn dawn l-iskrins differenti jistgħu jiġu rappreżentati bħala kontrollur opinjoni differenti,
u kontrollur ħsieb huwa verament ftit klassi li tgħid kif din l-iskrin taħdem.
Things ġewwa ta 'kontrollur fehma, aħna qed tmur biex ikollhom proprjetajiet,
sabiex l-affarijiet bħal buttuna se tkun proprjetà ta 'kontrollur fehma tagħna.
>> Aħna wkoll se jkollhom metodi, u dawn huma bażikament handlers avveniment.
Dan il-metodu jgħid meta tagħfas din il-buttuna
I trid tagħmel xi ħaġa, u finalment, għal darb'oħra,
aħna qed tmur biex tkun qed tuża dan il-keyword awto aċċess għall-każ preżenti.
Biex tibni interfaces fil IOS huwa attwalment tassew, tassew faċli.
Huma għandhom dan drag sbieħ u interface qatra imsejħa Interface bennej,
u l-kunċetti ewlenin 2 li wajer up tiegħek Għan-C sa Interface bennej
huma IBOutlet u IBAction.
L IBOutlet sempliċiment tgħid li jekk inti tiddikjara proprjetà li l-buttuna,
u inti tixtieq li ganċ it up għal xi ħaġa fil-UI attwali tiegħek,
int ser jgħidu huwa żbokk.
Bl-istess mod, jekk inti tixtieq li jirrappreżentaw handler avveniment
allura int ser jgħidu huwa azzjoni.
>> Biex attwalment wajer ta 'din ir-rappreżentazzjoni grafika
u l-kodiċi tiegħek huwa tassew, tassew sempliċi.
Jekk inti tixtieq li tehmeż IBOutlet, kull ma għandek tagħmel hu li inti kontroll click,
u aħna ser tara eżempju ta 'dan verament malajr.
Inti tikkontrolla ikklikkja fejn jgħid Kontrollur View.
Int ser jkaxkru fil-interface, jew bil-maqlub,
jekk inti tixtieq li ganċ up handler avveniment int ser jkaxkru mill-interface
fid-direzzjoni oħra.
Ejja tagħti ħarsa lejn eżempju IOS verament sempliċi.
>> Ejja joħolqu proġett ġdid.
Jien ser toħroġ hawn biex Applikazzjoni,
u jien ser ikklikkja Applikazzjoni View Single.
Jien ser ikklikkja li jmiss. I ser jagħti proġett tiegħi isem.
I ser sejħa hija Hello.
Interessanti, Apple jassumi int ħolqien ta 'prodott
sabiex inti tista 'tbiegħha u jistgħu jagħmlu l-flus.
Down hawn jien ser ngħid li dan huwa app iPhone.
Tista 'toħloq app iPad, jew jekk inti tixtieq li toħloq waħda minn dawk apps
li jappoġġja ż-żewġ mezzi li tista 'tagħmel li wisq.
Dawn huma dak li trid checkmarks tiegħek lill-dehra.
>> Inti tixtieq li tuża storyboards, li aħna ser tara aktar tard,
u inti definittivament tixtieq li tuża għadd referenza awtomatiku,
li hija karatteristika sbieħ li inti ma jkollhom jgħidu malloc u liberi.
Sakemm inti tixtieq li sejħa malloc u ħielsa, I tħalli din ċċekkjati.
I ser ikklikkja li jmiss, u finalment, dan se jistaqsu lili fejn irrid biex isalvawh.
I ser hit joħolqu, u here we go.
I ħolqot proġett ġdid.
Minn hawn fuq ix-xellug huma l-fajls kollha li huma ġewwa tal-proġett tiegħi,
u tinnota li sibt mazz sħiħ, u I lanqas tagħmel xejn.
IOS hija kbira.
>> Per eżempju, hawn din ViewController.h,
dan se jirrappreżenta kontrollur tiegħi ewwel ipoteżi,
hekk l-ewwel skrin ġewwa ta 'app tiegħi.
Issa nafu liema dan huwa qal.
Aħna qed tgħid jien ssejjaħ dan ViewController klassi,
u ViewController ma dak kollu li UIViewController ma,
u dan, għal darb'oħra, hija xi klassi li Apple kiteb li tagħmel ħafna ta 'għalf handy għalina
bħall juru l-iskrin.
Hawnhekk huwa fejn I tista 'tabilħaqq tibda tiddefinixxi liema kontrollur fehma tiegħi ma,
u jirriżulta li I really ma bżonn xi parti minn dan.
Dan huwa kodiċi boilerplate li Apple tagħti me b'xejn.
I ma bżonn li l-ewwel linja, jew I ma jkollhomx klassi,
hekk nistgħu jeħles dan u teħles minn dan.
Okay, għalhekk dan huwa l-iskrin vojta tiegħi.
>> Issa ejja ikklikkja fuq din MainStoryboard.storyboard,
u dan huwa fejn jibda biex tikseb interessanti.
Dan jirrappreżenta l-iskrin ewwel fuq app tiegħi.
Jekk I tixtieq iżżid buttuna, fil-HTML kelli biex jinħoloq tag buttuna.
Fil Android inti għandek toħloq tikketta buttuna,
iżda fil IOS jekk I biss jiġu stabbiliti hawnhekk lejn il-lemin tal-qiegħ
u jekk I ikklikkja fuq dan wieħed 3 hawn fejn jgħid Oġġetti,
u nista iscroll, jew I tista 'tibda tiftix għal buttuna.
U tħares, buttuna, hekk jekk I attwalment drag u qatra dan id-dritt hemmhekk,
Stajt biss miżjud buttuna għal dan l-iskrin fuq app tiegħi.
Jekk I tixtieq li tibdel it-test, nista 'ikklikkja darbtejn dan,
ngħid xi ħaġa enticing bħal "Agħfas Me."
Okay, issa jekk I run dan app, hekk aħna josservawha,
hekk li run I ikklikkja l-buttuna play fil-quċċata xellug, u hemm app tiegħi.
I ma tagħmel xejn, u sibt app iPhone ħelu tfittex.
Jekk irrid li twaqqaf dan, inti tista 'ikklikkja l-buttuna waqfien
għaliex dan huwa aktar divertenti.
>> Ejja ngħidu li attwalment I trid xi ħaġa li jiġri meta I-istampa din il-buttuna.
Biex tagħmel dan dak I bżonn tagħmel huwa li għandi bżonn li jinħoloq
handler avveniment ġdid jew azzjoni.
Dan ifisser li għandi bżonn biex joħolqu xi metodu li nixtieq li għandu jissejjaħ
meta I agħfas il-buttuna, so ejja toħloq metodu ġdid.
Jien ġewwa ta ViewController.h.
I bżonn li ngħidu li metodu jeżisti.
I bżonn sing ewwel għaliex jien ser tkun ssejjaħ dan fuq il-kontrollur fehma.
I-ħtieġa li jagħtu dan it-tip.
It-tip ta 'dan se tkun li ħaġa IBAction li rajna qabel.
Dan huwa handler avveniment, hekk li għaddej biex jirritorna l IBAction,
u dan huwa ħjiel li Xcode ngħid li
din hija xi ħaġa li nixtieq li wajer xi ħaġa li.
I tista 'tagħtiha l-isem, bħal buttonPressed, virgola.
>> Issa stajt iddikjarat metodu ġdid ġewwa ta 'klassi tiegħi.
Stajt qal dan il-metodu għandu jeżisti.
Issa ejja jidħlu fis ViewController.m,
u ejja ngħidu dak li dan il-metodu tista 'tagħmel.
Jekk nibda ittajpjar, per eżempju, (vojt) buttonPressed
avviż Xcode huwa tassew sbieħ u autocompletes għalija.
Li verament sabiħa.
Avviż hawnhekk li ġewwa tal-fajl. M nista 'ngħid ukoll null,
u dan huwa minħabba li IBAction mhuwiex fil-fatt tip.
Huwa fil-fatt hashtag definiti x'imkien li jkun null,
u għal darb'oħra, dan huwa biss ħjiel li Xcode li tgħid
Irrid li din hi handler avveniment, u aħna ser tara għaliex fi ftit tieni.
Meta din il-buttuna hija ppressata jien se jagħmlu xi ħaġa annoying
bħal display popup.
>> Biex tagħmel dan I jistgħu joħolqu każ ġdid ta 'din il-klassi imsejħa UIAlertView,
u dan huwa klassi li Apple kiteb li għaddej biex juru popups annoying.
Aħna ser sejħa dan twissija popup, u għandi 2 passi, ftakar, għall-ħolqien dan l-oġġett.
L-ewwel ħaġa I bżonn tagħmel huwa jalloka l-ispazju.
Irrid UIAlertView.
Irrid li jallokaw spazju. Dak il-metodu tiegħi ewwel.
Metodu li jmiss tiegħi huwa li nixtieq initialize dan,
u so I jkollhom din big, il-metodu twil imsejħa initWithTitle.
Li bażikament għaddej biex jikkontrollaw dak li dan popup jgħid.
It-titolu ta 'popup tiegħi tista' tkun bonjour.
Il-messaġġ ta 'din popup jista' jkun "Dan huwa IOS."
Ħaġa Delegat, I do not know dak li hu.
Ejja ngħidu xejn huwa.
Issa l-buttuna li għaddej biex jidhru 'ngħid xi ħaġa bħal "Huwa żgur huwa,"
u jien ma verament irridu xi buttuni oħra, so ejja iħassru dan u tagħlaq il-kategorija.
>> Okay, I ħolqot waħda żejda. Hemm immorru.
Dan huwa kif I tista 'toħloq popup ġdid.
Jekk irrid attwalment juru l-popup nixtieq li jsejħu l-metodu ispettaklu.
Biex tagħmel dan nista 'ngħid twissija u juru,
u għal darb'oħra, AutoComplete kien super sbieħ.
Jekk I nesa dak li kien, jekk I biss ittajpjat fil i,
I tista 'scroll permezz hawn biex ċifra barra dak li kien,
u filtri nicely.
Now I ħolqot din popup ġdid.
Aħna ser jerġa 'lura għal mezzi delegat dak aktar tard,
u issa nixtieq ngħid nixtieq dan il-metodu li jiġi sparat
meta I agħfas il-buttuna, hekk jien ser terga 'lura għal storyboard tiegħi,
u nixtieq li issa iwaħħlu dan IBAction.
L-ewwel ħaġa li trid tagħmel hu li ikklikkja l-buttuna.
Meta I agħfas din il-buttuna Irrid xi ħaġa li jiġri.
Jien ma jmur biex iżommu l-kontroll.
Jien ser ikklikkja u drag mill-buttuna
għal aktar hawn fejn jgħid Kontrollur View.
Nistgħu naraw li din nicely jixgħel.
>> Jekk I let go ma maws tiegħi I issa għandhom dan popup minn hawn fejn għandi xi għażliet.
Wieħed minn dawn huwa l-avvenimenti li nista jirreġistraw.
Dawn huma kollha ta 'dawk il-metodi I ddikjarati fil-fajl h tiegħi bħala IBActions.
Dan huwa kif Xcode jaf liema għandhom jidhru f'din il-lista ftit,
b'tali mod li biss ħjiel.
Jekk I ikklikkja fuq buttuna ippressat, stajt issa irreġistra l-handler avveniment.
Fl JavaScript kellna ngħidu għandi xi kodiċi li rreġistrat l-handler avveniment.
Fil Għan-C kien verament dak faċli.
Jekk I run dan mill-ġdid
issa meta I agħfas il-buttuna handler avveniment tiegħi se nar,
u jien ser tikseb dan popup.
Super, super sempliċi hemmhekk.
>> Jekk inti qatt tixtieq li tara kollha ta 'l-avvenimenti li jiġri li jiġu reġistrati
fuq komponent jekk I ikklikkja fuq din il-buttuna
u nasal hawn fuq biex il-lemin
ewwel inti tista 'tara minn hawn I tista' tagħmel affarijiet bħall-tip tal-buttuna,
jekk hekk tixtieq wieħed minn dawk l-I jew il-buttuna 'kuntatt add
jew ikun x'ikun.
Jekk irrid biex tara kollha ta 'l-avvenimenti li huma fuq din il-buttuna
jekk nasal-triq kollha madwar hawn biex il-lemin
nistgħu naraw hawn fuq l-avvenimenti I jkunu kollha ta 'dawn l-avvenimenti differenti.
I tista 'tagħfas il-buttuna, meta I let go tal-buttuna, meta I double-vit jew kwalunkwe,
u l-wieħed I biss reġistrat huwa dan l-avveniment imsejjaħ Touch Up Ġewwa,
u dan jgħid li hekk kif finger tiegħi ġejja mill-buttuna
F'dak il-każ se nar, u dan huwa eżattament dak li ġara biss.
Dan huwa tip ta 'l-avveniment buttuna default magħfus.
>> Kwalunkwe mistoqsijiet s'issa?
Okay, li kif nistgħu jibdew wajer up affarijiet fil-kodiċi tagħna
fis-affarijiet ġewwa ta 'interface tagħna.
Ftakar l-ewwel ħaġa li aħna kellha tagħmel kien li ssib il-kodiċi,
u allura aħna fili sa l-interface għall-kodiċi,
u hemm app tagħna ewwel.
Okay, li kien verament jibred, u ħloqna din il-buttuna.
X'jiġri jekk aħna ma jridu li jkollhom li toħloq mazz ta 'proprjetajiet
jirrappreżentaw dawn il-buttuni?
Per eżempju, fil Tic Tac Toe għandi 9 buttuni,
u d tkun super, super annoying li jkollhom biex drag u qatra 9 darbiet
jew jekk I kellhom jagħmlu Tic Tac Toe ma '81 minflok ta' 9
u kelli biex drag u qatra 81 darbiet, u li l-lame.
Dak li nistgħu nagħmlu minflok huwa ferm simili HTML
meta kellna affarijiet simili IDs u ismijiet u nistgħu tfittxija għal affarijiet
billi ID tagħhom, hemm kunċett simili fl-IOS imsejħa tags.
>> A tag huwa sempliċement identifikatur numeriku uniku għal komponent.
Jekk jien ngħid dan għandu tag ta '0, per eżempju,
jekk I joħolqu buttuna u tagħtiha a tag ta '0, u aħna ser tara kif tagħmel dan fi ftit tieni,
jekk irrid li tikseb li buttuna nista 'sempliċement jgħidu Irrid li sejħa
il-viewWithTag metodu fuq l-oġġett minn hawn
il self.view, li jirrappreżenta l-iskrin attwali, per eżempju.
Jekk I call dan il-metodu viewWithTag, jien ser jiġbdu lura l-buttuna ma tag 0.
Ejja tagħti ħarsa lejn dan billi Tac Toe bini Tic.
L-ewwel, dan huwa storyboard tiegħi.
Stajt ħolqot dawn il-buttuni UI 10.
Avviż dawn qed kollha l-istess daqs.
Jekk I ikklikkja waħda minn dawn u nasal lura minn hawn fuq din lemin
int ser tara I aġġustati l-font dritt hawn, so I għamel il-font ftit akbar,
imma dak I wkoll għamilt kien I jistabbilixxu dan tag.
I qal li dan għandu tag ta '1, u dak l-quċċata xellug.
>> Issa, jekk I ikklikkja ieħor buttuna, bħal dan wieħed 2 hawn,
Issa tkun taf tara li tag tiegħi huwa 2.
Kull wieħed minn dawn buttuni ftit għandu tag uniku,
u għalhekk dan huwa tard kif jien ser tibda interazzjoni
ma app tiegħi.
Dan huwa kollu ġewwa ta 'kontrollur fehma waħda,
iżda hawnhekk huwa dak li għandna.
We have 3 proprjetajiet hawn.
L-ewwel waħda u wieħed aħħar huma ser tirrapreżenta t-bord tiegħi.
Bażikament dan ewwel waħda hija l-firxa li jirrappreżenta fejn il-Xs u Os huma.
Dan wieħed ieħor hawn jgħidilna li jkun imissu.
Int ser ikollok avviż li jien ukoll dawn l-affarijiet hawn.
Qabel meta aħna ddikjarat proprjetajiet aħna tahom isem u tip.
Nistgħu wkoll jagħtihom xi informazzjoni addizzjonali hawn.
Dan l-ewwel jgħid nonatomic, u liema dan jgħid
hija bażikament biss ħaġa waħda se qatt tkun qed tipprova aċċess għal din il-varjabbli fi żmien.
Inti tista 'tagħmel l-applikazzjonijiet aktar kumplessi li huma multi-kamin,
u hekk lura fil Scratch kellna ħjut differenti,
u sprites differenti jistgħu jagħmlu affarijiet differenti fl-istess ħin.
>> Jekk dan mhux il-każ, li mhuwiex xi ħaġa li aħna ser tkun tħares lejn,
jekk ngħidu nonatomic huwa fil-fatt se tagħmel l-affarijiet ftit aktar mgħaġġel.
Għandna wkoll dan ħaġa imsejħa tassenja, qawwi, jew dgħajfa.
Dan tassenja biss jgħid li dan huwa tip standard.
Dan mhux oġġett jew pointer għaliex dan huwa biss bool,
hekk bool hija mibnija fis Għan-C.
Dan jgħid ma tippruvax li tagħmel xejn fancy ma 'pointers hawn.
Huwa scaler qodma regolari.
Qawwija u dgħajfa, dan dgħajjef jgħid li fil-fatt
Irrid dan ikun tipponta lejn xi ħaġa fil-kontrollur fehma.
Jien ma jmur biex effettivament allokati jew Iniz dan myself.
Il-bennej interface, meta I run-app, huwa se jimmaniġġjaw kollha li inizjalizzazzjoni.
Jekk jiena ngħid dgħajfa, li tgħid xi ħadd ieħor se tkun jinħoloq dan.
Jekk I say qawwija, dan jgħid li jien ser jkun il-wieħed
li l-ħolqien ta dan l-oġġett bord,
u hekk hawn I jkollhom metodi ftit aktar hawn,
per eżempju, azzjoni għal meta l-buttuna logħba l-ġdida hija ppressata,
azzjoni għal meta kwalunkwe mill-buttuni oħra huma ppressati,
u eċċetera.
>> Aħna mhux se jsibu rwieħhom wisq ta 'l-loġika ta' Tic Tac Toe,
għalkemm huwa ferm eċċitanti, imma ejja tagħti ħarsa lejn
xi wħud mill-affarijiet li nistgħu nagħmlu ġewwa ta 'IOS.
Dan il-metodu ġdid logħba se jiġu sparati
kulmeta I agħfas il-buttuna logħba l-ġdida.
Biex ganċ li sa I sempliċiment jiġu trasferiti għas storyboard tiegħi.
I għafast fuq logħba ġdida.
Jekk nasal hawn fuq għad-dritt I jista 'jara li
Touch Up Ġewwa huwa fili għall-metodu newGame.
C'est pourquoi dan se tikseb sparati.
Il-metodu newGame se jagħmlu xi set up.
Huwa ser ngħid nixtieq li ċar l-istat tal-bord.
Dan huwa metodu sbieħ fuq mutable arrays.
Dan ser ngħid huwa issa dawran X, il-
u issa jien ser jieħdu vantaġġ ta 'dan il-ħaġa viewWithTag.
>> Naf li buttuni tiegħi jkollhom l-tags 1-9,
u li xi ħaġa I arbitrarju telgħet.
Jekk irrid li jiġu stabbiliti t-test ta 'kull buttuna li jkunu vojta
minħabba I biss bdiet logħba ġdida u jien ma tridx xi
Xs jew Os ikunu mħollija I tista 'tagħmel dan.
Nista 'ngħid li nixtieq-fehma bil-tikketta, 1, 2, 3, 4 eċċetera.
Dan se jiġbdu buttuna differenti kull darba.
Hawnhekk jien ser jitfa lill UIButton.
Eżatt bħal nistgħu mitfugħa ints li flowts u viċi versa
dan jgħid li nixtieq li jitfa din lil UIButton.
Dan ifisser it-tip ta 'dan se jkun * UIButton
minħabba pointers, imma tinkwetax, dawn mhux qed scary aktar.
>> Ladarba I jkollhom din il-buttuna jien ser sejħa metodu fuqha.
Dan il-metodu huwa msejjaħ setTitle forState, u għalhekk dan jgħid
Irrid li jistabbilixxu t-test tal-buttuna li jkun il-string vojta,
u nixtieq li din tkun l-sekwenza vojta meta huwa ma jkunx magħfus.
Jekk jien jużaw dan il-metodu, I tista 'tibdel it-test tal-buttuna
malli xi ħadd hits, imma irridu li jgħidu meta l-buttuna tkun biss seduta hemmhekk
Irrid t-test li jkun vojt.
Fl-aħħarnett, aħna qed tmur biex initialize bord tiegħi,
u jien ser ngħid li kollox huwa bħalissa 0,
hekk dan il-bord membri immutabbli huwa firxa mutable,
li jfisser I jistgħu sejħa tal-metodu addObject u biss ġewwa 0 ta 'dan.
Dan huwa dak li jiġri meta I joħolqu logħba ġdida.
>> Ejja tagħti ħarsa lejn ieħor.
Dan il-metodu hawnhekk huwa l-IBAction li għaddej biex jiġu ppressati
kull darba wieħed minn dawk kwadri hija ppressata.
Issa għandna xi loġika Tic Tac Toe hawn.
Aħna figura li jkun imissu,
u bbażat fuq li aħna jew jistabbilixxu X jew O,
imma aħna avviż li aħna qed jerġgħu jużaw din handler avveniment istess
għal kull wieħed minn dawn buttuni.
Dan ifisser li jien ma jkollhom metodu għall-buttuna fuq tax-xellug,
metodu differenti għall-buttuna lemin tal-qiegħ, għalkemm I jista 'jkollhom li jsir.
Li ma jkunx verament disinn tajjeb.
Dak li jien tagħmel hawnhekk huwa jien attwalment għaddejjin biex jiddeterminaw
dak l-tikketta tal-buttuna li kien ippressat huwa.
Tinnota li dan il-metodu play tieħu waħda argument.
Huwa sejjaħ mittent, u dak mittent huwa qed mittent se
jirrappreżentaw eżattament dak li kien ħa azzjoni fuq.
Jekk I tagħfas buttuna, din mittent se tkun dik UIButton
li attwalment I ippressat, b'tali mod li jfisser li din UIButton
għandu tag minħabba I ħolqot tag.
>> Jekk I rridu nġibu fil-tikketta nista 'sempliċement jgħidu
Irrid li l-tikketta tal-mittent,
u għal darb'oħra, stajt biss casted hija għal UIButton.
I jiġri li tkun taf li l-mittent se jkun UIButton.
Ma dejjem għandhom ikunu UIButton.
I jistgħu, per eżempju, jirreġistra l-handler avveniment istess
għal waħda għal buttuna, waħda għal slider.
F'dan il-każ, naf li qed kollha buttuni, hekk jien se ngħid
Irrid li dan ikun buttuna, u mbagħad I jistgħu jiksbu l-tikketta,
u mill-tikketta I issa jkunu jafu fejn I am ġewwa tal-bord.
Imbagħad I tista 'sempliċement jistabbilixxu jew ir-X jew il-O, jista flip-dawran,
iċċekkja li rebaħ, eċċetera.
>> Kwalunkwe mistoqsijiet dwar dan s'issa?
Okay, l-kodiċi aħna stazzjonati online-aħna ma rridu nġibu fis wisq
tal-loġika Tic Tac Toe, iżda issa tista 'tara li verament
kollha għandna qed tagħmel huwa li aħna qed looping fuq dan array,
hekk aħna ftit għal linji hawn, u aħna qed biss jqabbel biex tara
do għandna logħba fil kollha ringieli, taqbila fil-kolonna jew xi ħaġa bħal dik.
Biex tmexxi effettivament dan app, jekk I vit fuq waħda minn dawn il-buttuni
dan il-metodu play kien sparat, b'tali mod li jfisser I biss sett
il-buttuna li jkun X, hekk issa din il-buttuna se jkun O, u fuq hekk,
u hekk li kif aħna qed jibdew jinteraġixxu ma 'dan app paġna waħda.
>> Aħna ser post il-kodiċi, hekk li tħossok liberu li jaqraw b'attenzjoni li,
imma ejja issa nitkellmu dwar xi apps li huma aktar minn sempliċiment paġna waħda.
Kif eċċitanti kif Tic Tac Toe kien, ħafna apps ġewwa tal IOS
huma tip ta 'dawn drill down affarijiet bi skrins multipli.
Il-kunċett ewwel li aħna ser bżonn li nitkellmu dwar huma protokolli,
u protokoll huwa sempliċement sett ta 'metodi
li inti tista 'wegħda li tiddefinixxi.
Jekk I joħolqu dan il-protokoll il-ġdid mal-2 metodi, dan wieħed l-ewwel,
jekk it-tip ritorn hija nulla, I sejħitilha foo.
Huwa jieħu ebda argumenti. Għandi metodu ieħor.
Dan jirritorna int. I sejħitilha bar, u li tieħu 1 argument.
Dan kollu protokoll huwa li sejjaħ SomeProtocol up hawn,
dan huwa sett ta 'affarijiet li xi ħadd jista jimplimentaw.
I ma 'ġewwa tal dan il-protokoll qal dak foo ma.
Minflok, jien biss qal li inti tista 'tiddefinixxi foo jekk inti tixtieq li.
Jekk jien ħolqien ta 'kontrollur ħsieb jew ħolqien ta' klassi
I jistgħu ġewwa ta 'dik il-wegħda klassi li jimplimentaw
xi wħud minn dawn il-metodi, sabiex per eżempju, jekk ngħidu
dan issa jgħid jien jagħmlu wegħda lilek li ġewwa
ta 'din il-klassi kontrollur ħsieb I se jkollhom definizzjonijiet kemm għall foo u bar.
>> Għaliex huwa li utli?
A lott ta 'komponenti ġewwa tal IOS jieħdu vantaġġ ta' dan
mudell tad-disinn imsejħa delega, u jgħid liema delegazzjoni
hija li, per eżempju, jekk ikolli kaxxa ta 'test
u hemm xi avvenimenti li jistgħu jiġu rreġistrati ġewwa tal kaxxa ta 'test tiegħi,
minflok noħolqu aktar avvenimenti separati dak I tista 'tagħmel huwa nista' ngħid
l delegat ta 'din il-kaxxa test se jkun hemm xi oġġett.
Meta I jgħidu li din hija delegat issa li jfisser li
kull meta xi avveniment kienu jkunu sparati fil-kaxxa ta 'test
aktar milli jkollhom tirreġistra jew xi ħaġa bħal dik
huwa biss ser sejħa metodu fuq il-delegat.
Per eżempju, ġewwa tal-kaxxa test tiegħi I jkollhom metodu għal meta I-istampa
li jsir buttuna fil-qiegħ dritt,
u għalhekk iktar milli jirreġistraw handler avveniment dak li nista 'ngħid huwa
kaxxa ta 'test, hawnhekk huwa oġġett li nixtieq li inti sejħa metodu fuq
kull darba li xi ħadd jagħfas il-buttuna jsir,
u dan ifisser li dak l-oġġett għandu jimplimenta xi protokoll
li tgħid I wegħda li jiddefinixxi dik l-azzjoni buttuna isir,
għaliex jekk ma jiddefinixxu dak il-metodu u inti istampa jsir,
allura huwa għaddej biex tkun konfuża.
>> Ejja tagħti ħarsa lejn eżempju.
Hawnhekk I sempliċiment jkollhom kaxxa ta 'test wieħed,
u wieħed mill-proprjetajiet ta 'din il-kaxxa test minn hawn fuq din in-naħa id-dritt huwa l-delegat.
Dan huwa proprjetà tal-klassi.
What I ma hawn hija I għafast kontroll, u I mkaxkra minn dan il-post minn hawn
lill-kontrollur opinjoni, u li tgħid issa l delegat ta 'din kaxxa ta' test
se tkun il-kontrollur fehma.
Dan ifisser li meta xi azzjonijiet jiġri, aktar milli jirreġistraw
handlers separati avveniment nixtieq li inti tibgħat lill-delegat.
Issa ejja tagħti ħarsa lejn kontrollur fehma tiegħi.
Ġewwa tal-fajl h. Stajt għamel wegħda.
Stajt wiegħed li jimplimenta xi metodi ġewwa ta 'dan il-protokoll
imsejħa UITextFieldDelegate, u għal darb'oħra,
dan huwa biss xi lista ta 'xi affarijiet li I jistgħu jagħżlu li jimplimentaw.
>> Jekk I jiġu hawn fil. M file tiegħi, jien implimentati metodu wieħed bħal dawn.
Stajt imsejħa textFieldShouldReturn
għaliex dan huwa dak li kien jissejjaħ ġewwa tal-protokoll.
U issa kulmeta I agħfas il-buttuna ġewwa magħmula ta 'dik qasam tat-test
dan huwa dak li għaddej biex tikseb imsejħa, so I ma tirreġistra handler avveniment.
I konnessi-delegat u kull meta dan l-avveniment huwa sparati
dan huwa l-metodu li se tikseb imsejħa, hekk jekk nasal hawn fuq biex storyboard tiegħi u run-
filwaqt li l-tagħbija nistgħu naraw dak li dan ma.
Fuq l-iskrin tiegħi I għandhom 2 affarijiet.
Għandi dan il-qasam test, u għandi din it-tikketta.
Jien sempliċiment tgħid Irrid t-test ta 'din it-tikketta
li jkun ugwali għal dak kollu li l-utent ittajpjat fil ġewwa tal-qasam tat-test.
Din il-linja li jmiss hawnhekk huwa sempliċiment metodu li jien ssejjaħ
fuq il-qasam tat-test li tgħid nixtieq li jaħbu l-keyboard.
Dan huwa biss il-metodu arbitrarju li Apple għażlet.
>> Għal darb'oħra, qabel I ma xejn kelli li wajer kollox up, so I ewwel daħal minn hawn.
Mill-kontrollur fehma I drag fuq il-kaxxa tat-test.
I let go, u nista 'nara hawn li I jistgħu jagħmlu dan l-proprjetà qasam tat-test
peress hawn fuq fil-kontrollur fehma stajt definit proprjetà
li hija IBOutlet ta 'qasam tat-test.
Dan jgħid li nista 'wajer din il-proprjetà up
għal qasam tat-test fil-UI tiegħi.
Issa meta I ikklikkja dan I tista 'tibda ittajpjar.
Issa jekk I ikklikkja l-buttuna jsir dan se nar
avveniment li issa nista 'jirreaġixxu għaliha.
Ebda handlers avveniment.
Thats kif I biss wieġbet għal din buttuna jsir.
Jagħmel sens?
>> Din mhix mudell disinn li inti ma tista 'qatt issib ruħek
ħolqien protokoll tiegħek, iżda biss jafu li xi
komponenti differenti IOS jirreġistraw avvenimenti b'modi differenti.
Buttuni, per eżempju, jużaw dawk IBActions.
Oqsma Test, min-naħa l-oħra, tmur għall-użu delegati.
Nistgħu naraw u inti tista 'tfittex kollha ta' dak ġewwa l tad-dokumentazzjoni.
Mill-mod, hemm attwalment ton ta 'għalf UI mibnija fis IOS għalik,
hekk per eżempju, il-mod I magħmula li jgħidu jsir fil-qiegħ dritt
huwa I magħżula f'dan il-qasam it-test.
Ġejt hawn fuq.
I impress stabbiliti daqsxejn lura ewlenin,
u I jistgħu attwalment jagħmlu dan mazz sħiħ ta 'affarijiet, bħal jekk irrid li ngħid
emerġenza sejħa minflok I tista 'tagħmel dan, li huwa totalment każwali,
u jien ma nafx għaliex hemm mibni buttuna sejħa ta 'emerġenza,
iżda hemm, huwa jgħid sejħa ta 'emerġenza fl-ittri verament żgħar.
Hemm inti tmur.
>> Żgur tesplora kollha ta 'dawn l-għażliet differenti fil-IOS.
Kwalunkwe mistoqsijiet dwar id-delegati?
Għal darb'oħra, biss mudell disinn interessanti li inti għandek tkun taf.
Okay, ejja jmiss tagħti ħarsa lejn fehmiet tal-mejda.
Veduta tabella hija bażikament dik il-lista ta 'oġġetti li hija kollha fuq il-post fil IOS.
Meta inti qed flipping permezz kollha tal-kuntatti tiegħek, qed tfittex fi
il-paġna iffissar, u dak it-tip ta 'lista ta' affarijiet li jissejjaħ ħsieb tabella.
Implimentazzjoni ħsieb tabella fl IOS hija pjuttost sempliċi.
Minflok tagħmel klassi li jinżel minn dik UIViewController
bħal aħna ghamilt qabel we sempliċiment għandek bżonn li jgħidu aktar milli
kollox UIViewController ma nixtieq li tagħmel,
I say kollox UITableViewController ma nixtieq li tagħmel,
b'tali mod li sempliċement iżid xi affarijiet addizzjonali li huma kompletament magħmula għalina.
Għandna bżonn biex jagħmlu ftit biex bażikament timla l-vojt ġewwa tat-tabella.
>> Sabiex juru tabella I-ħtieġa li twieġeb xi mistoqsijiet.
L-ewwel domanda li għandi bżonn li tingħata risposta huwa kemm taqsimiet huma fit-tabella?
Meta inti qed flipping permezz app kuntatti tiegħek inti ser ikollok avviż li huwa tip ta '
organizzata mill-Kif, allura inti għandek il-Bs, u inti għandek li header sub ftit.
Kull wieħed minn dawn huwa msejjaħ taqsima.
Inti tista 'jew ma jistgħux jeħtieġu dawn.
L-ewwel ħaġa li għandek bżonn tagħmel hu li timplimenta metodu
imsejħa tableView: numberOfSectionsInTableView.
Li sempliċiment jirritorna kemm sezzjonijiet ikollok,
għalhekk dan jista 'jgħid ritorn wieħed jekk għandek wieħed fehma tabella kbar.
Il-mistoqsija li jmiss li IOS jeħtieġ li tkun taf kemm ringieli għandek?
Per eżempju, inti qed flipping permezz ħsieb tabella.
Inti għandek numru fiss ta 'kanzunetti inti qed tfittex fi jew numru fiss ta' kuntatti.
Jekk int lili, naturalment, mhux li ħafna,
u b'tali mod li l-mod kif IOS jaf kemm ċelloli għall-wiri.
>> Għal darb'oħra, dan jista 'jgħid xi ħaġa bħal ritorn 3.
Fehma tabella My 3 ringieli.
Fl-aħħarnett, IOS jeħtieġ li tkun taf liema kull ċellula Dehra,
iva, liema huwa fil-fatt se tagħmel hu li jsejħu dan il-metodu stabbiliti hawn,
dan tableView: cellForRowAtIndexPath.
Huwa ser sejħa dan il-metodu fuq kull ċellola waħda ġewwa tal-mejda tiegħek.
Kif ma jaf kif ħafna drabi li hija sejħa?
Ukoll, inti told ġewwa ta 'numru ta' ringieli fit-taqsima.
Aħna ser sejħa dan dwar kull wieħed ċelluli tagħna,
u ġewwa ta 'dan huwa fejn inti tista' tagħmel affarijiet simili
jistabbilixxu t-test jew jgħidlek dak li buttuna blu ftit fuq il-lemin ma.
Il-mudell għall jkollna dawn iċ-ċelluli, aħna qed tmur biex jużaw dan il-metodu
imsejħa dequeueReusableCellWithIdentifier.
>> Għan-C huwa attwalment tajjeb ħafna magħruf għat-tul redikoli ta 'ismijiet metodu tagħhom,
u dan huwa verament każ sbieħ fl-eżempju punt.
X'inhu dan il-metodu ma huwa dan biss jgħid Nixtieq li tagħti me phone.
Just ħaġa IOS.
Jekk għandek xi ħaġa simili 100,000 kanzunetti fuq iPod tiegħek
dak IOS ma trid tagħmel hu li talloka 100,000 ċelluli,
għaliex jekk int fil-quċċata tal-lista tiegħek, inti verament bżonn li jiġu allokati memorja
għall-ċellula li l-99000 ringieli isfel?
Le, għaliex kif int scrolling inti tista tip ta jallokaw kif tmur flimkien.
Dan isir għalik.
Inti ma għandekx għalfejn tinkwieta dwar dak kollu li Jittieħed prestazzjoni stupid.
Kulma għandek tgħid huwa inti sejħa dan dequeueReusableCellWithIdentifier metodu,
u dan jgħid, okay, jekk għandek bżonn biex jien ser toħloq phone ġdid għalik.
>> Imma jekk int fil-qiegħ tat-tabella u inti stajt diġà allokati xi ċelloli
fil-quċċata tat-tabella li int verament mhux se jeħtieġu ghaċ dalwaqt
Jien ser jagħtuk waħda minn dawk dahar minflok allokazzjoni ta 'waħda ġdida,
u għalhekk dan huwa ta 'tħassib prestazzjoni sbieħ.
Inti ma għandekx biex jallokaw l-ċelluli yourself.
Li għaddej biex jagħtuk lura ċellola.
Huwa ser jirritornaw lilek oġġett phone.
Ladarba inti tkun l-oġġett phone inti tista 'tagħmel Jittieħed lilha.
Tista 'tissettja t-test tad-ċellola ma' din il-proprjetà msejħa tikketta test.
Inti tista 'żżid li vleġġa fuq il-lemin jew xi għalf każwali ieħor
ma din il-proprjetà oħra msejħa accessoryType, u hekk u hekk.
>> Ejja tagħti ħarsa lejn attwalment timplimenta ħsieb tabella issa.
Meta I ħolqot dan il-proġett
pjuttost milli tgħid applikazzjoni fehma waħda I attwalment daħal minn hawn
li master-dettall applikazzjoni, u għalhekk bażikament dan jikkorrispondi għall-app-posta
fuq il-iPad mal-fehma tabella fuq ix-xellug u mbagħad l-kontenut fuq il-lemin.
Fuq l-iPod jew iPhone dan se tikkorrispondi għal kunċett tabella waħda.
Li meta sirt kodiċi starter tiegħi.
>> Ejja ewwel tagħti ħarsa lejn l-storyboard.
Kollha ta 'dan sar għalija, bażikament maħluqa.
Dan bar tan-navigazzjoni wera lili dak li cell eżempju jista look like,
u nista 'ikklikkja darbtejn dan, ibiddel it-titolu.
Kwalunkwe tħassib UI oħra I jistgħu jimmaniġġjaw hemmhekk.
Il-fajl tal-header jistenna verament sempliċi.
Pjuttost milli qal dan huwa UIViewController aħna qed issa tgħid li dan huwa
TableViewController, hekk aħna nafu li aħna rridu li sejħa kollha dawk il-metodi tal-mejda.
Next Irrid li toħloq proprjetà li għaddej biex jirrappreżentaw
l-affarijiet ġewwa tal-mejda tiegħi.
Din it-tabella se arbitrarjament juru
lista ta 'frott, u so I bżonn li jinħoloq xi array
fejn nista 'daħħal frott.
Ġewwa tal-fajl implimentazzjoni tiegħi l-ewwel ħaġa li nixtieq do
huwa Irrid nagħmel ċert I initialize din array.
>> I said alloc Iniz, maħluqa array frott tiegħi,
u jien żżid 4 affarijiet miegħu, li waħda minnhom hija ħafna aktar kontroversjali milli l-3 l-oħra.
U issa għandi firxa ta 'daqs 4.
Aħna qed tħawwad it up fil-CS50.
I issa jkollhom firxa ta 'daqs 4.
Issa jien ser tibda jwieġbu dawn il-mistoqsijiet, u fil-fatt,
meta I ħolqot dan app kollha ta 'dan kien diġà sar għalija.
I ma kellhomx it-tip mill-għadd ta 'taqsimiet bil-ħsieb tabella.
Kien diġà hemm, u jien timla l-vojt.
Kemm sezzjonijiet għandi?
Wieħed. Kollha jsir.
Kemm ringieli għandi?
Well, I jkollhom waħda ringiela għal kull frott, għalhekk dan għadd
huwa proprjetà ta 'kull firxa li tgħid kemm hu kbir huwa?
Li kemm ringieli jien.
Fl-aħħarnett, I-ħtieġa li jgħidu dak li ma kull ċellula look like?
Jien se ngħid dequeueReusableCellWithIdentifier.
>> Għal darb'oħra, dan kien diġà bil-miktub għalija.
I ma jkollhom jagħmlu dan myself, u nixtieq li terġa 'lura
din iċ-ċellula fil dan il-post.
Ftakar li aħna qed jitolbu dan istess metodu fuq kull ċellula waħda,
u dan l-argument hawn, dan l-argument indexPath,
jgħid dak ringiela jien pulzieri
Jekk jiena ngħid indexPath.row stabbiliti hawn
dan se jkun 0, imbagħad se jkun 1, imbagħad se jkun 2, u dan huwa hekk naf
dak cell jien bħalissa wiri.
Irrid li jistabbilixxu t-test taċ-ċellula li jużaw din il-proprjetà textLabel
li jmorru ġewwa firxa tal-frott tiegħi u jiksbu
l jikkorrispondi għal kull ringiela oġġett.
Jekk dan huwa string, jien issa twaqqif
il-proprjetà test li string.
I tista 'tagħmel ħaġa waħda oħra.
I tista 'wkoll tirreġistra handler avveniment fuq kull wieħed mill-ċelloli,
hekk meta I vit kull wieħed minn dawn iċ-ċelluli
dan didSelectRowAtIndexPath, dan se jiġu msejħa għalija,
hekk sempliċiment billi tiddefinixxi din I issa jistgħu jimmaniġġjaw x'jiġri
meta inti vit ċellola, u għal darb'oħra, aħna qed jgħaddi li fih ċelluli kienet sfruttat
sabiex inkunu nistgħu użu mill-ġdid dan il-handler avveniment istess għal kulħadd ta 'ċelluli tagħna.
>> Għal darb'oħra, din hija xi ħaġa IOS qed tagħmel għalija.
Ejja juru ieħor popup annoying
li sempliċiment tgħid li inti qabad xi ħaġa fejn xi ħaġa li
se tkun l-oġġett ringiela.
Meta I run dan, jien ser ikollhom din il-fehma tabella sbieħ
ma 'wieħed ringiela għal kull wieħed minn dawn frott, u jekk I vit 1
hija me dice dak li ġara.
Jagħmel sens?
Ejjew nibnu ftit aktar kumplessa ta 'app,
kemm tikklikkja inti qabad tadam huwa.
Il-parti sbieħ dwar il-storyboarding
huwa huwa mhux biss se jgħinu iskrins disinn us individwalment,
huwa wkoll ser tgħinna jorbtu flimkien app kollu tagħna,
hekk l-app aħħari aħna ser tkun bini huwa dan sbieħ sportivi aħbarijiet qarrej,
u għalhekk li għaddej biex ikollhom iskrins multipli, u so I jistgħu attwalment jirrappreżentaw
kull wieħed minn dawn l-iskrins multipli fuq il-storyboard,
u nista zoom out u ara app tiegħi minn livell għoli.
>> Sabiex jinħoloq ġewwa element ġdid ta 'storyboard tiegħi
huwa verament sempliċi ġewwa ta 'bennej Interface.
Jekk irrid li żżid ieħor iskrin li din, per eżempju,
I jistgħu 1 zoom out mal-zoom niskata li Apple tant iħobb tant,
u 'l isfel hawn qabel I tfittxija għal buttuna
u I drag u qatra l-buttuna
jekk irrid li jinħoloq skrin ġdida I jistgħu attwalment biss drag u qatra
kontrollur fehma sħiħa, hekk jekk I pick dan, iġbdu hawn fuq,
ħej, hemm ieħor iskrin, u għalhekk issa qegħdin jużaw dan il-fajl storyboard istess
I jista 'jkollhom kollha ta' l-iskrins ġewwa ta 'app tiegħi, u nista zoom out
u tara kif dawn jinteraġixxu.
Dawn mhux se jinteraġixxu s'issa.
Il-mod li bih dawn l-iskrins 2 jinteraġixxu huwa inti jiddefinixxu relazzjonijiet.
Tista 'bażikament tgħid dan l-iskrin, meta tagħfas din il-buttuna,
Nixtieq li tiżżerżaq fuq dan l-iskrin ġodda.
Dan ifisser li hemm dan it-tip ta 'relazzjoni bejn
l-iskrin ewwel u l-iskrin tat-tieni.
Int ser ikollok bażikament vleġġa minn dak buttuna biex l-iskrin 2
qal li meta tagħfas din il-buttuna li fejn Irrid immur.
Eżatt bħal aħna-kontroll għafast u mkaxkra li jiġu definiti dawk ħwienet
aħna qed tmur biex jagħmlu l-istess ħaġa li jiddefinixxu dawn segues.
>> Ser naraw eżempju għal dan, u qabel we attwalment transizzjoni
minn skrin għall-ieħor IOS huwa sbieħ biżżejjed biex sejħa dan il-metodu
imsejħa prepareForSegue, u dan huwa fejn aħna tista 'tibda
tintbagħat data minn app għall-ieħor.
Fl-eżempju aħna ser tħares lejn din bażikament se jħallina naħsdu
filtru timijiet baseball mill-kampjonati u d-diviżjonijiet.
Meta I tagħżel kampjonat, per eżempju, nixtieq transizzjoni
għall-iskrin li jmiss tiegħi fejn I jistgħu juru kollha ta 'l diviżjonijiet
f'dak il-kampjonat jew l-timijiet differenti.
I ħtieġa li jibgħat għal dak screen dak it-timijiet li għandek display.
Biex tagħmel dan jien ser jieħdu vantaġġ ta 'dan il-metodu hawn.
>> Fl-aħħarnett, biss punt każwali fuq IOS.
Jekk inti tixtieq li jaħżen id-data hemm dan ħaġa imsejħa data ewlenija,
li huwa fil-fatt tip ta 'kkumplikata biex jaħdmu ma'.
Tista 'wkoll tuża SQL li jaħżen data,
li, għal darb'oħra, huwa sbieħ imma tip ta 'fuq in-naħa aktar kumplikata biex jaħdmu ma',
iżda IOS jappoġġja wkoll dawn l-affarijiet verament jibred imsejħa listi ta 'proprjetà,
u lista proprjetà hija biss fajl li tirrappreżenta pari valur ewlenin.
Inti tiddefinixxi lista ta 'ċwievet, u inti tgħidli dan ewlenin se tkun firxa.
Din iċ-ċavetta se tkun string, u bażikament xi ħaġa li tista 'tagħmel
fil JSON inti tista 'tagħmel ġewwa ta' lista proprjetà,
u għalhekk dan verament nicely jippermetti li taħdem ma 'xi data.
Per eżempju, I jkollhom din Teams.plist li I maħluqa.
I ħolqot fajl plist ġodda, u nista 'drill stabbiliti.
Dan huwa dizzjunarju, dan huwa dizzjunarju, dawn huma kordi,
u għalhekk din hija rappreżentazzjoni grafika sbieħ ta 'dokument JSON
jew biss sett ta 'pari valur ewlenin,
u għalhekk dan huwa d-data li jien ser tkun ħidma mal ġewwa tal app tiegħi.
>> Ejja first come hawn fuq. Għandna fajls ħafna aktar issa.
Imma ejja min jiġi hawn fuq għall-storyboard.
Il-storyboard hawn 'jekk I jistgħu zoom out-
nistgħu issa tara li dan huwa l-fluss ta 'app tiegħi.
Jien 1 ser tibda fuq dan l-iskrin.
Jien ser drill stabbiliti għal dan l-iskrin,
u jien ser drill stabbiliti għal dan l-iskrin, u nistgħu naraw hawn li jekk I tip ta '
jiċċaqalqu waħda minn dawn madwar għandna dawn vleġeġ li jmorru minn hawn hawn,
u l-mod I jiddefinixxu dak vleġġa kienet jekk I zoom ftit,
u jekk nasal fuq din kontrollur fehma,
u hawnhekk ċellola, u nixtieq ngħid li meta inti vit ċellola
Nixtieq li tiżżerżaq fuq għal ieħor iskrin.
I tista 'sempliċement iżommu l-kontroll,
iscroll fuq ftit, iżommu r-kontroll, drag din iċ-ċellula fuq u itlaq.
>> U minn hawn ngħidu x'inhu l-tranżizzjoni li inti tixtieq li tuża?
Do inti tixtieq li tuża dik ħaġa slide li sejjaħ push?
Tixtieq li tiżżerżaq sa mill-qiegħ?
Li sejjaħ modali.
U ladarba I ikklikkja waħda minn dawn, huwa se tiġbed dan vleġġa għalija,
u dan ifisser li stajt attwalment ttrattati x'jiġri meta I-istampa din il-buttuna grafikament.
I ma jiktbu kwalunkwe kodiċi li attwalment tiżżerżaq minn skrin għall-wieħed li jmiss.
I definit din viżwalment ġewwa tal bennej Interface.
Jekk I ikklikkja fuq din il-vleġġa, nistgħu naraw li I taw dan ħaġa isem.
I sejħitilha showDivisions, u dan huwa hekk li nista jafu
dak transizzjoni li ser ikun hemm, u aħna ser tara għaliex fi ftit sec.
Li kif stajt fili up-iskrins differenti fil app tiegħi.
Jekk dan kien buttuna, per eżempju, minflok ħsieb mejda,
I tista 'tikkontrolla ikklikkja fuq il-buttuna, drag fuq l-iskrin li jmiss,
u li kif nista 'nagħmlu dan il-mod ta' navigazzjoni.
>> Really malajr, jekk aħna jidħlu fis-MasterViewController,
għal darb'oħra, aħna qed tmur biex jiddefinixxu sempliċiment lista ta 'affarijiet
li se jintwerew fil-fehma tabella.
Hawnhekk jien tgħid nixtieq li tieħu dan il-fajl plist,
u nixtieq li inti tagħbija up fis dizzjunarju,
u ladarba inti għandek li dizzjunarju, jien ser tirrispondi dawn id-domandi l-istess mill-ġdid.
Hawnhekk huwa n-numru ta 'taqsimiet.
Waħda, hemm waħda ringiela għal kull kampjonat, u t-test ta 'kull ċellula
għandu jkun jew l-ewwel waħda, l-kampjonat ewwel, l-kampjonat 2, u l-bqija.
Fl-aħħarnett, jien ser jużaw dan il-metodu li aħna biss raw imsejħa prepareForSegue,
u dan huwa l-metodu li għaddej biex jiġu sparati meta I ikklikkja
fuq waħda minn dawk ringieli u għalhekk l-attivazzjoni din it-tranżizzjoni
li jiena stabbilit ma 'l-vleġeġ.
Dan huwa qal li I jista 'jkollhom multipli
relazzjonijiet minn skrin għall-ieħor.
Jekk ikolli 2 buttuni u kull buttuna tieħdok għal screen differenti
Jien ser jkollhom 2 segues, 1 għal kull buttuna.
Iżda dan prepareForSegue huwa, għal darb'oħra, ser jerġgħu jintużaw
għal kull wieħed mill-relazzjonijiet differenti, b'tali mod li jfisser li għandi bżonn mod
ta 'identifikazzjoni jekk inti agħfas il-buttuna ewwel jew inti agħfas il-buttuna tat-tieni.
>> Ftakar meta I taw li segue-isem, dan showDivisions,
li kif I issa jkunu jafu li dan huwa l-segue li ġie attivat.
All I trid tagħmel hu li nixtieq ngħid
Irrid li ċifra barra dak I biss hit,
u hekk li tikseb li, nista 'ngħid I jridu li l-indexPath għar-ringiela magħżula,
tiftakar il-indexPath biss jgħid fejn I biss għafast,
u mbagħad Irrid ngħid li nixtieq biex insemmu fejn jien ser.
Dan destinationViewController, li l-proprjetà tal-segue.
Dik hija l-iskrin jien ser,
so I jafu li l-iskrin jien ser jissejjaħ DivisionsViewController
minħabba I maħluqa dik il-klassi,
u hekk issa jekk jien ngħid d.divisions
Jien issa iffissar ta 'proprjetà tal-kontrollur fehma jien waslet biex tmur.
Dan huwa kif jien tintbagħat data minn skrin għall-ieħor iskrin.
>> Just tħares lejn dan DivisionsViewController
tista 'tara hawn dak fil-fajl h.
hemm li diviżjonijiet tal-proprjetà, u dan huwa dak li jien bażikament populating,
b'tali mod li l-mod kif naf li jien li juri l-diviżjonijiet li jikkorrispondu għal
il-kampjonat li I għafast, u għal darb'oħra,
l-opinjoni tabella attwali jistenna pjuttost l-istess, biss twieġeb dawk
3 mistoqsijiet sempliċi kif ukoll jidentifikaw
x'jiġri meta inti tmur għall-iskrin li jmiss.
Just ftit affarijiet oħra hawn.
Tinnota fil-quċċata hawnhekk li minflok qal # Jinkludu
Jien issa tgħid # jimporta.
Dan huwa biss ħaġa Objettiv-C.
L-importazzjoni hija bażikament verżjoni nicer ta jinkludu,
u per eżempju, għandna bżonn inkunu nafu liema din il-klassi hi,
so I ma tistax biss jgħidu DivisionsViewController.
Jekk aħna ma hashtag ġewwa standardio.c tal-fajl tagħna c.
l-kumpilatur ma kellhom ebda idea dak printf kien.
Bl-istess mod, jekk I ma jimportaw l-DivisionsViewController
l-kumpilatur verament għandha l-ebda idea x'inhi DivisionsViewController hu.
Just kun żgur li ġewwa tal-fajls tiegħek m differenti. Inti tagħmel ċert li l-importazzjoni
il-fajls h korrispondenti. hekk li l-kumpilatur jaf x'inhu għaddej.
>> Fl-aħħarnett, liema Apple finalment ma huwa juri xi data bl-użu ħsieb web,
u għalhekk ħsieb web huwa oġġett fejn inti tista ssodata
web browser ftit ġewwa ta 'app tiegħek.
Kull ma trid tagħmel hu li jipprovdu URL għall-web browser tiegħek,
so I tixtieq tmur mlb.mlb.com,
u dan huwa kif nista 'aċċess għall-home page għal kull tim,
u hekk billi tgħaddi f'dan URL
l-opinjoni tal-web tista display dan għalija, u jien jistgħu jibbrawżjaw madwar,
u simulatur huwa użu minn dik wieħed.
Issa dan ġew minn plist tiegħi.
Jekk I ikklikkja dan dan ukoll ġie minn plist tiegħi, u dan jiżżerżqu ġiet trattata
billi tiddefinixxi dawk l-segues.
I ikklikkja dan u wieħed aktar,
u issa hawnhekk hija UIWebView tiegħi, hekk biss bħal dik
hawn l-websajt għall-URL li jien biss integrati,
u jien ma jkollhom biex jimmaniġġaw xejn crazy.
Dan huwa kif juru web page.
Affarijiet bħal din il-buttuna back hawnhekk huma wkoll mogħtija lili
totalment b'xejn għaliex stajt definiti dawn ir-relazzjonijiet permezz segues.
>> Kwalunkwe mistoqsijiet? Yeah.
[Student] Mela meta tuża alloc, int qatt ma jkollhom xejn b'xejn?
Eżattament, meta inti sejħa alloc u Iniz inti ma għandekx biex ħielsa minnha.
IOS se jimmaniġġjaw kollha ta 'dik għalik.
Huwa wunderbare, u int ma jiksru xi regoli. Yeah.
[Student] Jekk ġejt biex tinkludi timijiet aktar li jistgħu jaqblu fuq l-iskrin,
kien awtomatikament jkollhom għażla scroll, jew li xi ħaġa li għandek bżonn li jiżdiedu?
Eżattament, jekk kelli timijiet aktar, per eżempju, ikun awtomatikament jimmaniġġaw
il scrolling għalija, u l-preokkupazzjonijiet tal-prestazzjoni
it-tabella enormi huma wkoll trattati totalment għalija.
>> Mistoqsijiet oħra?
Kollha ta 'dan il-kodiċi se jiġu stazzjonati.
Aħna tip ta glossed fuq xi ftit tad-dettalji aktar minuri,
imma affarijiet simili jiġu stabbiliti xi proprjetajiet għall-opinjoni tal-web
huma biss affarijiet li tista 'tikseb mill browsing-dokumentazzjoni Apple,
li huwa tassew, tassew nicely stabbiliti.
Huma għandhom ħafna ta 'apps kampjun u eżempju użanzi
ta 'APIs differenti, hekk definittivament jaqraw b'attenzjoni dawk jekk tista'.
Just xi links utli inti tista 'tixtieq li tagħti ħarsa lejn.
Dawn huma xi gwidi dokumentazzjoni handy.
Il-URLs huma enormi, tant li qed jitqassar.
Dan ewwel waħda hija l-librerija sħiħa ta 'dokumentazzjoni.
Hemm bars tiftix ftit, hekk jekk inti tibda buttuna ittajpjar
se jibda jagħtik l-informazzjoni kollha dwar l-affarijiet li tista 'tagħmel ma' buttuna.
Stajt inklużi wkoll il-Mejda View Programmazzjoni Gwida.
Hija mankijiet fehmiet tal-mejda fid-dettall ħafna aktar,
kif tagħmel affarijiet simili dinamikament żid ċelloli jew ċelloli jeditjaw jew tneħħihom.
>> Hemm lottijiet ta 'apps kampjun minn Apple li se juri kif għandek tagħmel dan,
u finalment, dan l-aħħar wieħed huwa l-Linji Gwida Interface tal-Bniedem,
u dan huwa bażikament xi diskussjoni ta 'komponenti UI,
affarijiet simili ma jagħmlux buttuna li l-4 pixels minn 4 pixels.
Li l-idea ħażina, u affarijiet oħra li Apple trid inti tagħmel
biex jinkoraġġixxu d-disinn tajjeb.
>> Kwalunkwe mistoqsijiet aħħar qabel we finish up?
Kull dritt, definittivament tħossok liberu li we're-ser ikollhom tikketti speċjali fuq Iddiskuti.
Aħna ser ikollhom IOS waħda, hekk definittivament tħossok liberu li tutilizza din.
Jekk inti tixtieq taħdem mal-klassi tiegħek fuq proġetti
jew għajnuna figura xi Jittieħed IOS każwali
tħossok liberu li email me, u definittivament jaf l-online-kodiċi minħabba li
biss fl-interess ta 'żmien aħna tip ta' glossed fuq l-aktar
ifjen dettalji qamħa medja ta 'affarijiet.
Imma jekk le, allura Xorti tajba fuq proġetti IOS tiegħek, u nispera li għandna
influss kbir ta 'apps fil-Aħżen App.
[CS50.TV]