>> RHED chi: Byenveni nan wè CS50 seminè -
Entwodiksyon nan iOS.
Mèsi poutèt ou tout pou vini yo.
Mwen espere ke w ap menm jan eksite jan mwen menm mwen sou iOS.
Ane pase a, mwen te pran CS50 kòm yon sophomore, ak mwen fondamantalman aprann iOS pou m '
final pwojè.
Apre sa, li te bèl -
byen, li pa t 'fasil, men gen anpil nan tutoryèl sipò sou entènèt.
Apre sa, mwen vrèman espere ke ak sa-a seminè-a, mwen pral ba ou nèg yon tèt
kòmanse sou yo devlopman
>> Se konsa, an tèm de iOS devlopman, gen de bagay prensipal nou
vle kouvri jodi a.
Premyèman, lang nan -
lang nan ki pral yo dwe nan Objektif-C. Nou pral aktyèlman tande
yon bagay ki reyèlman enteresan.
Se konsa, ou ka rantre nan tout Apple la kominote nan devlopè yo ak bati kèk
apps reyèlman pè.
>> Epitou, iOS 7 se bèl, èspere ke, nan kèk nan ou.
Men, li la kontwovèsyal, mwen konnen.
Apre sa, sitou, ki sa mwen vle fè se gid ou atravè Objektif-C, epi tou li
Xcode, ki se entegre nan devlopman anviwònman ke ou pral
ap travay nan pou iOS.
>> Se konsa, jis yon mo sou Objektif-C. Fondamantalman, li nan menm bagay la tou egzak kòm C,
Men, se avèk yon anpil nan lòt bagay.
Se konsa, plis entèdi, li la aktyèlman yon super-mete nan C. Se konsa, anyen ke ou
kapab fè nan C kounye a, ki se fondamantalman renmen pset 0 jiska 6, ou
kapab fè nan Objektif-C.
>> Se konsa, pa santi yo pè sou sa a nouvo lang ki w ap ale nan aprann.
Ou te deja kouvri yon anpil nan li, paske ou te tout fè l 'C sa a sot pase yo
semès, eksepte kounye a ou ap ale gen yon anpil plis travay ak.
Apre sa, mwen jis ale nan mennen ou nan yon koup la egzanp nan mete aksan sou kèk
nan diferans ki genyen kle ke mwen te jwenn yo te lè vrèman enpòtan mwen te aprann
Objektif-C dènye ane yo.
>> Oke aktyèlman, se konsa, pwen nan lòt se, Objektif-C se, evidamman,
objeksyon-oryante.
Epitou, n ap diskite sou yon ti kras sou sa ki sa vle di pita.
Fondamantalman, li a tankou kijan ou te travay ak strukt nan sa a pset sot pase yo, ak
nœuds ak menm jan an lòt bagay sa yo tankou sa a.
Eksepte, nan Objektif-C, tout bagay se yon objè, ak w ap ale nan dwe
pase nan pwent nan objè olye ke valè yo tèt yo.
Se konsa, li nan jis yon bagay enpòtan kenbe nan tèt ou.
>> Se konsa, poukisa pa nou kòmanse ak yon kèk diferans ki genyen nan sentaks ant C ak
Objektif-C?
Mwen vle mete aksan sou # a genyen ladan yo, ou konnen, estanda io.h nan C ak C + +, ak
vèsyon an Objektif-C de sa, ki se # enpòte, ak Lè sa a, kèk sòt de
dosye header.
Nan ka sa a, li ta UIKit, ou konnen, koupe UIKit.h.
Li ta ka tou, ou konnen, MKMapview ou koupe MKMapview.h si ou vle
fè, tankou, yon kat jeyografik andedan nan app ou.
Bagay sa yo menm jan tankou sa.
>> Se konsa, bagay la enpòtan an se genyen ladan yo gen kounye a chanje a enpòte.
Men, lide a toujou rete.
W ap ale nan dwe enpòte kèk sòt nan dosye header nan pwogram ou an.
>> Mwen vle tou nan mete aksan sou diferans ki genyen ant printf ak NSLog.
Men tou, kòm nou te di anvan, Objektif-C se yon strik super-seri
C, ki vle di ke printf egziste nan Objektif-C, tou.
Men, pifò moun pa sèvi ak sa a.
Pifò moun ki itilize sa a NSLog paske li ba ou yon koupon pou tan, epi nou pral wè
li nan aksyon apre sa.
Men, li la jeneralman yon pi plis itil fason yo enprime soti varyab.
>> Apre sa, mwen vle tou mete aksan sou ki NSLog pran nan jis menm bagay la tou
valè kontneur kòm printf fè -
Se konsa,% d se pou yon Int, % F se pou yon flote.
Sepandan, mwen vle mete aksan sou yon sèl sa a trè dènye -
NSLog% nan siy -
ki se yon kontneur pou yon objè.
Apre sa, jan mwen te di byen bonè, kontra Objektif-C bèl anpil sitou nan objè,
yo ak pou sa a ap vini nan itilize lè ou vle enprime soti, petèt, petèt yon
NSArray, oswa NSDictionary, oswa yon NSString.
>> Se konsa, tou, remake ke, nan NSLog nou deklarasyon, nou gen yon nan siy nan devan
nan sitasyon pi ba la -
se sa ki siyifi ke strings, kounye a, nan Objektif-C se objè yo.
Yo se pa gen okenn ankò zetwal tou senpleman Char.
Yo ap objè epi yo trete kòm sa yo.
>> Se konsa, li vrèman enpòtan ke lè ou itilize NSLog li pran nan yon NS
fisèl, ki vle di ke ou pral gen genyen ladan yo yon nan nan devan ou
giymè.
Ak Se poutèt sa ou wè, isit la, nan tout fonksyon mwen rele nan zòrèy sa a NSLog, mwen
gen yon nan la devan quotes yo, menm menm si% d la ak f a nan% se
tout menm bagay la soti nan C.
>> Nenpòt kesyon byen lwen tèlman?
M ap eseye ale nan sa a vit konsa ke nou ka gen plis tan nan travay
ak Xcode ak Objektif-C, Se konsa, ke ou nèg ka jwenn plis
abitye ak li.
>> Apre sa, mwen vle mete aksan sou yon bagay concept enpòtan.
Se konsa, nan C, pi bagay sa yo yo fonksyon.
Nou fè yon apèl fonksyon.
Nou deklare fonksyon fason sa a, ak retounen nan tape premye, Lè sa a, nan
Non fonksyon, parantèz, ak Lè sa a, tou sa agiman ak ki kalite
agiman sa yo nou vle pase pous
Apre sa, Objektif-C, paske tout bagay se yon bagay oswa yon klas -
Se konsa, klas-la ak objè yo se de tèm ki se sitou sinonim youn ak lòt,
pou m 'ka sèvi ak yo interchangeable nan tout seminè a.
>> Men,, ou ap wè ke nou gen metòd nan Objektif-C olye ke fonksyon.
Ak metòd apatni a objè yo.
Se konsa, menm jan, petèt pran pou egzanp, ne -
kalite nou an [fèbl]
ne soti nan pset 6 oswa 5 -
nou gen pawòl Bondye a, pwopriyete, oswa pwochen konsèy la ne.
Metòd yo se tou senpleman fonksyon andedan nan kèk sòt de estrikti.
>> Se konsa, nan ka sa a, estrikti a ta dwe objè a, ak Lè sa a, metòd la se
yon bagay ki fè pati yon objè.
Lè sa a se kijan ou ta deklare, sòt de, yon metòd.
Ou ta kòmanse avèk, ankò, retounen nan kalite - se konsa, mwen te eseye koulè
kòd mo sa yo kle isit la pou ke ou nèg ka wè, omwen, fòma a
resanblans ant fonksyon deklarasyon ak deklarasyon metòd.
Se konsa, ou kòmanse ak, ou konnen, yon retou kalite - nan ka sa a, li nan yon etalaj, oswa
yon NSArray konsèy -
ak Lè sa a, ou gen metòd sa a.
Lè sa a,, sa ki nan enteresan isit la se ke olye pou yo gen parantèz, nou
gen kolon sa yo.
Lè sa a,, la devan agiman nou yo, nou mete, ankò, nan parantèz kalite a
nan agiman nou an.
>> Se konsa, kounye a mwen ap eseye fè nan konparezon ant, ou konnen, n ak
nimewo, paske yo ap tou de tankou antye.
Lè sa a,, youn nan lòt se yon kalite NSUInteger.
Lè sa a,, ak Objektif-C, lè ou vle gen plizyè agiman an
kloz ou metòd, ou menm, sòt de, separe yo soti kalite tankou sa a -
Mwen se pa byen asire ki jan yo dekri l ', men sa a se yon bon ekzanp de ki jan ou
ka gen plizyè agiman an la.
>> Ou te kapab, nan kou, jis totalman inyore kolon an andArray NSArray
etalaj si ou te jis yon metòd ki pran nan yon sèl agiman.
Wi, kesyon.
>> ODYANS: Èske tou de NSUInteger ak NSArray agiman ki ka pran nan
nan NSArray a?
>> RHED chi: Wi.
Se konsa, kite m 'esplike.
Se konsa, repons lan se wi.
Se konsa, kesyon an te gen NSUInteger ak NSArray * kalite agiman yo,
e ke sa a kòrèk.
Se konsa, ou toujou vle presize ki ki kalite agiman-w la.
Ak isit la, mwen ap eseye entwodui ou nan kèk nan sentaks la ak vocab nan
Objektif-C, Se konsa, sa yo se kalite aktyèl ki ou pral fè fas ak.
>> Apre sa, kòm ou ap remake, ranje yo pa, sòt de,
bracket bagay sa yo ki senp.
Yo ap objè yo.
Malgre ke, si nou ale nan pwochen an glise, nou ka wè ke nou kapab
difisil-Kòd yon NSArray nan Objektif-C ak tou senpleman yon senbòl nan la devan
parantèz yo.
Mwen pa se, aktyèlman, byen asire w ke si wi ou non Mwen syntactically difisil-kode yon etalaj
kòrèkteman pou vèsyon an C, men sa a sipoze nan yon etalaj C.
>> Se konsa, sa a se kijan ou ta, ou konnen, petèt itilize fonksyon yo oswa nan
metòd ke nou te kreye pi bonè.
Dwa?
Se konsa, sa a se kote nou deklare nou fonksyon ak metòd nou an.
Epi, koulye a nou vle sèvi ak yo nan pwogram nou an, e sa se
ki jan nou ta fè li.
Se konsa, nan C, ou ta gen, ou konnen, petèt, yon b bouleen, epi ou mete li nan
egal a fonksyon an, epi Lè sa a, ou pase nan agiman yo.
>> Nan Objektif-C, li nan bèl anpil menm bagay la.
Ou gen NSArray * my_array, epi li ale nan egal a - kounye a, se sèlman nan
diferans isit la se bagay sa a objè, ki mwen te make nan jòn, ak
jan ou ka wè, nan C, gen nan pa gen okenn lòt mo jòn.
Epi li paske metòd fè pati ak yon objè sèten.
Se konsa, Se poutèt sa mwen bezwen gen yon objè sa a, sòt de, rele metòd sa a sou
nimewo a zewo, ak Lè sa a, NSArray la A, B, C, D.
Nenpòt kesyon sou sa?
>> Nou pwal wè konsèp sa yo nan aksyon trè byento lè nou ale nan yon Demo.
OK.
Koulye a, mwen vle pale yon ti kras yon ti tan sou Xcode 5, ki se nan
entegre anviwònman devlopman ki ou pral travay avèk yo.
Mwen konnen yon anpil nan nou la a, oswa kèk moun pami nou, pa gen Macs, ki se yon pwoblèm
paske Xcode a pa disponib pou Windows ak PC.
pa mande m 'poukisa, men pwobableman -
yeah, rèstriktirasyon.
Kèlkeswa sa.
Men, de tout fason, se konsa, mwen prezante eskiz si kèk nan ou gen download kèk sòt de
machin vityèl pou Mac nan lòd yo kouri Xcode 5.
Men, li se yon debouya bèl lojisyèl yo sèvi ak.
>> Se konsa, anvan nou plonje nan nenpòt ki sòt nan Demo, mwen jis vle montre w yon
foto nan sa ki Xcode sanble nan ou fenèt, ak Lè sa a, tou pale sou
sa espas sa a antye se.
Se konsa, li kalite tankou aprann kouman sèvi ak Microsoft Word, eksepte ou vle
jwenn familyarize ak nan tout bagay diferan ki
yo ale sou isit la.
>> Se konsa, premye, mwen vle pwen ou ba zouti a nan tèt la.
Ou pral wè sa, nan tèt la, ou pral gen non an ranpli -
oswa, aktyèlman, non pwojè ou ak Lè sa a non dosye ou.
Pran nòt nan jwe nan ak sispann bouton sa yo.
Moun sa yo ki se yo menm ki ke ou pral lè l sèvi avèk nan kouri app ou sou la
similatè -
similatè nan iOS.
Sa a otomatikman vini ak Xcode 5, pou w pa gen enkyete sou
Téléchargez kèk sòt de similatè.
Ou jis peze jwèt ak Lè sa a, li kouri app ou.
Apre sa, ou ka jwe otou ak ou, epi ou pral wè ki jan li fonksyone pita.
>> Lè sa a,, nan sant la, nan kou, se kote tout bèl Kòd ou a
pwal ale.
Lè sa a,, ki sou bò gòch-men, ou pral gen sa a, sòt de, katab -
Navigasyon -
ak Lè sa a, ou ap wè tou ke, ansanm ak katab icon a, gen yon
pakèt moun sou lòt ikon gen ki pral itil pita.
>> Lè sa a,, sou bò dwat la se yon sèvis piblik zòn kote ou ka travay avèk
kèk nan objè yo ak presize, ou konnen, ki sa koulè a ​​ta dwe, ki sa ki
font nan tèks yo ta dwe, et setra.
Malgre ke, tout sa w'ap fè nan zòn nan kouran, dlo, ou kapab
fè nan Kòd kòm byen.
Se konsa, mwen pral ale atravè tout de egzanp lè l sèvi avèk, tou senpleman, pa gen okenn Kòd nan
tout - oswa kòd trè minim -
vèsè tout kòd, jis pou ke ou nèg konnen ki sa ou ka epi yo pa ka fè nan
Xcode ak Objektif-C.
>> Lè sa a,, finalman, desann nan pati anba a, ou gen zòn nan debug.
Se konsa, ou pa gen okenn pi long nan kouri gdb, et setra, sou pwogram ou an.
Li otomatikman fè li pou ou.
Apre sa, ou ka tou ekri an lèt detache bagay nan zòn sa a.
Se konsa, aktyèlman, apre sa, nou pral ale nan mario.c, si ou nèg toujou sonje
ke, nan Xcode.
Se konsa, ki ta dwe plezi.
>> Lè sa a,, jis pote l 'tounen nan Objektif-C, mwen vle mete aksan sou sa ki
ou kapab fè avèk si deklarasyon.
Se konsa, ou konnen, paske Objektif-C se yon suransanbl nan C, tout sa ou fè se,
literalman, menm jan ak C. Ou jis gen diferans ti tay.
Se konsa, ou ap remake fòm nan pou yon si deklarasyon ki se toujou menm bagay la tou - ou gen
si, ak Lè sa a, ou gen parantèz ak yon kondisyon andedan nan, li ak Lè sa a,
aparèy òtopedik Curly pou tou sa ou vle fè andedan nan la.
>> Sepandan, mwen te vle mete glise sa a leve isit la, tou senpleman ilistre sa,
paske nou ap fè fas ak objè kounye a, nou pral gen yo sèvi ak bagay sa yo
rele tankou, ki egal a fisèl, ki se, azar, yon metòd pou yon
fisèl oswa yon objè NSString.
Se konsa, mo, nan ka sa a, se yon NSString objeksyon, epi li gen yon metòd ki rele se
egal a fisèl, ak Lè sa a, nou ap pase nan yon fisèl difisil-kode yo wè
si wi ou non moun yo egal youn ak lòt.
>> Nenpòt kesyon byen lwen tèlman?
OK.
Epi, mwen vle ale sou yon pou deklarasyon tou.
>> Se konsa, pou egzanp, si nou te vle bouk sou longè a nan yon fil nan C, sa a
yo ta dwe abitye ba ou.
, Epi, nan Objektif-C, mwen vle yo mete aksan sou sa a, sòt de,
metòd yo rele konte.
Oke, aktyèlman, kite m ' jis pran ki tounen.
Konte se yon metòd nan etalaj.
Sepandan, li nan plis espesyalman yon pwopriyete nan etalaj, ki se poukisa ou
ka itilize notasyon an dot.
Men, mwen pa vle jwenn nan twòp nan bagay sa a konseptyèl ekspresyon, mwen jis vle
montre w kouman bagay yo ta pwal gade tankou nan Objektif-C kont C.
>> Epi tou, mwen vle pwen ke menm si mwen te lè l sèvi avèk NSUInteger
la devan tout mwen an m 'ki nan Objektif-C, ou ka tou itilize Int, paske Int se
totalman valab nan Objektif-C, tou.
Wi?
>> ODYANS li: Eske se jis stylistic, oswa se -
>> RHED chi: Yeah.
Se konsa, jan ou ap wè -
Se konsa, kesyon an te se ke jis yon pwoblèm stylistic.
Kòm ou pral wè, mwen gen yon, sòt de, zetwal asterisk bagay desann nan pati anba a, ak
ki genyen lyen pran ou nan yon Stack Depatman fòme, kote yon moun eksplike
diferans ki genyen ant yon Int nan NSInteger ak yon NSUInteger.
Se konsa, ou ka li sou sa pita.
Glisad sa yo pral, nan kou, disponib nan ou.
>> Ann wè.
OK, pè.
Se konsa, sa a se tou te enkli nan glise nan paske mwen te panse sa a te yon gwo
sit wèb ki entwodui ou Objektif-C sentaks.
Se konsa, aktyèlman, poukisa pa nou deplase nan Chrome epi tcheke deyò sit entènèt sa a?
>> Dwat.
Se konsa, sa mwen vle montre w mesye isit la se imaj sa a.
Se konsa, sa a se, sòt de, pral fè sa ki w ap ale nan wè andedan nan nenpòt ki
Dosye Xcode.
Aktyèlman, poukisa yo pa nou jis pran yon moman sa a, sòt de, pran sa a pous
>> Se konsa, liv sa a -
sa a, se objè a ki nou ap fè fas ak.
Lè sa a,, li evidamman pral fè eritye nan men kèk lòt objè, men
ou pa gen enkyete sou sa.
Lè sa a,, li, petèt, gen kèk varyab manm yo.
>> Sa ki pi enpòtan mwen vle montre w se metòd yo egzanp, isit la.
Se konsa, metòd egzanp yo deziye pa siy mwens sa a.
Lè sa a,, menm jan ou ap remake, nou deja kòmanse wè paradigm nan
pou metòd deklarasyon, dwa?
Kalite a retounen, non an metòd,, ak Lè sa a, ki kalite agiman an, ak
Lè sa a, non an nan agiman an.
Apre sa, siy mwens sa a vle di ke li nan yon metòd egzanp, ki vle di ke
metòd sa yo yo, se sèlman disponib nan objè ki te enstansye.
>> Yo kontras ki, metòd ak yon plis siyen nan devan nan yo se klas
metòd, ki vle di ke ou ka rele metòd sa yo, menm si ou pa gen
yon objè ki te kreye ankò.
Se konsa, pou yon egzanp klè, NSString se yon klas la.
Apre sa, ou ka rele, pou egzanp, metòd klas sou NSString -
aktyèl la, tankou, pawòl Bondye NSString.
>> Sepandan, yo nan lòd yo sèvi ak sa yo metòd, ou aktyèlman
bezwen yo kreye yon kòd.
Pou egzanp, NSString fisèl zetwal egal nan sitasyon pi ba mak, bonjou nan lemonn.
Lè sa a,, ou ka itilize metòd sa yo -
metòd egzanp -
sou sa fil mond hello.
Se konsa, sa a, se diferans ki genyen ant metòd egzanp ak metòd klas la.
>> Epi, nou jis kouvri pati sa a.
Pwopriyete yo se yon lòt bagay ki andedan nan objè, fondamantalman.
Epi ou deklare yo ak nan mo kle pwopriyete. la
Ou gen opsyon sa yo, isit la, ke mwen pral eksplike apre lè
nou ale nan yon Demo.
Wi?
Hi.
>> ODYANS: Èske ou ta kapab rale nan, tanpri?
>> RHED chi: O wi.
M regrèt.
>> ODYANS: Mèsi poutèt ou.
>> RHED chi: Sa ta dwe gen yon anpil pi byen.
>> ODYANS: Yeah.
Mèsi poutèt ou.
>> RHED chi: Yeah, tanpri raple m 'si Mwen bliye rale nan oswa rale soti.
Se konsa, sa a se tout mwen te vle montre w pou -
ola, ki nan yon anpil -
pou sit entènèt sa a.
Se konsa, kite a tounen nan glisad nou an.
>> Aktyèlman, kounye a kite a pran yon ti moman plonje nan yon Demo.
Se konsa, nou pral kòmanse avèk yon nouvo pwojè Xcode.
Se konsa, si ou pral louvri moute Xcode sou tout machin ou, li ta dwe pran w kèk
paj kote li di, tankou, swa louvri moute yon pwojè ki deja egziste oswa yon nouvo
pwojè, epi ou ta dwe klike sou yon nouvo pwojè.
Lè sa a,, li ta dwe pran ou nan ekran sa a.
Wi?
>> ODYANS: Si nou pa gen yon Mac, nou jis kalite fredi?
>> RHED chi: Oswa gade sou ak yon moun, yeah.
Yeah.
Ou ka fredi, tou.
OK.
>> Se konsa, sa nou pral fè premye, kounye a, se, aktyèlman, nou pwal fè yon
yon sèl gade aplikasyon an.
Se konsa, si ou ap remake, sa ki nan gwo sou Xcode ak Apple sipò pou
devlopè se ke ou gen yon anpil nan modèl yo travay avèk deja.
Ou te kapab, pou egzanp, fè yon aplikasyon mèt-detay.
Ou kapab fè yon jwèt -
ak aktyèlman, mwen pa pral antre nan jwèt, paske jwèt yo se yon istwa ki diferan
pou iOS devlopman.
Apre sa, yo ap kalite separe, Se konsa, mwen pa pral antre nan sa.
>> Lè sa a, ou te ki baze sou paj aplikasyon yo.
Ou gen yon aplikasyon tab -
Se konsa, renmen, pou egzanp, Bank of America pwobableman gen, tankou, yon app ongle.
Li nan sa yo kote ou gen bouton sa yo nan pati anba a.
Lè sa a,, ou gen yon Twous jwèt luten.
>> Oswa ou ka travay nan grate, ki se sa nou pral fè pi ta.
Men, se pou a, an premye, kòmanse ak yon View aplikasyon sèl.
Lè sa a, li pral mande pou yon non pwodwi, epi nou ka jis fè egzamen an.
Òganizasyon non -
se konsa, òganizasyon non, konpayi idantifyan -
sa yo se enpòtan si w ap ale yo mete app ou sou magazen an app.
Lòt pase sa, Kòd ou a pral nan kouri absoliman amann san yo pa sa a.
>> Sa a se pral yo dwe enpòtan si ou vle - se konsa, se pou chak, tankou, mete app ou
sou telefòn oswa yon bagay ou a, ak tès li soti, ou konnen, nan lavi reyèl -
sa a pral enpòtan.
Sa a gen tandans fè anjeneral dwe asosye ak kèk sòt de kont pwomotè
ak Apple.
>> Se konsa, mwen konnen, pwobableman, yon anpil nan ou pa pral gen nenpòt ki kont pwomotè.
Mwen konnen inivèsite a gen youn.
Mwen panse ke CS gen yon sèl.
Men,, ou ka voye yon imèl ba m 'epi mwen pral eseye figi ki soti pou ou.
Men, kounye a, Mwen te jis mete nan kèk bagay kontneur isit la.
>> Epi ou ka, nan kou, isit la, chwazi si ou vle li nan dwe sèlman nan
iPhone, nan iPad, oswa tou de -
inivèsèl aplikasyon an.
Se konsa, pou kounye a, se pou yo fè inivèsèl, jis yo wè tou de bò nan platfòm la.
>> Ann wè.
Se konsa, kounye a, mwen pral pou konsève pou li nan kèk sòt de katab.
pa gen pwoblèm ki kote - ou ka toujou avanse pou li pita.
Epi, koulye a, nou ap pote nan pwojè Xcode nou an.
Mwen pa ta enkyete sou tout bagay sa yo.
Mwen ta sijere pa manyen nenpòt nan sa a, sof si ou konnen ekzakteman ki sa
w ap fè.
Se konsa, tout bagay sa yo, jis inyore pou pati ki pi.
Ou pa pral bezwen manyen l, epi si ou èske ou dezòd yo kèk bagay isit la, li
vin yon ti kras difisil.
>> Se konsa, poukisa pa nou gade nan dosye yo sou la
bò gòch-men nan navigatè nou an.
Isit la, nou gen AppDelegate.h.
Nou gen AppDelegate.m Se konsa, jan ou pral avi, nou te header dosye yo, ki
fini nan dot h, e nou gen egzekisyon -
aktyèlman, kite m 'rale pous
OK.
Kite m 'rale pous
>> Dwa, se konsa ou te header dosye ak ou gen aplikasyon dosye.
Aktyèlman -
OK.
Sa a se yon ti kras etranj, Men, pote avè m '.
Lè sa a, paske nou te chwazi yon View sèl aplikasyon an, nou pral yo dwe
ap travay ak scénario.
>> Se konsa, scénario se yon bagay ki Apple te vini ak reyèlman ede
devlopè rapidman pwototip aplikasyon pou yo.
Se konsa, sa a se kote ou kapab kreye yon app san yo pa ekri yon
yon sèl liy nan kòd.
Sepandan, nan aplikasyon View Single nou an, nou, nan kou, gen yon
aplike pou wè nou an, ki se yon kontwolè vi.
Se konsa, nou gen lento a ak nan dosye aplikasyon, isit la.
>> Epi, mwen pral rale soti kounye a paske nou pral bezwen nan travay nan scénario la.
Se konsa, isit la nan vi nou yo.
Si nou, tou senpleman, kouri app a kounye a, gen nan pa anpil enteresan pral sou.
Se konsa, ou ap wè ekran blan sa a.
OK?
>> Epi, nan zòn sèvis piblik nou yo, nou ka ajoute yon pakèt moun sou bagay diferan nan li.
Se konsa, lè w ap fè fas ak ekran nan yo, gade contrôleur yo nan
objè ki ankapsulasyon, sòt de, opinyon ou.
Se konsa, yon kontwolè View toujou te yon pwopriyete rele vi.
Epi ki vi, anjeneral, gen, ou konnen, ki sa ou
vle wè sou yon ekran.
>> Se konsa, byen, kite yo jis kòmanse pa mete, petèt, petèt yon etikèt sou.
Se konsa, kite a mete yon etikèt sou sou gen -
bwa li nan mitan yo.
Se konsa, kounye a ke mwen te klike sou mete etikèt sou, mwen ka ale nan enspektè a pwopriyete
epi yo kòmanse chanje valè li yo.
Se pou yo rele l 'CS50 Couleur.
>> Ak, mwen kapab tou chanje font la.
Se konsa, olye pou yo fè sistèm, ki se default a, nou ka fè yon yon sèl koutim.
Nou ka chanje -
ou konnen, ultraleje, fè l '32.
Lè sa a,, nou ka fè bwat nou pi gran.
>> ODYANS: ou panse ou ka rale nan jis yon ti kras pi plis, petèt?
>> RHED chi: Yeah?
OK.
>> ODYANS: Jis tape l '?
>> RHED chi: Ann wè.
Fè travay sa a?
>> ODYANS: Jis pase Xcode a?
>> RHED chi: Asire w.
OK.
Pè.
>> ODYANS: etikèt la anba?
Etikèt la?
>> RHED chi: Ki sa ki nan sa?
>> ODYANS: Ki sa ki drop-desann te mete etikèt sou la anba?
>> RHED chi: Se konsa, kesyon an te, ki sa ki gout-desann te mete etikèt sou la anba?
Li ta dwe, tou senpleman, dwe anba isit la.
Mwen devine li nan yon bagay kib.
Men, anjeneral, sa a se default a -
Mwen jis pral desann isit la jouk tan mwen jwenn yon etikèt sou.
Yeah.
>> Se konsa, koulye a, nou gen mete etikèt sou nou an.
Se pou yo santre li.
Apre sa, Xcode ban nou direktiv pou Santralizasyon objè yo.
Se konsa, kounye a kite a kouri Kòd nou an ankò.
>> Gen nou ale.
Se konsa, nou gen CS50 Couleur.
Epi, koulye a, se pou yo mete yon bouton sou gen, dwa?
Paske nou vle fè sa a entèaktif.
Se konsa, kite a mete yon bouton isit la.
Epitou, n ap rele sa bouton "tiyo isit la yo ka kontinye. "Nou pral santre l ', tou
Aktyèlman, li nan deja santre.
Yeah.
>> Se konsa, kounye a nou gen yon bouton.
Men, si nou kouri sa a ankò, nou pral gen yon bèl bouton ti kras isit la.
Apre sa, mwen ka klike sou li, men li pa fè anyen, paske nou pa te fè
anyen ak bouton an ankò.
>> Se konsa, kite a kreye yon lòt vi, dwa?
Se konsa, kite a di mwen vle tiyo ki bouton ak mwen vle
ale nan yon lòt paj -
yon lòt vi.
Ki sa ki mwen pral fè se, mwen kapab kreye yon kontwolè wè, dwa?
Koulye a, mwen pral klike sou bouton mwen an, epi lè sa a, Sa ki enpòtan se, mwen pral
klike sou - oswa -
repons lan se wi, kontwòl laprès sou klavye m 'yo.
Kontwòl.
Klike sou bouton an, ak Lè sa a, trennen.
>> Se konsa, sonje yo kenbe kle a kontwòl.
Se pou nou fè sa ankò.
Se konsa, kenbe kontwòl, klike sou, ak trennen a sa ou vle fè.
OK.
>> Epi, koulye a, mwen genyen plizyè chwa isit la.
Mwen kapab swa pouse, oswa mwen kapab fè yon modal, oswa mwen kapab fè yon koutim.
Pouse se sèlman si ou gen yon Navigasyon kontwolè.
Dwa koulye a, trè premye nou wè kontwolè se pa andedan nan nenpòt ki
Navigasyon kontwolè.
Se konsa, kontwolè a navigasyon se youn nan ki ba ou bouton an tounen sou
app a iOS kote ou gen, ou konnen, ki tèt, sòt de, epè bar -
ki kote ou ka ale tounen, oswa pou pi devan, et setra.
Dwa koulye a, mwen pa gen sa.
Se konsa, Se poutèt sa mwen pa ka fè yon pouse.
>> Se konsa, mwen klike sou pouse aksidantèlman, isit la.
Apre sa, aktyèlman, se pou yo kouri kòd la, e li ta aksidan sou mwen.
Se sèlman si mwen peze bouton an menm si, se konsa -
dwat.
Se konsa, sa a se move.
>> Epi, menm jan ou ka wè, isit la, nou gen mesaj la erè.
Se konsa, "segues Pouse ka dwe itilize sèlman lè sous kontwolè se jere pa yon
egzanp nan UI Navigasyon kontwolè. " Se konsa, paske sa pa t 'andedan nan yon
Navigasyon kontwolè, Mwen pa t 'kapab fè sa.
>> Se konsa, kounye a, mwen pral tounen nan la katab, pral tounen nan scénario.
>> ODYANS: Ki sa ki nan Navigasyon la kontwolè, ankò?
>> RHED chi: Se konsa, kounye a mwen pral montre w.
Ann wè.
Se konsa, mwen pral klike sou sa a wè kontwolè, ak Lè sa a, mwen pral ale
jiska pwodwi -
aktyèlman, pa gen okenn, regrèt - editè.
Apre sa, mwen pral ale nan -
aktyèlman, mwen te klike sou li?
No
Gen nou ale.
Mwen pral ale moute nan editè, desann Afiche nan, ak Lè sa a, navigasyon
kontwolè.
>> OK.
Epi, vorkspas mwen recherche vrèman sal, Se konsa, kite a netwaye sa a leve.
Se konsa, tout bagay sa yo se scénario.
Apre sa, nan fason sa a -
OK, sispann -
Mwen ka byen vit bati yon bagay tankou sa a.
Lè sa a,, koulye a mwen ka ale tounen, ou konnen?
>> Men, sa a se kalite raz, dwa?
Se konsa,, ki sa mwen vle fè se, mwen pa vle fè, jis tou senpleman, yon View
kontwolè.
Se pou nou di mwen te vle aktyèlman fè yon View tab kontwolè, se konsa mwen ka mete nan
kèk koulè bèl, nan tab la.
>> Se konsa, kounye a ke mwen te mete nan gade tab avè m ' kontwolè, mwen bezwen konekte l 'tounen
soti nan bouton sa a nan View kontwolè.
Se konsa, mwen bezwen fè kontwòl m 'yo, klike sou, bagay trennen ankò.
Epi, koulye a mwen kapab fè pouse, paske mwen Afiche li andedan nan yon kontwolè navigasyon.
>> ODYANS: Navigasyon kontwolè jis pèmèt ou ale nan yon kote ale yon?
>> RHED chi: Wi.
Se konsa, plis teknikman, li nan yon objè ki kote -
se konsa, andedan nan Navigasyon la kontwolè objè, li
kenbe yon dosye sou yon etalaj.
Epi ki etalaj kenbe tout ki vin apre a wè contrôleur.
Se poutèt sa lè ou peze tounen, li ale tounen nan paj anvan an.
Paske kontwolè a navigasyon objè, oswa kòd la ki pran swen nan
sa a objè, gen yon etalaj ki kenbe swiv nan sa yo fè contrôleur vi, ak
ka Lè sa a, ou konnen, DQ gade nan kontwolè ak ba ou tounen nan
yon sèl anvan yo.
>> Se konsa, sa a se bagay teknik, men -
epi mwen pral montre w pita nan Kòd, si nou gen tan.
Mwen kalite kouri soti sou tan, men -
>> Se konsa, avèk gade nan tab, sa nou kapab fè se -
Li anjeneral otomatikman mete dinamik Pwototip -
nou pral fè li Selil estatik, otreman nou pral
kouri antre nan kèk pwoblèm.
>> Lè sa a,, se pou yo di mwen pral yo gen yon seksyon.
Se konsa, seksyon, se tankou -
si ou te janm wè app a mizik, lè ou gen atis, seksyon ta
gen nan la A jiska Z's -
lèt yo -
ak Lè sa a, ou konnen, moun nan ranje ta dwe non yo atis.
Se konsa, sa ki nan fre isit la, se ke mwen kapab jwenn aksè nan tout nan objè yo andedan
nan scénario mwen an nan sa a gout-desann meni, tou.
>> Se konsa, mwen pral klike sou seksyon m 'yo, e mwen vle, ou konnen, petèt senk ranje.
Lè sa a,, andedan nan chak ranje, Mwen vle mete yon etikèt sou.
Apre sa, mwen pral rele sa Blue.
Lè sa a,, mwen vle mete yon View UI, ou konnen, petèt pou li a, tankou, yon bwat ti kras.
>> Se konsa, ke mwen ka montre moun yon aperçu de koulè an.
Apre sa, mwen pral tounen nan pwopriyete a ak chanje ki koulè a, oh, mwen pa fè sa
konnen, yon sèl sa a.
>> Lè sa a,, remake tou, isit la, lè mwen gen Pwodwi pou Telefòn yo, mwen ka gen anpil bagay
Pwodwi pou Telefòn yo diferan ke ou tipikman wè.
Endikatè a revelasyon, detay a, oswa tcheke mak, oswa tou senpleman jis detay.
Se konsa, petèt nou ka fè, tankou, yon divilgasyon endikatè, pou egzanp.
>> Lè sa a,, poukisa yo pa nou pran sa yo, kopi kole yo, li mete yo nan la
pwochen ranje tab.
Se konsa, nou ka rele sa a jòn.
Apre sa, mwen ta ka gen pou yon ekstansyon pou sa a.
Se pou yo fè l 'jòn.
Apre sa, nan fason sa a, nou ka kopye kole wout nou desann.
Ki sa ki te li?
Koulè wouj violèt.
>> Se konsa, sa yo, se tout CS50 nan òdinè koulè ke ou te wè nan klas -
aktyèlman, regrèt -
oswa sou sit wèb la.
Nou swete ke ou nèg ka wè sa m ap fè isit la.
OK.
Dènye yon sèl.
>> ODYANS: Ki jan ou fè ajoute ranje a okòmansman?
>> RHED chi: Se konsa, kesyon an te, ki jan mwen te ajoute ranje a okòmansman?
Mwen te ale nan seksyon tablo sa a - oswa sepandan mwen kapab
chwazi seksyon an tab -
ak Lè sa a, isit la, mwen mete ajou nimewo a nan ranje.
>> Epi, kite m 'espere ke sa a ap travay.
OK.
Ann wè si sa a travay.
Oh, pafè, pè.
OK.
Pandan m 'te bati Demo m' yo, kèk bagay sa yo pa t 'aliyen, se konsa, mèsi pou
aplodisman la.
>> Yeah.
Se konsa, kite a wè.
Nou pral fè sa-a nèf jis fè tout bagay - oswa aktyèlman, kite yo jis
vire tout moun sa yo nan divilgasyon endikatè.
Lè sa a,, ki sa mwen vle montre nou, nou menm tou, te kouman mwen ka pran chak nan sa yo
ranje tab epi fè yo kominike -
oh.
No
>> Oh.
Epitou, mwen vle montre ou -
isit la, mwen ka mete tit la nan mwen Navigasyon kontwolè, dwa?
Se konsa, aktyèlman, ou pral avi, le pli vit ke mwen entegre sa a kontwolè wè andedan
nan kontwolè a Navigasyon, nou wè sa a ba Navigasyon nan tèt yo nan nou an
scénario reprezantasyon nan yon kontwolè vi.
Se konsa, sa a ba nou, tankou, yon vizyèl, sòt de, gid nan ekran vizib nou an.
Sa a se evidamman ale nan dwe ba a navigasyon.
>> Ak sa ki mwen vle fè byen vit, kounye a, se mete nan yon lòt -
Se konsa, sa a wè tablo kontwolè m 'te fè pa pran youn nan sa yo ak trenen li
isit la, e ke sa a sa k ap pèmèt m 'nan byen vit, reyèlman, kreye yon View tab
kontwolè.
Si nou fè sa gen tan an menm si, ou pral wè ke, pwogramasyon, li nan yon
ti kras pi plis difisil yo kreye yon tab View kontwolè, paske gen
yo se yon koup la metòd ki egzije pou ou pou w, sòt de, ekri
soti nan lòd pou gade nan tablo kontwolè ap parèt kòrèkteman.
>> Sepandan, mwen jis vle montre w, koulye a, yon egzanp sou ki kote, si m 'pran sa a,
pou egzanp -
Mwen te mete nan yon lòt kontwolè vi.
Koulye a, kite a di mwen vle kontwole Alt trè premye ble m '
ranje tab isit la.
Apre sa, mwen vle rele sa a Blue.
Lè sa a, -
kite a wè.
Mwen se nan gade nan kounye a, ak mwen ka chanje background nan ble.
>> Se konsa, avi, isit la, sa a drop-desann meni tou ba ou yon yerachi nan tout
nan bagay sa yo.
Se konsa, yon bagay enpòtan sonje, isit la, se ke tout nan bagay sa yo, isit la -
sa a kontwolè View tab, tab la vi, seksyon View tab, gade tablo
Pòtab - tout sa yo se objè, nan kòd.
Se konsa, ou konnen, yon etikèt sou dwa kounye a se anba gade nan kontni, et setra.
Se konsa, sou ak pou fè.
>> Se konsa, si nou kouri Kòd sa a, nou ta dwe wè yon bagay -
kite a wè si sa a - wi.
Se konsa, gen nou ale.
Men, si nou pa fè sa, pa youn nan sa yo fè lòt bagay travay.
Dwa?
Se konsa, sèlman yon sèl sa a travay.
Epi, pou dedomajman pou la de tan, mwen pa vle ale nan, ou konnen, mete
desann yo menm ki lòt.
Lè sa a se nan fen, sòt de, scénario -
ki sa mwen te vle montre ou pou scénario.
>> Epi, m 'fè gen yon egzanp te travay soti, aktyèlman, isit la menm.
Se konsa, sa a se scénario la ke mwen te fè deja.
Se konsa, jan ou ka wè, sa a te kontwolè Navigasyon m 'yo.
Lè sa a, mwen te gen premye gade kontwolè m 'yo, Lè sa a, mwen te gen kontwolè View tab avè m ',
ak Lè sa a, mwen te gen tout moun sa yo -
Se konsa, deja, mwen te fè yon bagay trè diferan.
Se konsa, eskize bagay sa yo.
Mwen ap pwobableman netwaye li moute pi ta anvan Mwen voye l 'yo ale nan pwodiksyon an.
>> Men, si nou kouri sa a, nou pral wè ke tout opsyon ki disponib nan yo se
disponib nan nou.
Eksepte mwen pa t 'fè orijin yo sa yo koulè.
Se konsa, bèl aplikasyon senp.
>> Koulye a, se pou yo eseye atake sa a programe.
OK.
Se konsa, yo fè sa, n ap jis ale yo kòmanse yon nouvo pwojè Xcode.
Nou pral fè l 'yon aplikasyon vid kounye a, paske nou pa vle gen nan
scénario.
Se konsa, mwen tou senpleman mete restriksyon sou tèt mwen pa sèvi ak nenpòt nan scénario a, ak yon
aplikasyon vid pa pral ban m 'yon scénario.
Sa a se jis yo anpeche tèt mwen kont fason ou kapab triche.
Ann wè.
Rete tann.
Èske mwen -
repons lan se wi.
OK.
>> Dwat.
Se konsa, isit la, nou ap kite avèk pa gen anyen lòt men kòd.
Se konsa, kite m 'deplase fenèt sa a yon ti kras sou.
Dwat.
Kòm ou ka wè isit la, dosye yo sèlman nou ap bay yo se AppDelegate.h ak dot
m, epi nou pa gen scénario ankò.
>> Se konsa, si nou kouri sa a, nou toujou ap ale nan li ale nan ekran an blan, di Bondye mèsi.
OK - ekran blan, men pa gen anyen lòt bagay.
Epi, isit la se yon pati enpòtan sa a.
Sa a se kote aksyon an k ap pase.
Nan vèsyon yo anvan yo, gen nan anjeneral pa gen okenn Kòd isit la, men nan
scénario esansyèlman bay Kòd la pou pati sa a.
Mwen pa pral antre nan detay sou ki jan.
>> Apre sa, sa nou vle fè kounye a se, nou vle yo ale nan isit la, ak espas sa a ti kras
kòmanse kreye app nou an ankò.
Se konsa, -
repons lan se wi?
>> ODYANS: Zoom?
>> RHED chi: Zoom.
Yeah, asire w.
OK.
Mwen pral tape, kidonk sa a pa ta dwe pwoblèm twòp.
OK.
>> Se konsa, premye, sonje nou te vle kreye yon kontwolè Navigasyon, dwa?
Epi tou, jan ou ka wè isit la, Xcode fè yon reyèlman bon travay pou
pwòp tèt ou-ranpli.
Se konsa, jan ou ap remake, non yo nan tout bagay se yon anpil pi lontan pase
nòmal, men Xcode plen l 'nan pou ou.
Se konsa, mwen ka jis peze antre.
>> Se konsa, mwen vle kreye yon Navigasyon UI kontwolè konsèy, e mwen ka rele li
navigationController.
Koulye a,, ki sa mwen fè kounye a?
Apre siy egal sa a, mwen bezwen, an premye, kreye li andedan nan memwa.
Se konsa, mwen pral fè NavigationController alok -
se konsa, sa a se menm jan ak malok, ke ou nèg yo itilize nan C -
ak Lè sa a, mwen pral ini li.
>> Se konsa, li vrèman enpòtan ke nenpòt ki objè ke ou kreye, ou vle
alok ak ini li.
Sa k ap pase yo kreye li epi li instantialize li anndan nan memwa, ak
kounye a ou ka sèvi ak li.
Tout dwa?
Si ou pa fè sa, objè ou a fè pa egziste, epi ou pral kouri antre nan yon pakèt
nan pwoblèm.
>> Lè sa a,, mwen vle kreye yon kontwolè wè, dwa?
Se konsa, mwen vle kreye yon UIViewController etwal -
se konsa, tout bagay se yon konsèy nan Objektif-C, ak mwen pral fè
yon bagay ki sanble, isit la -
alok, ini.
OK.
>> Lè sa a, sa m ap pral fè se, mwen se ale nan - se konsa, sonje lè nou te fè sa
Afiche a nan navigasyon kontwolè?
Sa a se ki jan ou fè l 'nan kòd.
W ap ale nan fè navigationController
pushViewController -
>> ODYANS: [fèbl].
Sa va rive pou nou, oswa -?
>> RHED chi: Oh, wi.
No
Li renmen m 'pi byen.
Non, li pral travay pou ou, tou.
Se konsa, sa yo, se tout metòd.
Se konsa, pushViewController se yon metòd, ak tou, plis espesyalman, li nan yon
metòd egzanp nan UI a Navigasyon kontwolè.
Paske mwen te gen yo kreye Navigasyon UI m ' etwal kontwolè, ak Lè sa a, mwen
ka rele pushViewController sa a sou mwen egzanp espesifik nan yon Navigasyon UI
kontwolè.
>> ODYANS: nou dwe fè egzak la mo, oswa li deja egziste pou li?
>> RHED chi: Wi, paske li nan yon metòd.
Se tankou yon fonksyon.
Se tankou printf.
Se tankou skanf.
Se tankou strcompare.
Eksepte li konnen sa ki ou ta ka vle tape, ak avi ke li pral toujou
vini ak bagay ki legalman pèmèt pou ou.
Se konsa, si pa gen anyen ki montre moute isit la, Lè sa a, yon bagay ki mal.
>> Se konsa, pushViewController.
Se konsa, koulye a, mwen vle pouse mwen fenk kreye
UIViewController, ak lè sa a, anime -
petèt pa.
Paske sa a ki pral yo dwe premye gade kontwolè la.
Mwen vle di, menm si mwen t 'fè anime, petèt li ka pa montre moute, paske
li nan ekran a an premye.
>> Epi sonje parantèz yo.
Se konsa, sonje ki jan nou itilize parantèz yo?
Ak andedan parantèz yo, nan objè apèl sou yon metòd -
Se konsa, objè nou an, se Navigasyon la kontwolè, ak metòd la se yon pouse
View kontwolè anime.
Apre sa, wè ki jan li pran nan de agiman, epi yo ap separe pa, sòt de la,
mo, ak yon kolon.
Se konsa, Objektif-C ap eseye fè l 'bèl ak fasil pou ou pou w li byen fò -
Kòd ou - epi yo gen li semi, sòt de, fè sans.
>> Sepandan, jis ap fè sa a se pa ase.
Kite m 'rale soti kounye a.
Lè w fè jis sa a se pa ase yo jwenn sa nou te rive nan anvan.
Se konsa, isit la, ou pral avi ki di ke gen aktyèlman pa pral fè nenpòt ki sòt de
Bar, isit la, dwa?
Gen nan pa gen ba Navigasyon, ki vle di ke nou toujou pa gen vinn li.
>> Lèfini, nou ka fè tès sa soti, tou, pa, petèt, chanje background nan nan
ViewController, dwa?
ViewController.background--
ah.
Se konsa, wè ki jan ViewController pa t 'gen yon koulè background, menm si mwen
te vle jwenn aksè nan li?
Epi sa a, paske ViewController se yon veso pou l sa gade nan.
Se konsa, li gen yon pwopriyete vi, ki Lè sa a, gen yon koulè background.
>> Epi, mwen ka mete l ', sòt de tediously, lè w rele koulè a
sou objè a UIColor.
Se konsa, avi isit la, redColor se yon metòd.
Li se yon metòd klas nan UIcolor.
Paske mwen pa t 'gen yo kreye yon egzanp aktyèl la nan yon UIColor yo nan lòd
yo rele metòd la sou li.
Mwen jis, tou senpleman, li rele l ' sou non an di ki kalite-renmen.
Se mwen menm, tankou, yo rele l 'sou Int, si Int te genyen, tankou, yon metòd nan li, pou egzanp.
>> Se konsa, si nou kouri Kòd sa a, nou pral remake ke background nan se
aktyèlman pa wouj.
Li la toujou blan.
Apre sa, ki jan nou ka jwenn alantou se sa ki, avi ki gen nan self.window la.
Sa se, tankou, veso a ultim pou aplikasyon w lan.
Li se bagay la ultim ki gen tou sa ki sou ekran an, pou yon
iPhone oswa aplikasyon iPad.
>> Epi, yon bon, self.window gen pwopriyete sa a rele
rootViewController.
Epi ki a pwal konsèy nan trè premye gade kontwolè a andedan
nan app ou.
Se konsa, sa nou vle fè isit la, kounye a, se yo mete ki egal a navigasyon nou
kontwolè.
Dwa?
Paske, teknikman, navigasyon kontwolè se yon bagay ki premye nou wè
kontwolè.
Li kenbe tras nan yon etalaj de lòt vi contrôleur, epi nou pouse sa a
View kontwolè nan ki etalaj nan kontwolè a navigasyon.
>> Se konsa, ou pa vle fè sa a.
Sa pa ta reyèlman ede ou.
Ou vle fè sa, si ou te vle fè yon kontwolè Navigasyon, ki pi
nan pwobableman ou ap paske ou pral vle a, sòt de yo, yo gen kèk sòt de,
tankou, meni pou tounen nan oswa kèk paj dakèy pou tounen nan, olye ke yon
vid ekran.
Wi?
>> ODYANS li: Eske se alèz pou ou pou w rale nan sou - a
>> RHED chi: Yeah.
Se konsa, yeah.
Sa a se kòd la, epi kounye a kite a tès li soti.
>> Se konsa, gen nou ale.
Majik.
Se konsa, OK.
Mèsi poutèt ou.
OK.
Se konsa, koulye a, ki sa nou vle fè se - se konsa, nou ap kalite limite, isit la, dwa?
Nou te kapab potansyèlman ekri tout bagay andedan nan fonksyon sa a yon sèl.
Men, sa a pa ki jan devlopman iOS anjeneral travay.
>> Se konsa, sa nou pral fè se, nou ale nan kreye kèk dosye nouvo.
Men,, plis espesyalman, nou ap ale nan kreye yon lòt klas Objektif-C, oswa
yon lòt objè -
klas-la ak objè ki ka ranplase isit la.
Epi, isit la nan ki jan mwen te kapab, ki kapab, kreye yon lòt klas nan U contrôleur.
>> Se konsa, li nan yon sub-klas, kòm ou ap remake, isit la, li nan yon sub-klas nan la
View UI kontwolè, men mwen kapab rele li nenpòt lòt Non isit la.
Mwen te kapab rele CS50 sa a, mwen te kapab rele sa a kontwolè vi, mwen te kapab rele
sa a bla View kontwolè -
anyen mwen vle.
Sa a se jis non an pou klas la.
Sepandan, li la pral fè enpòtan paske, esansyèlman, ki sa mwen ap fè
isit la se, mwen kreye yon lòt non klas la.
Se konsa, li pral fè, tankou, gen kèk sòt de kalite oswa yon objè.
Se konsa, li ta dwe yon ti jan jenerik.
Li pa pral yo dwe trè espesifik.
>> Epi tou, mwen vle pwen soti de opsyon sa yo.
Paske nou ap fè tout bagay andedan nan Kòd epi, pafwa, li se yon anpil pi fasil
pote nan yon dosye koòdone, sa yo ki Mwen ka literalman trennen ak gout, menm jan
nou te fè sa pi bonè ak scénario -
ou konnen, yon etikèt sou, oswa yon bouton, oswa kèlkeswa sa lòt moun.
Se konsa, xibs yo se dosye ki pèmèt ou sa a, epi ou gen kwòk l '
sa a ranpli kontwolè vi.
>> Se konsa, mwen pral fè espre pa tcheke sa a.
Anjeneral mwen ta tcheke sa a, epi si mwen sèlman te fè sa pou ifon oswa iPad, mwen
ta tcheke sa a ak tou senpleman gen yon sèl pou li a, ou konnen, iPhone a oswa iPad la.
Men, depi m ap fè inivèsèl, mwen pral yo kreye de nan tout sa yo pita.
Se konsa, mwen pral fè espre dezaktive sa a.
>> Sa a se tou vrèman enpòtan.
Yon anpil fwa, mwen te gen pinèz kote sa a pa te w tcheke yo.
Se konsa, evidamman, sa a ranpli se pa, sòt de, tankou, ki enkli oswa enpòte
andedan nan folder egzamen sa a.
Se konsa, kòd mwen an gen absoliman okenn lide nan egzistans la nan sa a ranpli, ak
ki lakòz anpil nan doulè ak èdtan nan debogaj.
Men,, jis asire w ke sa a se tcheke sa sa a, ou konnen, sib la nan sa a
dosye a se pou aplikasyon sa a.
>> OK.
Se konsa, kounye a nou te kreye de dosye nouvo.
Ak dosye sa yo gade bèl vid.
Epi, aktyèlman, se pou yo tou kontinye sou pa kreye dosye yo xib.
Se konsa, deja, mwen te nan la Cocoa Touch gout-desann.
Koulye a, mwen pral ale nan Itilizatè a Touche koòdone, ak jan ou ka wè, mwen
kapab kreye yon scénario.
>> Se konsa, menm mwen te kòmanse ak yon vid aplikasyon an, mwen ka toujou sèvi ak yon
scénario.
Malgre ke, li vin difisil an tèm sou kouman ou vle konekte
ke yo kòd ou a.
Se konsa, mwen pa prale a.
>> Men,, ki sa nou vle fè kounye a se kreye yon vi.
Epi ou ka chwazi pou yon iPhone oswa yon iPad.
Apre sa, anjeneral, fè yon don a diferans - si w ap fè yon
inivèsèl aplikasyon -
ou swa mete yon iPhone souliye, oswa ou kapab fè yon Twiddly.
Li pa reyèlman gen pwoblèm.
Li nan tou senpleman pou ou pou w diferansye ki wè se pou ki aparèy.
>> Se konsa, kounye a gade.
Mwen gen yon ekran ke mwen ka travay avèk yo.
Se konsa,, pou egzanp, mwen ka mete yon etikèt sou sou isit la, ou konnen, e mwen ka tou mete
yon lòt bouton isit la.
Mwen pa pral deranje chanje valè yo isit la.
>> Men, sa ki enpòtan isit la se ke pwopriyetè dosye a a -
se konsa, mwen se andedan nan iPhone a vi, dosye xib iPhone.
, Li desann nan zòn Navigasyon sa a oswa gout-desann meni, mwen vle pou yo ale nan la
mèt kay dosye a.
Lè sa a se vrèman nan enpòtan etap isit la.
Mwen vle fè gade nan klas kontwolè, se konsa ke sa a ranpli xib se
yo pral asosye ak View kontwolè m 'yo.
Apre sa, anyen ke mwen fè andedan nan gade m ' kontwolè programe se
yo pral reflete sou isit la.
>> Se konsa,, sepandan, remake ke -
aktyèlman, se pou yo fè sa a wè ble background, pou egzanp.
Oswa vèt.
Lè sa a,, Se konsa, si ou ap remake, li tounen nan Kòd sa a, sa a se kote nou te resevwa nan nou
Navigasyon kontwolè.
>> Menm si nou te fè sa etap, li nan toujou pral fè wouj, pa vèt.
Apre sa, gen yon rezon ki fè.
Li nan paske, lè nou inited kontwolè wè nou an, isit la -
regrèt, li nan yon ti kras fou -
lè nou inited kontwolè nou wè isit la, nou inited li nan kalite la an jeneral
UIViewController.
OK?
Se konsa, nou pa t 'menm fè l 'ak klas sa a.
>> Se konsa, sonje, sa a se tankou yon klas kounye a.
Li kapab panse a kòm yon kalite, jis kòm UIViewController se yon kalite.
Apre sa, yo nan lòd yo sèvi ak sa, ki sa ki nou bezwen fè se enpòte li -
enpòte ViewController -
, epi, jan ou ka wè, li autofills li pou mwen.
Se konsa, ViewController -
epi kounye a, isit la, mwen ka chanje sa a UIViewController ViewController.
Koulye a, isit la, mwen ka chanje sa a ViewController.
>> Se pou yo kouri sa a ankò.
Li la toujou wouj.
Apre sa, rezon an pou kisa li a toujou wouj se paske -
wa, sa ki te pase a?
Nou te vle asosye xib sa a ranpli ak kontwolè a vi.
Sepandan, yo nan lòd yo aktyèlman fè sa, nou bezwen ale nan sa a.
Apre sa, lè nou fè ini a, nou vle fè initWithNibName, ak Lè sa a, nou vle
fè nan fil View_iPhone a, pou egzanp.
Ou ka inyore pake a isit la.
>> Lè sa a ki pral pèmèt nou, aktyèlman -
uh oh, gen nan yon pwoblèm.
Dwat.
>> Se konsa, gen nan yon pwoblèm paske, nan dosye View xib nou an, nou gen yon etikèt sou yo ak
nou gen yon bouton.
Sepandan, menm si nou te konekte sa yo de, pa gen anyen anndan
ViewController.h oswa ViewController.m ki reflete sa yo
bouton oswa moun etikèt.
Se konsa, nou bezwen ekri sa yo ki nan kòm pwopriyete kontwolè a vi.
>> Se konsa, sa a se ki jan ou fè konnen yon pwopriyete.
Li pran nan, anjeneral,, de opsyon sa yo.
Pou rezon sa yo nan nou ak seminè sa a, Mwen ta di, an jeneral,
pi pwopriyete yo se nonatomic epi konsève.
Ou ka li moute nan Google chèche, ou konnen, diferans ki genyen ant
nonatomic epi konsève sou, ou konnen, Google oswa yon bagay.
Apre sa, mwen pral pran ou nan, tankou, Stack Debòde, kote moun yo ap gen
repons pou diferans yo ant sa yo.
Men, pou kounye a, se sa ki nou vle yo konsène ak.
>> Lèfini, nou vle fè yon mete etikèt sou UI, zetwal, epi nou ka rele l 'tou sa nou vle.
Nou ka rele sa a, ou konnen, mete etikèt sou.
Epi, nou pral kreye yon lòt yonn pou bouton an.
Epi sonje genyen ladan yo asterisk la, paske nou ap fè fas ak endikasyon
bèl anpil toupatou anndan nan Objektif-C.
>> Sepandan, ki pral toujou pa rezoud pwoblèm nan, jan ou ka wè isit la.
Ak rezon an se paske, chak fwa nou vle konekte yon etikèt sou dosye xib oswa yon
bouton nan pwogram lan, oswa header a ak aplikasyon ranpli, nou vle
ajoute pyès sa a nan kòd -
priz.
Remake li nan yon mo kle.
>> Epi, le pli vit ke mwen fini sezisman ki soti, li ta dwe gen sa yo
de ti sèk, isit la.
Anjeneral, yo pa ap plen pous
Mwen pa si poukisa yo.
Men, anjeneral, w ap gen manyèlman konekte yo pa ale nan bò sa a nan
sèvis piblik zòn nan.
>> Se konsa, kounye a, mwen te gen mete etikèt sou mwen chwazi, e mwen vle trennen sa a nouvo
Référansman priz mèt kay dosye mwen an, ak Lè sa a, klike sou Label.
Se konsa, koulye a, finalman, mete etikèt sou sa a se konekte nan mete etikèt sou sa a.
Apre sa, mete etikèt sou sa a se sa nou pral sèvi ak pwogramasyon chanje li yo
tèks, font li yo, jan nou koumanse li yo koulè, et setra.
>> Se konsa, poukisa pa nou fè a menm pou bouton an?
Apre sa, kòm ou ap remake, pou bouton an, li nan yon ti kras pi plis konplike.
Paske, mwen vle di, w ap sipoze pou laprès sou yon bouton, se konsa li te gen yon anpil
nan opsyon pou konbyen itilizatè ka peze sou yon bouton.
Lè sa a,, nou pral wè pita sou ki nou ka konekte sa a nan nou
Kòd fè li travay.
>> Se konsa, pou kounye a menm si, nou vle konekte li nan bouton an vrè
andedan nan kòd nou yo.
Se konsa, nou ale nan nouvo priz la indican, ak Lè sa a, fè bouton an.
Koulye a, se pou yo kouri sa a ankò.
Uh oh.
OK.
Mwen pa konnen sa k ap pase sou isit la kounye a.
Ola.
Sèlman yon sèl moman, isit la.
>> Aktyèlman, poukisa yo pa nou pran yon gade nan yon lòt egzanp nan
enterè a nan tan.
OK.
Se konsa, isit la nan plis fasilman prepare a egzanp pou ViewController.
Kòm ou ka wè isit la, mwen te enkli pwopriyete yo pou la
sou etikèt la ak bouton an.
Lè sa a,, pyès sa a nan kòd isit la -
IBaction sa a -
se te yon koneksyon sou bouton sa-a isit la.
Se konsa, jan ou ka wè isit la, Touch moute andedan se ki konekte nan seleksyon an
rele bouton bourade.
>> Se konsa, nou ka aktyèlman ale nan nan mouvman ankò, isit la, pa pran Touch moute
Andedan ak trenen li nan Pwopriyetè dosye a, epi Lè sa a,
Klike sou bouton bourade.
Koulye a, se pou yo kouri Kòd nou an.
Se konsa, koulye a, bouton sa-a kounye a ap travay ak pral pran nou nan pwochen paj la.
>> Epi, an tèm de kontwolè wè nou an, sa a se moso nan nan kòd ki te pran
pran swen nan bouton an bourade.
Epi li enpòtan sonje isit la, ki Mwen te kreye yon lòt kalite de vi
kontwolè rele yon tab View kontwolè.
Se konsa, sa a te menm jan ak li tounen nan scénario, lè m 'trennen youn nan
sa yo contrôleur View tab nan scénario la.
Mwen kreye yon lòt
>> Konsèy kontwolè a wè tab, alok ak ini-ing l ', li Lè sa a, fè
pwòp tèt ou dot Navigasyon kontwolè, pouse ViewController, sa a nouvo
viewController.
Apre sa, mwen te mete animasyon nan repons lan se wi, paske kounye a andedan nan app mwen, mwen menm
vle aktyèlman wè animasyon an pral soti nan paj an kay sou tab la
View kontwolè.
>> ODYANS: ou toujou enkyete sou koleksyon fatra?
>> RHED chi: Ki sa ki nan sa?
No
Se konsa, kesyon an te, ou gen yo travay avèk koleksyon fatra?
Se konsa, Xcode 4 te gen tankou ARC, ki se otomatik referans konte.
Se konsa,, anjeneral, lè ou kòmanse yon nouvo pwojè, ou ta tcheke ke, paske
pa gen yon sèl reyèlman vle fè fas ak libere memwa ak lòt bagay.
Men mwen panse ke nan Xcode 5, gen se pa menm opsyon sa a sou pwojè a nouvo.
Se konsa, li otomatikman fè sa pou ou.
Wi?
>> ODYANS: Èske ou ka ekspòtasyon yon PDF nan scénario ou a?
>> RHED chi: Yeah, definitivman.
Se konsa, tout moun sa yo pral enkli nan Kòd sous, se konsa ou nèg ka tcheke deyò
pwojè a Xcode aktyèl pou li.
Yeah?
>> ODYANS: Men, mwen vle di, tankou, èske mwen kapab enprime yon PDF ak scénario mwen an?
Si m 'jis vle ekspòtasyon an imaj yo montre yon moun.
>> RHED chi: Oh yeah.
Mwen panse ke, petèt, ou ka jis pran yon piki ekran.
Yeah, epi voye yo yon ekran piki oswa yon bagay.
Yeah.
>> Se konsa, kite a wè.
Nan enterè a nan tan, mwen panse ke sa a, se tout l ka kouvri jodi a.
Men, mwen konnen sa a, se, aktyèlman, jis apèn manyen sifas la nan iOS
devlopman.
Se konsa, tanpri ezite kontakte mwen si w gen nenpòt kesyon sou iOS
devlopman.
Epi, èspere ke, mwen pral kapab netwaye moute kèk nan kòd la pou sous la
dosye kòd, se konsa ke ou pral gen kèk reyèlman bon egzanp nan travay avèk yo.
>> Lòt pase sa, si ou nèg yo ale CS50 Hackathon a, mwen ka oswa ka
Ou pa bezwen gen, e mwen ka ede soti ak kèk devlopman iOS, tou.
Se konsa, mèsi anpil, guys.