[Powered by Google Translate] [Seminārs] [iOS: Writing Apps Tāpat Boss]
[Tomijs MacWilliam] [Hārvarda]
[Tas ir CS50.] [CS50.TV]
>> Labi, ikviens, laipni iOS: Writing Apps kā Boss.
Šis seminārs ir gatavojas koncentrēties uz rakstiski progr par iPhone
un savukārt rakstiski progr par iPad, un tāpēc mēs esam būtībā gatavojas staigāt cauri
pāris dažādi piemēri par to, kā padarīt app, vienkārša spēle, piemēram, Tic Tac Toe,
vai, ja jūs esat vairāk ieinteresēti padarīt app kā sava veida ziņu lasītājs
vai kaut kas mijiedarbojas ar internetu es runāt par to, kā labi.
Lūk, mūsu īss darba kārtība.
>> IOS progr ir rakstīts valodā sauc Mērķis-C,
un tāpēc tas ir mazliet līdzīga C, bet nav īsti nemaz,
tāpēc mēs runājam mazliet par pašas valodas
un tad kā veidot IPHONE progr izmantojot šo app programmu, ko sauc Xcode,
kas, ja neesat lejupielādējis vēl justies brīvi, lai sāktu lejupielādi tagad.
Tas ir vairākas gigabaitiem.
Tas būtu brīva no App Store, tāpēc jums būs nepieciešams, lai ir Mac
ideālā darbojas jaunāko versiju OS X.
Ja jūs neesat, nav problēmu.
Mums ir Mac zinātnē centrā pieejama jūsu lietošanai
ar Xcode uzstādītas, un lai justies brīvi izmantot tos attīstībai.
Ja jūs vēlaties, lai app bet nav Mac, nav jāuztraucas.
Tur ir daudz Campus resursus.
Un tad mēs ejam, lai segtu 2 lielāks piemērus dažādu progr jūs varat darīt.
Mērķis-C ir tehniski tas, ko sauc super kopums C.
Tas nozīmē, ka jebkurš C kods ir arī derīgs Mērķis-C kodu.
Tas nozīmē, ka mēs veida vadu lentu par papildu funkcijas uz C.
Dažas no šīm iezīmēm ietver ne kam kādreiz uzrakstīt malloc atkal, paldies Dievam,
Nav jāuztraucas par tiem stulbajiem norādes un atbrīvojot viņus un visu, kas stuff
Jūs ienīda par C, un tas ir sava veida aizgāja Mērķis-C.
>> Tagad, Mērķis-C arī ir daudz lielāka standarta bibliotēka,
tāpēc tur daudz vairāk funkcionalitāti jūs saņemsiet par brīvu iekšpusē Mērķis-C.
Atceros, kad mēs bijām rakstot PHP mēs ievērojām, ka mēs devāmies uz
Tas mazākais valodu ar milzu bibliotēkā visu šo crazy lietām, ko var darīt.
Tas pats notiek iOS.
Ir priekšmeti lietām, piemēram, budistu kalendāru, un tiešām kaut
Jūs varat iespējams iedomāties, iespējams, pastāv jau Mērķis-C īstenošanā.
Mērķis daļa Mērķis-C ir atsauces kaut
sauc Object-Oriented Programming.
Tas ir sava veida jauna koncepcija, bet mēs esam patiesībā lielākoties iemācījušies
daudz no šiem jēdzieniem jau.
Aiz Object-Oriented Programming ideja ir, ka jūs gatavojas, lai strukturētu
Jūsu koda daudz ap šīm lietām sauc klasēm,
un šīs nodarbības ir patiešām pagodināts structs.
Iekšpusē struct mēs būtībā teica šeit ir lieta,
un šī lieta var būt biedri.
Piemēram, kādā saistīts saraksts mezgls varētu būt citas lietas
kā vērtība, rādītājs uz nākamo mezglu sarakstā,
un kopā tas rādītājs, un šī vērtība veido šo vienu gadījumu struct.
Nodarbības ir ļoti līdzīgas, izņemot
klases var būt arī funkcijas iekšpusē no tiem.
Kad mēs paziņoja struct, mēs varētu tikai teikt int n vai mezglā * nākamo.
>> Tagad ar Mērķis-C mēs faktiski var nodot funkcijas
iekšpusē no šīm lietām.
Cita lieta, ka nodarbības var darīt, ir viņi var mantot datus no citām klasēm.
Piemēram, mēs būsim apskatot ķekars iebūvētās Mērķis-C klasēs.
Viens no tiem varētu būt klase, kas pārstāv viedokli par ekrānu,
un tāpēc, sakot, es gribu, lai īstenotu savu viedokli
mēs būtībā teikt kāds vairāk nekā pie Apple, iespējams, tiešām jauki cilvēki,
rakstīja šo klasi par mani, un to rokturi lietas, piemēram attēlot pogas
vai padarot ekrānu, un mēs būtu patiešām sāpināts
lai īstenotu visus šo funkcionalitāti paši, un tāpēc vienkārši
mantojumu datiem mēs varam teikt visu, ko esat darījuši šajā klasē
Es arī gribu iekšā manas klases, un tad es esmu gatavojas darīt dažas citas lietas,
proti īstenot app.
Tas, ko šis vārds nozīmē mantojums. Mēs redzēsim daudz konkrētu piemēru.
>> Un visbeidzot, ar Object-Oriented Programming Galvenais ir, ka
tas noved pie datu iekapsulēšanas.
Dažās no mūsu problēma noteikti mēs varētu būt šie lielie, pasaules mainīgie
un globals visur, un tas, kā mēs gribētu sekot stāvoklī.
Ar klasēm mēs varam sākt iekapsulētājmateriālu informāciju iekšpusē objekta.
Ja mums ir viena ekrāna mūsu app, mums nav īsti nepieciešams, lai ir kādi dati no
citu ekrāna mūsu app iekšpusē, ka,
un tā iekapsulētājmateriālu lietas ietvaros klasēs tas patiesībā noved
daudz labāk kodu dizainu, un tas ir iespējams ar dažiem papildu funkcijas
gada mērķa-C.
Forewarning, par mērķa-C sintakse ir banāni.
Tas ir kā nekas, mēs esam redzējuši līdz šim,
tāpēc tas ir mazliet mācīšanās līkne, lai pierastu pie
ko heck tas nozīmē?
Bet tad, kad jums pēdējo ka sākotnējā mācīšanās līkne tas ir ļoti, ļoti gluda
lai sāktu rakstīt progr.
>> Pasludināt klasi, teikt, šeit ir mana klase, tā pastāv,
un varbūt šeit ir dažas lietas, ka es esmu gatavojas noteikt vēlāk,
Es esmu gatavojas teikt @ interfeisu.
Es esmu gatavojas teikt @ interfeisu. Es esmu gatavojas sniegt manas klases nosaukumu.
Un tad vēlāk kaut kur citur es esmu gatavojas teikt @ beigas,
un viss starp @ saskarni un @ beigās
būs mana klase.
Kas būs, kas ir iekšā mūsu. H failus.
Tāpat kā C mūsu. H faili būtībā teica šeit ir dažas lietas, kas pastāv.
Es ne vienmēr stāsta jums to, ko viņi dara vēl,
bet kompilators jāzina, ka tie pastāv.
Vēlāk iekšā mūsu. M faili, jo m Mērķis-C
ir kur mēs esam patiešām gatavojas noteikt, ko šajās klasēs darīt.
Daudz, piemēram, mūsu. C failus, mēs sniedza īstenošanu funkcijām.
Iekšpusē mūsu. M faila mēs spēsim pateikt šeit ir tas, ko visi no funkcijām
iekšpusē mana klases, ko viņi visi dara.
Un visbeidzot, iekšpusē struct mēs varētu teikt iekšā šos cirtaini lencēm
int n vai mezglā * blakus,
un mērķa-C mēs spēsim izmantot atslēgvārdu @ īpašumu,
un tas ir tas, kas notiek, lai noteiktu īpašības,
vai ne-funkcijas, kas ir daļa no manas klases.
>> Zvanot funkcijas Mērķis-C ir arī banāni.
Kad mēs paziņoja funkcijas K mums teica kaut ko līdzīgu int foo
un atvērta paren un tad deva to argumentu sarakstā.
Tas ir tas, ko deklarējot metodes vai funkcijas izskatās Mērķis-C.
Ja es gribu paziņot funkciju vai metode
kur es saku metode patiešām ir tikai funkcija, kas ir loceklis klases,
tāpēc veida aizstājami, bet nav īsti,
tāpēc iekšpusē manu metodi es gribu, lai izveidotu jaunu metodi.
Tas notiek, lai atgrieztos nekas, tāpēc tas būs tipa neesošu.
Tas ir atgriešanās veids manu darbību.
Tagad mums ir parens šeit, jo, es nezinu.
Nākamais būs nosaukums manu darbību,
un tad beidzot mums ir semikolu tāpat kā mums bija C.
Kas jauns šeit ir tas puisis šeit.
Šī defise ir faktiski vajadzīgs, un ko tas saka, ka
šī metode šeit ir aicinātas gadījumam klasi.
>> Kad mēs paziņoja mūsu structs mēs, iespējams, teica kaut ko līdzīgu
struct mezglā n, un kas faktiski radīja
vai instantiated vienu no šiem structs lai es patiešām varētu sākt strādāt
ar to, kas iekšpusē tā, lai tas svītra nozīmē, ka mums ir
instantiate klasē tāpat kā mēs instantiated ka struct
Pirms mēs varam zvanīt šo metodi par to.
Ja es gribu, lai sāktu pievienot argumentus manas metodes
tā kļūst vēl vairāk banānus.
Te ir mana metodes nosaukums.
Tad es esmu nāksies kolu, un pēc šīs resnās ir teikts šeit runa dažus argumentus.
Šī metode ņem vienu argumentu.
Tās pieņēmuma veids ir int, un ar šo argumentu nosaukums
vai mainīgā ka es esmu gatavojas sākt izmantot iekšpusē metodi sauc i.
Atkal, tas ir metode. Tas aizņem vienu argumentu.
>> Ja jūs vēlaties, lai sāktu pievienot vairāk argumentu tas izpaužas vairāk banānus
jo mēs esam tas resnās kas saka šeit nāk mana argumentu sarakstā.
Šis pirmais arguments ir skaitlis.
Tagad, šis otrais arguments ir interesanti.
Mainīgais, ka es esmu būs izmantojot iekšpusē manu darbību
sauc f, tāpēc iekšā manu darbību es varētu teikt
F + = 1 vai kaut.
Šī lieta šeit ir būtībā galvenais šī argumentu vai parametru.
Tāpat kā mums bija galvenā vērtība pārus un tāpat JSON vai asociatīvo bloki kaut
Mērķis-C pieņēma lēmumu, lai pateiktu, labi, tikai tāpēc, ka tas tiešām skaidrs
kad jūs zvanu metodi, ko visi šie parametri tiek
Es tiešām gatavojas nosaukt tos visus.
Kad jūs zvanu metodi, jūs tiešām teikt andFloat,
un tad jūs nodot to collas
>> Interesanti, ka šis viens nav nosaukts, bet visi pārējie parametri ir,
tāpēc, ja mums bija 3rd argumentu es varētu teikt andFloat
un vēl peldēt un tā tālāk.
Kad es aicinu šīs metodes ir, protams banānu,
tāpēc, ja man ir objektu, un es noteikti metodi sauc foo,
un es vēlos, lai izsauktu to, nevis pasakot foo atvērt / aizvērt parens
Es esmu gatavojas atvērt skava.
Lūk mana metode nosaukums.
Es esmu gatavojas slēgt kronšteinu, un tas ir objekts es esmu aicinot to.
Atcerieties, visas šīs metodes pastāvēt klasēs
jo nodarbības var būt metodes noteiktas iekšpusē no tiem.
>> Šeit es esmu patvaļīgi izveidojis objektu dažiem klases,
un tas ir sintakse, lai dara to.
Ir 2 soļi, lai izveidotu objektu.
Pirmais solis ir, es gribu piešķirt telpu.
Tas ir ekvivalents malloc. Mums nav ko teikt malloc vairs.
Mēs samazinājās m, padarīja alloc, un aizstāja. C ar. M.
Kad mēs alloc kaut ko mēs tad nepieciešams, lai sāktu to.
Būtībā, kad jūs izveidot objektus jūs varētu vēlēties, lai būtu kādu loģiku
kas izpilda tad, kad viņi radīja, lai jūs varētu pāriet dažu noklusējuma vērtībām
vai kaut kas tamlīdzīgs, un tāpēc šī init metode ir tas, ko faktiski rada objektu.
Mēs vispirms piešķirt telpu, tāpat kā mēs to darījām C,
un tad mēs sāktu to, ko var vai nevar darīt visu daudz.
Tad mēs atgriežoties šī lieta par objekta o.
Tur zvaigzne šeit, jo tas ir tehniski rādītājs,
bet nav jāuztraucas, norādes nav, ka liels darījumu Mērķis-C vairs.
>> Tagad mēs esam instantiated šo klasi sauc NSObject,
un tas ir tikai izlases klase, kas Apple ir.
Mēs esam instantiated šo, un tagad man ir gadījums šajā klasē
Šajā objektā o, lai tas nozīmē, ka ja es noteikti
šīs metodes es varētu viņiem piezvanīt, kā šis.
Tāpat, ja es gribēju, lai izsauktu metodi ar vienu argumentu,
tāpēc šī ir josla metode, kas ņem vienu argumentu,
un šeit ir baz: qux metode, tāpēc tas aizņem 2 argumentus.
Šis ir aicinājums viena funkcija par šo objektu o.
Jēga?
Sintakse būtu jēga, bet jūs veida pierast pie tā.
>> Labi, parunāsim par dažām lietām, kas ir iebūvēti Mērķis-C
kas ne vienmēr iebūvēts C.
C mēs veida bija jānodarbojas ar stīgām, jo ​​šie stulba raksturs masīvi,
un tas ieguva tiešām kaitinošas.
Mērķis-C ir tie visi celta par mums, un tas ir iebūvēts
izmantojot šo klasi sauc NSString.
Kad es gribu, lai izveidotu NSString mums ir vairāk mistiskā sintaksi.
Nevis pasakot "CS50" Mēs sakām @ "CS50"
un tas ir tikai sintakse deklarējot virknes Mērķis-C.
Tas ir ļoti viegli aizmirst, tāpēc nav.
Tagad, kad man ir tas, tas ir virkne, bet paziņojums
tas patiešām ir tikai objekts.
Es teicu NSString, kas nozīmē, es instantiated klasē
sauc NSString, ko kāds cits rakstīja par mani,
un viņi bija ļoti jauki par to, un tāpēc tagad
Es varētu sākt aicinot metodes par to.
Ja es zvanu metodi garumu par šo objektu iem
tas notiek, lai atgrieztos pie manis garumu virknes.
Tas ir tāpat kā strlen jo C.
Tas varētu atgriezties 4.
>> Līdzīgi, citu metodi es varētu vēlēties, lai rūpētos par to ir šis characterAtIndex.
Šī ir metode, kas saka par šī virkne iem
Es gribu, lai jūs iegūtu 0. raksturs,
un tāpēc tas atkal būtu man raksturs c,
un tur viss ķekars vairāk no šīm metodēm, kas jūs varat Google patiešām viegli.
Apple dokumentācija ir liels, un mēs to apskatīt, kas ir mazliet.
Tie ir stīgas.
Mēs arī esam dažāda lieluma masīvi iebūvēts
Atceros C kad mēs paziņoja masīvs
mums bija teikt jums ir 5 elementi, beigās stāsts.
Kad mēs saņēmām uz JavaScript un PHP, mēs varētu sākt
darot lietas, piemēram, pievienojot elementus vai kustīgiem elementiem.
Mēs varam darīt pašu mērķa-C.
Nevis izveidot masīvu kā parasti C ceļā
Mums ir atkal cits klasi sauc NSMutableArray.
Pastāv arī NSArray,
un tas ir gatavojas būtībā rezumēju dažas masīvs.
Šis saka pirmā lieta, ko es gribu darīt, ir es gribu piešķirt
vieta jaunu bloku, un pēc tam es tas jāsadala
Es tad nepieciešams, lai sāktu to.
Atkal, tāpat aicinot šos 2 metodes.
Tagad tas nozīmē, ka iekšpusē šo objektu ar
Man ir tukša masīvs sēdēja.
Ja es gribu, lai pievienotu kaut ko šī masīva, es varu zvanīt addObject metodi.
Es gribu, lai pievienotu objektu masīvā ir, un es vēlos pievienot virkni CS50.
Ja es gribēju otrādi noņemt, ka es varu teikt, es gribu
noņemt objektu pirmajā vietā par masīvu vai iebildumus.
>> Jēga?
Labi, jūs veida pierast pie šo kvadrātiekava lieta.
Starp citu, iekšpusē daudz Apple bibliotēku jūs redzat šo NS.
NS faktiski stendi nākamo soli, kas bija viens no Steve Jobs pirmajiem uzņēmumiem,
un ka tur viņš tiešām sāka rakstīt daudz kodu
kā sava veida pamatu Mac OS X un visiem citiem stuff,
un tāpēc šis NS ir veida šo jauku mantojums izkliegt uz iepriekšējām sabiedrībām, proti
atpakaļ, kad Apple bija pirmo reizi sākot out.
Tas ir visur.
Pieņemsim to apskatīt vienotāka Mērķis-C piemērs.
Šeit es esmu iekšā Xcode.
Lai saņemtu šeit, es vispirms lejupielādēt Xcode no App Store,
atver to uz augšu, un tad es devos šurp uz failu,
nekā šeit uz jaunu, un pēc tam projektu.
Pēc man, ka man ir visas šīs iespējas, ko es gribu, lai izveidotu,
un tāpēc mēs to apskatīt šīm iespējām vēlāk,
bet tikai par šo, piemēram, tāpēc, ka mēs neesam tiešām nāksies app vēl,
Es atbraucu uz šejieni, un es teicu Komandrindas rīks,
un tas ir app, ka es varētu palaist komandrindas
tāpat kā mēs esam darbojas no C.
Tas ir, kā es izveidojis šo projektu, un tāpēc tagad es esmu šeit,
Tātad, pieņemsim vispirms apskatīt šo failu, un tas izskatās diezgan pazīstams.
Man ir int nosaukumu. Tur ir mans draugs argc, citi mani draugs argv.
Un tā mēs varam redzēt, ka tas ir sākumpunkts mans pirmais mērķis-C pieteikumu.
Šeit mēs varam ignorēt šo tagad.
Tas ir būtībā dažus atmiņas pārvaldības sīkumi, ka jums nav īsti
kādreiz ir jāuztraucas par.
>> Apskatīsim pirmajā blokā šeit.
Šis pirmais rindā, ja es saku Studentu * Alise = [[Studentu alloc] init] kas tas dara?
Šis pirmais students šeit, tas ir iespējams klasē.
Tas nav klases, ka Apple rakstīja, bet tas ir klases, kas man rakstīja.
Pirmais, ko es gribu darīt, ir es gribu piešķirt telpu jauns students,
un tad es gribu, lai sāktu to, tāpēc tas dod man atpakaļ
Šī jaunā studente objektu, un es esmu saglabājot šo mainīgo sauc Alise.
No kurienes, kas klasi nāk no?
Nu, nekā šeit kreisajā pusē tie visi ir no dažādiem failiem iekšpusē manu projektu.
Mēs varam redzēt šeit man ir Student.h un Student.m.
. H failu, atcerieties, ir vieta, kur es apliecinu visas lietas
kas pastāv klases ietvaros.
>> Pieņemsim to apskatīt to.
Labi, šeit mums ir šis @ interfeiss, un tas saka, ka šeit nāk
deklarācijas par visu, kas pastāvēs manā klasē.
Tad man ir ar kolu. Tad man ir šī NSObject lieta.
Šī resnās nozīmē, ka mantojuma mazliet runājām mazliet agrāk.
Šis saka viss NSObject var darīt
ja NSObject ir šī klase raksta kāds cits,
viss tas NSObject var darīt es gribu, lai varētu to darīt.
, Sakot: NSObject tas nozīmē, ka es būtībā
mantoja visu funkcionalitāti citas klases.
Tas tiešām deva man visu ķekars dažādu metodes un īpašības, ka es varētu izmantot.
Noteikti šeit es esmu radot 2 īpašības.
Tas nozīmē, mans students, ja tas būtu struktūrai, tie varētu būt 2 lietas
iekšpusē manu struct, lai katrs students ir nosaukums
ka ir virkne, un students ir arī pakāpē,
kas ir int.
>> Visbeidzot, noteikti šeit es esmu gatavojas izveidot metodi manu studentu.
I sauc mana metode, initWithName, un tas aizņem vienu argumentu,
un šis arguments ir virkne, un es to sauca nosaukt.
Tagad aplūkosim, kā mēs faktiski īstenoti šo klasi.
Lūk, tagad es esmu iekšā manu. M failu,
m īstenošanai, I guess.
Man ir mana īstenošanu, manu galu, un šeit ir tas, kur es esmu faktiski nosakot
ko initWithName dara.
Man ir initWithName, mana parametra nosaukums, un tad šī
ir vieta, kur es esmu faktiski radot students,
un tāpēc tas ir mazliet noslēpumains, bet tas ir sava veida tekstveidnes
ka jūs vēlaties iekļaut jūsu uzņēmēji.
Šī inicializācijas funkcija šeit, initWithName, ir veids konstruktors.
Jūs būtībā būvējot jaunu studentu objektu
un varbūt nosūtot dažus datus no tā.
Pirmais, ko es gribu darīt, ir es gribu aicināt init par šo super lieta.
>> Atcerieties, ka tad, kad es teicu atpakaļ šeit. H failu
ka viss NSObject ir students ir arī.
Tas nozīmē, ja es izveidotu students, kas man arī jādara, ir
pārliecinieties, ka NSObject ka es esmu pārmanto visus, ka dati no
ir arī inicializēts pareizi.
Kas man ir nepieciešams pateikt, ir tas super ir faktiski gatavojas atsaukties uz mātes klasē
ka es esmu pārmantot no, tāpēc es gribu, lai pārliecinātos, es sāktu
viss, ko es esmu atkarībā pirms es sākt mēģināt to izmantot.
Tad, ja tas inicializēts pareizi tas ir tāpat kā teikt, ja malloc
neatgriezās Null, tad es varētu sākt nosakot dažas īpašības.
>> JavaScript un PHP, mums bija šis atslēgvārds sauc šo,
un tas atsaucās uz pašreizējo gadījumu klasi.
Mērķa-C mēs saucam sevi.
Kad es saku self.name, tas nozīmē, ka objekts
Es tikko izveidots, kad es teicu students alloc init,
kas notiek, lai dotu man atpakaļ objektu.
Tas nozīmē, ka es vēlos, lai uzstādītu nosaukumu šo objektu
lai kāds man tikko pagājis iekšā
Tāpat kā C, mēs piekļūt locekļi ar šo dot,
tāpēc self.name saka par studentu objekta nosaukums
tagad būs kāds jūs tikko pagājis collas
Un tā beidzot, es varētu atdot, lai es tiešām saņemt kaut ko atpakaļ.
>> Jautājumi?
Labi, tāpēc sevis = super init,
ja Jums nav pilnībā saprast mantojuma sīkumi nav jāuztraucas.
Tikai zinu, ka, ja jūs kādreiz vēlaties, lai jūsu pašu init metodi tikko
darīt, un jums būs labi iet.
Yeah >> [Studentu]. Ko ja self nozīmē?
Tas nozīmē, ja mēs malloc kaut mēs vienmēr pārbaudīt, vai tas bija vienāds ar null,
un ja tas bija nulle, tad mēs izbrauc.
Tas ir tas pats, jo, ja tas atgriež null, tad mēs, iespējams, gatavojas SEG vaina
ja mēs sākt mēģināt manipulēt ar to.
Tas ir mūsu students klasē.
Tas nozīmē, ka mēs varam inicializēt mūsu studentiem vienā no diviem veidiem.
Ja es saku students alloc init es neesmu, izmantojot šo metodi, ka es tikko rakstīja,
un tā vietā es varētu vienkārši pateikt alice.name,
un tagad es esmu gatavojas noteikt, ka īpašuma nosaukums.
>> Tāpat, ja es vēlos izmantot šo initWithName metodi
Es varētu vienkārši pateikt alloc, un tad nevis pasakot init
Es esmu dodas uz zvanu, ka metode, kas man tikko izveidoto, un es esmu gatavojas iet ar Bobu.
Šajā brīdī, šis objekts Bobs ir vārds, kas vienāds ar Bobu.
Labi, noteikti šeit es esmu, izmantojot šo NSMutableArray ka mēs paskatījās agrāk.
Es esmu piešķirot space.Then es esmu inicializēšana jaunu masīvu.
Es esmu gatavojas pievienot 2 lietas ar to.
Šis masīvs tagad pieder studentu objektus.
Ievērojiet, ka nekur nebija man jāsaka tas ir masīvs studentiem.
Es teicu, tas ir masīvs, periods.
Tad es varētu īstenot neatkarīgi iekšpusē tā, ka es gribu.
Šeit man ir 2 objekti.
>> Visbeidzot, man ir cits priekšmets šeit, šo TF.
Vairāk nekā šeit TF.h būtībā tas pats.
Es esmu pārmantot no NSObject, un starp citu,
kad jūs izveidot klases tas ir viss darīts, lai jūs,
šāda veida interfeisu tekstveidnes.
Tā ir īpašums studentiem.
Man ir pāris metodes šeit, kas nav īsti darīt visu daudz,
un tādējādi tas nozīmē, kad es izveidot šo TF objektu
Es varētu nosaukt šo metodi pakāpē par to, kā šis.
Visus jautājumus par Mērķis-C sintaksi, pirms mēs sākam pārceļas daži vairāk
Interesanti Apps attīstības sīkumi?
>> Labi, tāpēc pieņemsim faktiski padara iPhone app.
Kodols klases, kas jums tiks izmantojot iekšpusē jūsu iPhone app sauc view kontrolieri,
un skats kontrolieris būtībā pārstāv vienu ekrānu
iekšā jūsu app, tāpēc, ja es esmu par mūzikas app, piemēram,
viens skats kontrolieris varētu pārstāvēt viedokli, kurā es apskatīt visas dziesmas par manu iPhone.
Vēl viens skats kontrolieris varētu būt, kad es noklikšķiniet uz dziesmu un sākt spēlēt to
vai kā es esmu urbšanas leju māksliniekiem.
Katrs no šiem dažādiem ekrāniem varētu pārstāvēja citu skatu kontrolieris,
un skats kontrolieris ir tiešām tikai klase, kas saka, kā šis ekrāns darbojas.
Lietas iekšpusē skata kontrolieris, mēs esam nāksies īpašības,
tāpēc lietas kā poga būs īpašumā mūsu domām kontrolieris.
>> Mēs arī nāksies metodes, un tie ir pamatā notikumu apstrādes.
Šī metode saka, nospiežot šo pogu
Es gribu kaut ko darīt, un, visbeidzot, atkal,
mēs gribam būt, izmantojot šo sevis atslēgvārdu, lai piekļūtu pašreizējo gadījumu.
Lai izveidotu saskarnes iOS ir tiešām ļoti, ļoti viegli.
Viņi ir šo jauku vilkšanas un nomešanas interfeisu sauc Interface Builder,
un 2 pamatkoncepcijas ka vadi līdz jūsu mērķis-C Interface Builder
ir IBOutlet un IBAction.
IBOutlet vienkārši saka, ka, ja jūs atzīt īpašumu, kas ir poga,
un jūs vēlaties, lai aizšmaukt līdz kaut ko jūsu faktisko UI,
jūs gatavojas teikt, tas ir izeja.
Tāpat, ja jūs vēlaties, lai pārstāvētu notikumu apdarinātājs
tad jūs gatavojas teikt tā darbība.
>> Faktiski vadi līdz šī grafiskā
un jūsu kods tas ir ļoti, ļoti vienkārša.
Ja jūs vēlaties, lai pievienotu IBOutlet, viss, kas jums jādara, ir jums kontrolēt klikšķis,
un mēs redzēt piemēru tas tiešām ātri.
Tu kontrolē noklikšķiniet, kur ir teikts Skatīt Controller.
Jūs gatavojas vilkt uz saskarni, vai otrādi,
ja jūs vēlaties āķa notikuma apdarinātājs jūs gatavojas vilkt no interfeisa
citā virzienā.
Pieņemsim to apskatīt ļoti vienkāršs iOS piemērs.
>> Pieņemsim izveidot jaunu projektu.
Es esmu gatavojas nākt klajā šeit Pieteikumā
un es esmu gatavojas uz vienā skatā Application.
Es esmu gatavojas uz nākamo. Es došu mans projekts ar nosaukumu.
Es aicinu to Sveiki.
Interesanti, Apple neuzņemas jūs radot produktu
lai jūs varētu pārdot, un viņi var dot naudu.
Noteikti šeit es esmu gatavojas teikt, ka tas ir iPhone app.
Jūs varat izveidot iPad app, vai, ja jūs vēlaties, lai radītu vienu no šiem apps
kas atbalsta abas ierīces jūs varat darīt, ka pārāk.
Tie ir tas, ko jūs vēlaties, lai jūsu checkmarks izskatās.
>> Jūs vēlaties izmantot storyboards, ko mēs redzēsim vēlāk,
un jūs noteikti vēlaties izmantot automātisko atsauces skaitīšanu,
kas ir jauka iezīme, kas neļauj jums, kam pateikt malloc un bez maksas.
Ja vien jūs vēlaties, lai izsauktu malloc un brīva, es atstāt šo pārbaudīta.
Es noklikšķiniet uz nākamo, un, visbeidzot, tas ir gatavojas lūgt man, kur es gribu, lai to saglabātu.
Es hit izveidot, un šeit mēs iet.
Es izveidojis jaunu projektu.
Vairāk nekā šeit pa kreisi ir visi faili, kas ir iekšpusē manu projektu,
un ievēroju, ka es saņēmu visu ķekars, un man nav pat darīt neko.
IOS ir lieliski.
>> Piemēram, šeit tas ViewController.h,
Tas ir gatavojas pārstāvēt savu pirmo skatu kontrolieris,
tāpēc pirmā ekrāna iekšpusē manu app.
Tagad mēs zinām, ko tas saka.
Mēs esam sakot es esmu aicinot šīs klases ViewController,
un ViewController dara visu, kas UIViewController dara,
un tas atkal ir daži klases ka Apple rakstīja, ka nav daudz ērts sīkumi mums
patīk parādīt uz ekrāna.
Te ir vieta, kur es patiesībā var sākt definēt, kāds ir mans viedoklis kontrolieris dara,
un izrādās, ka es tiešām nav nepieciešams kāds no šo.
Tas ir tekstveidnes kods, ka Apple dod man par brīvu.
I did nepieciešams, ka pirmo līniju, vai man nav klasi,
lai mēs varētu atbrīvoties no tā un atbrīvoties no tā.
Labi, tā tas ir mans tukšs ekrāns.
>> Tagad noklikšķiniet uz šo MainStoryboard.storyboard,
un tas ir, ja tā sāk iegūt interesantu.
Tas ir pirmais ekrāna manu app.
Ja es gribu, lai pievienotu pogu, HTML man bija izveidot pogu tag.
Android jums izveidot pogu tagu,
bet iOS, ja es vienkārši nāk uz leju šeit uz leju pa labi
un ja es noklikšķiniet uz šajā 3 vienu šeit, kur ir teikts Objekti,
un es varētu ritiniet uz leju, vai es varu sākt meklēt pogu.
Un izskatās, pogu, tāpēc, ja es tiešām vilkt un nomest šīs tiesības tur,
Esmu tikko pievienotās pogu uz šo ekrānu par manu app.
Ja es gribu, lai mainītu tekstu, es varu divreiz noklikšķiniet uz tā,
saka kaut ko vilinošs, piemēram, "Spiediet Me".
Labi, tagad, ja man palaist šo app, tāpēc mēs apkopo to,
tāpēc, lai palaistu to es noklikšķiniet uz atskaņošanas pogas augšējā kreisajā, un tur ir mans app.
Es to nedarīju neko, un es saņēmu salds meklējat iPhone app.
Ja es gribu, lai apturētu to, jūs varat noklikšķināt uz stop pogas
jo tas ir daudz jautrības.
>> Pieņemsim, ka es tiešām gribu kaut kas notiktu, ja es nospiediet šo taustiņu.
Lai to izdarītu, ko man vajag darīt, ir man ir nepieciešams, lai radītu
jaunu notikumu apdarinātājs, vai darbība.
Tas nozīmē, ka man ir nepieciešams, lai izveidotu kādu metodi, kas es vēlos būt saukta
kad es nospiediet pogu, tāpēc pieņemsim izveidot jaunu metodi.
Es esmu iekšā ViewController.h.
Man jāsaka, ka metode pastāv.
Man vajag defisi vispirms tāpēc es esmu būs aicinot šo uz skata kontrolieris.
Man vajag, lai dotu šo veidu.
Šī veida būs kas IBAction lieta, ka mēs redzējām agrāk.
Tas ir notikums apdarinātājs, tāpēc tas būs atgriezt IBAction,
un tas ir mājiens uz Xcode teikt, ka
tas ir kaut kas es gribu, lai vadu kaut ko.
Es varu dot tam nosaukumu, piemēram buttonPressed, semikolu.
>> Tagad es esmu atzīts jaunu metodi iekšpusē manā klasē.
Man teica šī metode ir pastāvēt.
Tagad pieņemsim nonāk ViewController.m,
un teiksim, ko šī metode var darīt.
Ja es sāktu rakstīt, piemēram, (anulēts) buttonPressed
paziņojums Xcode ir tiešām jauks un autocompletes par mani.
Tas ir patiešām brīnišķīgi.
Pamanīt šeit, ka iekšpusē. M failu es varu arī teikt par spēkā neesošu,
un tas ir tāpēc, ka IBAction faktiski nav veids.
Tas faktiski hashtag definēts kaut būt spēkā neesošu,
un atkal, tas ir tikai mājiens uz Xcode, kas saka
Es gribu šo būt notikumu apdarinātājs, un mēs redzēsim, kāpēc tikai sekundi.
Ja šī poga tiek nospiesta es esmu gatavojas darīt kaut kaitinošas
patīk rādīt uznirstošo.
>> Lai to izdarītu, es varētu izveidot jaunu šīs klases instanci sauc UIAlertView,
un tas ir klases, ka Apple rakstīja, ka gatavojas parādīt kaitinošas logus.
Mēs to saucam par uznirstošo brīdinājumu, un man ir 2 soļus, atcerieties, lai radītu šo objektu.
Pirmā lieta man ir nepieciešams darīt, ir piešķirt telpu.
Es gribu UIAlertView.
Es gribu piešķirt telpu. Tas ir mans pirmais metode.
Mans nākamais metode ir es gribu, lai sāktu to,
un tāpēc man ir šī lielā, ilgi metodi sauc initWithTitle.
Tas ir būtībā gatavojas kontrolēt, ko šis uznirstošo saka.
Mana Popup nosaukums var būt sveiki.
Lai šis uznirstošo ziņojumu var būt "Šis ir iOS."
Delegāts lieta, es nezinu, kas tas ir.
Teiksim tas nav nekas.
Tagad poga, kas notiek, lai parādās, var teikt kaut ko līdzīgu "Tas tiešām ir,"
un man nav īsti gribu nekādas citas pogas, tāpēc pieņemsim izdzēst to un aizveriet kronšteinu.
>> Labi, es izveidojis papildus vienu. Tur mums iet.
Tas ir, kā es varu izveidot jaunu popup.
Ja es gribu, lai faktiski parādīt uznirstošo es vēlos, lai izsauktu parādīt metodi.
Lai to izdarītu, es varu teikt brīdinājumu un parādīt,
un atkal, automātiskās pabeigšanas bija super jauki.
Ja es aizmirsu, ko tas bija, ja es vienkārši ierakstījāt s,
Es var ritināt šeit izdomāt, kas tas bija,
un tas filtri labi.
Tagad es izveidojis šo jauno popup.
Mēs būsim atpakaļ uz to delegāts nozīmē vēlāk,
un tagad es vēlos teikt, ka es gribu šo metodi karsēt
kad es nospiediet pogu, tāpēc es esmu gatavojas atgriezties uz manu storyboard,
un es gribu tagad pievienot šo IBAction.
Pirmā lieta, jūs vēlaties darīt, ir noklikšķiniet uz pogas.
Kad es nospiediet šo taustiņu es gribu kaut kas notiktu.
Es neesmu gatavojas turiet kontroli.
Es esmu gatavojas noklikšķiniet un velciet no pogas
līdz vairāk nekā šeit, kur ir teikts View Controller.
Mēs varam redzēt, ka tas labi iedegas.
>> Ja es let iet ar manu peli man tagad ir tas uznirstošo nekā šeit, kur man ir dažas iespējas.
Viens no tiem ir notikumi, kas man var reģistrēt.
Tie visi ir no šīm metodēm es deklarēti manā h failu kā IBActions.
Tas ir kā Xcode zina vajadzētu parādīties šajā maz sarakstā,
tā, ka ir tikai mājienu.
Ja es noklikšķiniet uz presēta pogas, es esmu tagad reģistrējies notikuma apdarinātājs.
Jo JavaScript mums bija, ka man ir daži kodu, kas reģistrēta notikuma apdarinātājs.
Mērķa-C tas bija tiešām tik vienkārši.
Ja es palaist šo vēlreiz
Tagad, kad es nospiediet pogu mans notikumu apdarinātājs gatavojas uguns,
un es esmu gatavojas saņemt šo uznirstošo.
Super, super vienkārši tur.
>> Ja jūs kādreiz vēlaties redzēt visus notikumus, kas ir reģistrētas
uz sastāvdaļu, ja es noklikšķiniet uz šīs pogas
un es nāk vairāk nekā šeit uz labo pusi
Vispirms jūs varat redzēt vairāk nekā šeit es varētu darīt lietas, piemēram, kāda veida pogas,
tādēļ, ja jūs vēlaties viens no tiem, ko es devēja vai pievienot kontaktu pogu
vai neatkarīgi.
Ja es vēlos redzēt visus notikumus, kas ir uz šīs pogas
ja es nāk visu ceļu pāri šeit uz labo pusi
mēs varam redzēt šeit notikumiem man ir visas šīs dažādiem notikumiem.
Es var nospiest pogu, kad es let aiziet no pogas, kad es divreiz krānu vai neatkarīgi,
un viens es tikko reģistrēts tas ir notikums sauc Touch up iekšpusē,
un tas saka, ka, tiklīdz mana pirkstu nāk off poga
ka pasākums notiek ar uguni, un tas ir tieši tas, kas tikko notika.
Tas ir sava veida noklusējuma poga nospiesta notikumu.
>> Kādi jautājumi līdz šim?
Labi, ka ir, kā mēs varam sākt ar vadu lietas mūsu kodu
vērā lietas iekšpusē mūsu interfeisu.
Atcerieties pirmā lieta, mums bija darīt bija atrast kodu,
un tad mēs vadu veido saskarni ar kodu,
un tur ir mūsu pirmā app.
Labi, ka bija tiešām forši, un mēs izveidojām šo pogu.
Ko darīt, ja mēs negribam, lai būtu izveidot ķekars īpašību
pārstāvot šīs pogas?
Piemēram, Tic Tac Toe Man ir 9 pogas,
un tas lūdzu būt super, super kaitinošas ir vilkt un nomest 9 reizes
vai, ja man bija darīt Tic Tac Toe ar 81 nevis no 9
un man bija vilkt un nomest 81 reizes, un tas ir klibs.
Ko mēs varam darīt tā vietā, ir daudz, piemēram, HTML
kad mums bija lietas, piemēram, identifikācijas datus un vārdus, un mēs varam meklēt lietas
pēc to ID, tur līdzīga iOS jēdziens sauc tagus.
>> Tag ir vienkārši unikāls ciparu identifikators sastāvdaļa.
Ja es saku ir tag ir 0, piemēram,
ja es izveidotu pogu un piešķir tai tag ir 0, un mēs redzēsim, kā to darīt, ka tikai otrajā,
ja es gribu, lai iegūtu, ka poga es varētu vienkārši teikt, es vēlos, lai izsauktu
the viewWithTag metodi uz objekta nekā šeit,
the self.view, kas pārstāv pašreizējo ekrānu, piemēram.
Ja es zvanu, ka viewWithTag metodi, es esmu gatavojas pull atpakaļ pogu ar 0 tag.
Pieņemsim to apskatīt, attīstot Tic Tac Toe.
Pirmkārt, tas ir mans storyboard.
Es esmu izveidojis šos 10 UI pogas.
Pamanīt viņi visi vienāda izmēra.
Ja es noklikšķiniet uz viena no šiem, un es atgriezties nekā šeit uz šo labajā pusē
jūs redzēsiet es koriģē fontu šeit, tāpēc es fontu mazliet lielāks,
bet ko es arī darīju, bija es noteikti šo birku.
Es teicu, ka tas ir tag 1, un tas ir augšpusē pa kreisi.
>> Tagad, ja es noklikšķiniet uz citas pogas, piemēram, šo otru šeit,
Tagad jūs redzēsiet, ka mans tag ir 2.
Katrs no šiem taustiņiem vienkārši ir unikāls tag,
un tāpēc tas ir vēlāk, kā es esmu gatavojas sākt sadarboties
ar manu app.
Tas viss ir iekšā no viena skata kontrolieris,
bet šeit ir tas, ko mēs esam.
Mums ir 3 īpašības šeit.
Pirmais un pēdējais gatavojas pārstāvēt valsts mana kuģa.
Būtībā šis pirmais ir masīvs, kas pārstāv kur Xs un Os ir.
Tas otrs šeit stāsta, kuras kārta ir.
Jūs pamanīsiet, ka arī man ir šīs lietas šeit.
Pirms kad mēs paziņoja īpašības, mēs viņiem deva vārdu un veidu.
Mēs varam arī sniegt viņiem papildu informāciju šeit.
Šis pirmais saka nonatomic, un ko tas saka
būtībā tikai viena lieta jebkad tiks mēģina piekļūt šo mainīgo laikā.
Jūs varētu darīt vairāk sarežģītas programmas, kas ir multi-vītņotiem,
un tāpēc atpakaļ Scratch mums bija dažādas tēmas,
un dažādas sprites varētu darīt dažādas lietas, tajā pašā laikā.
>> Ja tas nav noticis, kas nav kaut kas, ka mēs būsim apskatot,
ja mēs sakām nonatomic tas tiešām gatavojas darīt lietas nedaudz ātrāk.
Mums arī ir šī lieta, ko sauc piešķiršana, stipra, vai vāja.
Tas piešķirtu tikai saka, ka tas ir standarta tipa.
Tas nav objekts vai rādītājs, jo tas ir tikai loģiska,
tāpēc loģiska ir iebūvēts Mērķis-C.
Šis saka, nav mēģināt darīt kaut ko fancy ar norādes šeit.
Tas ir regulārs vecs scaler.
Spēcīga un vāja, tas vāja saka, ka faktiski
Es vēlas, lai tas norāda uz kaut ko skata kontrolieris.
Es neesmu gatavojas faktiski piešķirt vai init šo sevi.
Interfeiss celtnieks, kad es palaist app, gatavojas rīkoties visu šo inicializāciju.
Ja es saku vāja, ka saka kāds cits tiks veidojot šo.
Ja es saku spēcīgs, tas saka, ka es esmu būs viens
kas ir radot šajā valdē objektu,
un tāpēc šeit man ir daži vairāk metodes šeit,
Piemēram, prasība, kad jaunā spēle poga tiek nospiesta,
prasība par kad kāds no pārējiem pogas ir nospiests,
un uc.
>> Mēs ne iekļuvuši pārāk daudz loģikas Tic Tac Toe,
lai gan tas ir ļoti aizraujoši, bet pieņemsim apskatīt
dažas no lietām, ko mēs varam darīt iekšpusē iOS.
Šī jaunā spēle metode būs karsēt
kad es nospiediet jaunu spēli pogu.
Lai āķis, ka līdz es vienkārši nākt uz manu storyboard.
Es noklikšķinājis uz jaunu spēli.
Ja es nāk vairāk nekā šeit uz labo es redzu, ka
Pieskarties iekšpusē ir vadu uz newGame metodi.
Tieši tāpēc tas ir gatavojas saņemt karsētie.
The newGame metode būs darīt kādu iestatīšanu.
Tas notiek, lai teikt, es gribu, lai jūs skaidri stāvokli kuģa.
Šī ir jauka metode uz mainīgs masīvi.
Tas ir gatavojas teikt, tas ir tagad X kārta,
un tagad es esmu gatavojas izmantot šo viewWithTag lieta.
>> Es zinu, ka mans pogas ir tagus 1-9,
un tas ir kaut kas es patvaļīgi paņēmu.
Ja es gribu, lai teksts par katru pogu būt tukšs
jo es tikko sāku jaunu spēli, un es negribu
Xs vai OS atstāt pāri es varu darīt.
Es varu teikt, es gribu skatu ar tagu, 1, 2, 3, 4 un tā tālāk.
Tas pull dažādas pogas katru reizi.
Šeit es esmu gatavojas nodot to UIButton.
Tāpat kā mēs varētu likt Ints ar pludiņu un vice versa
Tas saka, ka es gribu nodot šo uz UIButton.
Tas nozīmē, šī veida būs UIButton *
jo norādes, bet neuztraucieties, viņi nav biedējošu vairs.
>> Kad man ir šī poga es esmu gatavojas aicināt metodi par to.
Šī metode tiek saukta setTitle forState, un tāpēc šis saka
Es gribu, lai teksts uz pogas būt tukša virkne,
un es gribu, lai to tukša virkne, kad tas nav nospiests.
Ja es esmu, izmantojot šo metodi, es varētu mainīt tekstu pogas
tiklīdz kāds hits, bet mēs gribam pateikt, kad poga ir tikai sēž tur
Es gribu teksts ir tukša.
Visbeidzot, mēs ejam, lai sāktu mana kuģa,
un es esmu gatavojas teikt, ka viss šobrīd ir 0,
tāpēc šis valdes locekļi negrozāma ir mainīgs masīvs,
kas nozīmē, ka es varu piezvanīt addObject metodi un tikai 0 iekšpusē no tā.
Tas, kas notiek, kad es izveidoju jaunu spēli.
>> Pieņemsim to apskatīt vienu citu.
Šī metode šeit ir IBAction kas būs nospiesta
Katru reizi, kad kāds no šiem laukumiem tiek nospiests.
Tagad mums ir daži Tic Tac Toe loģika šeit.
Mēs izdomāt, kuras kārta ir,
un, pamatojoties uz to mēs vai nu noteikt X vai O,
taču mēs pamanām, ka mēs atkārtoti šo pašu notikumu apdarinātājs
par katru vienu no šiem taustiņiem.
Tas nozīmē, ka man nav metodi augšējā kreisajā pogu,
atšķirīgu metodi labajā apakšējā poga, kaut gan es varētu būt darījuši.
Tas nav īsti būt labs dizains.
Ko es daru šeit ir es esmu patiešām gatavojas noteikt
kāda no pogas, kas tika nospiests tag ir.
Jūs ievērosiet, ka šī spēle metode ņem vienu argumentu.
To sauc sūtītājs, un ko sūtītājs ir sūtītājs gatavojas
pārstāvētu tieši to bija veikušas pasākumus pēc.
Ja es nospiediet pogu, šis sūtītājs būs, ka UIButton
ka es tiešām nospiests, lai tas nozīmē, ka UIButton
ir birku, jo es izveidojis tag.
>> Ja es vēlos saņemt pie tag es varētu vienkārši pateikt
Es gribu tagu sūtītāja,
un atkal, es esmu tikko izliets to uz UIButton.
Es zinu, ka sūtītājs būs UIButton.
Tas ne vienmēr ir jābūt UIButton.
Es varētu, piemēram, reģistrēt to pašu notikumu apdarinātājs
vienam par pogu, viena slīdni.
Šajā gadījumā, es zinu, ka viņi visas pogas, tāpēc es esmu gatavojas teikt
Es vēlos lai tas būtu pogu, un tad es varu saņemt tag,
un no taga es tagad zinu, kur es esmu iekšā kuģa.
Tad es varētu vienkārši noteikt vai nu X vai O, var uzsist savukārt,
pārbauda, ​​kurš ir uzvarējis, uc.
>> Visus jautājumus par šo līdz šim?
Labi, visi kodu mēs ievietojis internetā, mēs negribam, lai nokļūt pārāk daudz
no Tic Tac Toe loģiku, bet tagad jūs varat redzēt, ka patiešām
visi mēs darām, ir mēs looping par šo masīvs,
tāpēc mums ir pāris uz cilpas šeit, un mēs esam tikai salīdzinot redzēt
mums ir maču visās rindās, mača kolonnā vai kaut kā tā.
Lai tiešām palaist šo app, ja es pieskarieties uz vienu no šīm pogām
kas spēlē metode tika atlaists, lai tas nozīmē, es tikai noteikt
pogu, lai būtu X, tāpēc tagad šī poga būs O, un tā tālāk,
un tā tas ir, kā mēs sākam sadarboties ar šo vienu lapu app.
>> Mēs post kodu, lai justies brīvi iepazīties ka,
bet pieņemsim tagad runāt par dažām lietotnēm, kas ir vairāk nekā tikai vienu lapu.
Tikpat aizraujoša kā Tic Tac Toe bija daudz progr iekšpusē iOS
ir sava veida šo urbja paredz lietas ar vairākiem ekrāniem.
Pirmais jēdziens, kas mums būs jārunā par ir protokoli,
un protokols ir vienkārši metožu kopums
ka jūs varat apsolīt definēt.
Ja es izveidotu šo jauno protokolu ar 2 metodēm, šī pirmā,
ja atgriešanās tips ir anulēts, es to sauca foo.
Tas aizņem nav argumentu. Man ir citu metodi.
Tā atgriež int. Es sauc to joslā, un tas aizņem vienu argumentu.
Viss šis protokols ka sauc SomeProtocol šeit,
Tas ir kopums lietas, ka kāds varētu īstenot.
Man nav iekšā šī protokola teica to foo dara.
Tā vietā, es tikai saku, jūs varētu noteikt foo ja vēlaties.
Ja es esmu radot skata kontrolieris vai radot klasi
Es varu iekšā šajā klasē solījumu īstenot
dažas no šīm metodēm, tā, piemēram, ja saka
tagad tas saka, ka es esmu padarot solījumu jums, ka iekšā
Šīs view kontroliera klasē man būs definīcijas gan foo un bāru.
>> Kāpēc ir tā, ka noderīga?
Komponentu iekšpusē iOS partijas izmantot šo
dizaina modelis sauc delegāciju, un ko delegācija saka
ir tā, ka, piemēram, ja man ir teksta lodziņu
un tur ir daži notikumi, kas varētu tikt reģistrēti iekšpusē manu Tekstlodziņā
nevis radot atsevišķus pasākumus, ko es varu darīt, ir es varu teikt
Šīs tekstlodziņa delegāts būs kādu objektu.
Kad es saku, ka tas ir delegāts tagad tas nozīmē, ka
kad kāds notikums būtu dedzināta tekstlodziņā
nevis to reģistrēt, nekādas tādas
tas ir tikai gatavojas, lai izsauktu metodi uz delegāts.
Piemēram, iekšpusē mana tekstlodziņa Man ir metode, kad es nospiediet
kas izdarīts pogu apakšējā labajā,
un tā vietā, reģistrējoties notikuma apdarinātājs, ko es varu teikt, ir
tekstlodziņš, šeit ir objekts, kas es gribu jūs aicināt metodi par
Katru reizi, kad kāds nospiež pogu Gat,
un tas nozīmē, ka objekts ir, lai īstenotu dažus protokolu
ka saka, ka es apsolu, lai definētu, ka darīts pogas darbība,
jo, ja tas nav noteikts, ka metode, un jūs nospiediet Done,
tad tas būs mulsinoši.
>> Pieņemsim apskatīt piemērs.
Šeit es vienkārši ir viens tekstlodziņu,
un viens no šīs tekstlodziņā īpašībām nekā šeit uz labajā pusē ir delegāts.
Tas ir īpašums klasē.
Ko es darīju šeit ir kontrolēt noklikšķinājuši, un es vilka no šīs vietas nekā šeit
līdz skats kontrolieris, un kas saka tagad delegātu šajā tekstlodziņā
būs skats kontrolieris.
Tas nozīmē, ka tad, kad daži pasākumi notiks, nevis reģistrējot
atsevišķas notikumu apstrādes Es gribu, lai jūs sūtīt tos uz delegātu.
Tagad pieņemsim apskatīt manu viedokli kontrolieris.
Iekšpusē. H failu es esmu solījums.
Es esmu apsolījis īstenot dažas metodes iekšpuses šo protokolu
sauc UITextFieldDelegate, un atkal,
tas ir tikai daži saraksts ar dažām lietām, kas man varētu izvēlēties īstenot.
>> Ja es šeit ierodas manā. M failu, man ir īstenojušas vienu šādu metodi.
Es esmu to sauca textFieldShouldReturn
jo tas, ko tā sauca iekšā protokola.
Un tagad, kad es nospiediet pogu Gat iekšpusē šī teksta laukā
tas ir tas, kas notiek, lai get sauc, tāpēc man nav reģistrēt notikuma apdarinātājs.
Es pievienoju delegātu, un ja šis notikums tiek kurināti
šī ir metode, kas būs get sauc, tāpēc, ja es nāk vairāk nekā šeit uz manu storyboard un palaist to-
bet iekraušanas mēs varam redzēt, ko tas dara.
Ekrānā man ir 2 lietas.
Man ir šī teksta lauku, un es šo etiķeti.
Es esmu vienkārši sakot, es gribu tekstu šīs etiķetes
jābūt vienādam ar neatkarīgi lietotājs drukāti iekšpusē teksta laukā.
Šis nākamais līnija šeit ir vienkārši metode, ka es esmu aicinot
uz teksta lauka, kas saka es gribu, lai jūs slēpt tastatūru.
Tas ir tikai patvaļīgi metode ka Apple izvēlējās.
>> Atkal, pirms es darīju kaut man bija vadu viss uz augšu, tāpēc es pirmo nāca pāri šeit.
No skata kontrolieris man vilkt pāri teksta lodziņā.
Es let iet, un es redzu, ka es varētu darīt šo teksta lauka rekvizītu
jo vairāk nekā šeit skata kontrolieris es esmu noteikti īpašumu
ka ir IBOutlet no teksta lauka.
Šis saka, ka es varētu wire īpašumu augšu
teksta laukā manā UI.
Tagad, kad es noklikšķiniet šo es varētu sākt rakstīt.
Tagad, ja es noklikšķiniet uz pogas Gatavs tas notiek, lai ugunsgrēka
notikums, kas es tagad var reaģēt.
Nav notikumu apstrādes.
Tas ir, kā es tikko atbildēja uz šo darīts pogu.
Jēga?
>> Tas nav dizaina modelis, kas, iespējams, kādreiz atrast sev
izveidojot savu protokolu, bet tikai zinu, ka daži
dažādi iOS komponenti reģistrēt notikumus dažādos veidos.
Pogas, piemēram, izmantot šos IBActions.
Teksta lauki, no otras puses, gatavojas izmantot delegātiem.
Mēs varam redzēt, un jūs varat apskatīt visu šo up iekšpusē dokumentāciju.
Starp citu, tur ir tiešām no UI stuff ton iebūvēts iOS par jums,
tā, piemēram, kā es, ka saku darīts labajā apakšējā
tiek es izvēlējos šo teksta lauku.
Man nāca pāri šeit.
Es apskatus mazliet atgriezties atslēgu,
un es faktiski var veikt šo visu ķekars lietas, piemēram, ja es gribu, ka teikt
Ārkārtas zvana vietā es varētu darīt, kas ir pilnīgi nejauši,
un es nezinu, kāpēc tur ir iebūvēts ārkārtas zvanu poga,
bet tur, tas saka ārkārtas zvaniem patiešām maziem burtiem.
Tur jums iet.
>> Noteikti izpētīt visas šīs dažādās iespējām iOS.
Kādi jautājumi par delegātu?
Atkal, tāpat interesanta dizaina modelis, kas jums ir jāapzinās.
Labi, pieņemsim nākamā apskatīt galda viedokli.
Tabulā ir būtībā, ka saraksts kas ir visas vietā iOS.
Kad esat flipping cauri visiem saviem kontaktiem, jūs meklējat pie
nosakot lapā, un ka sarakstu lietas veida sauc galda viedokli.
Īstenojot tabulas skatu iOS ir diezgan vienkāršs.
Tā vietā, lai klase, kas nolaižas no šī UIViewController
kā mēs esam darījuši, pirms mēs vienkārši jāpasaka, nevis
viss UIViewController tas ko es gribu darīt,
Es saku viss UITableViewController tas ko es gribu darīt,
lai vienkārši piebilst dažas papildu lietas, kas ir pilnīgi darīts, lai mums.
Mums jādara ļoti maz, lai būtībā aizpildīt iekšpusē tabulas sagataves.
>> Lai parādītu tabulu man ir nepieciešams, lai atbildētu uz dažiem jautājumiem.
Pirmais jautājums man ir nepieciešams, lai atbildētu, ir, cik daudz sadaļas ir tabulā?
Kad esat flipping caur jūsu kontaktu app jūs ievērosiet, ka tas ir sava veida
organizēja Kā, tad jums ir BS, un jums ir, ka maz sub galvenes.
Katrs no tiem sauc sadaļā.
Jūs var vai nevar nepieciešams šos.
Pirmā lieta, kas jums jādara, ir īstenot metodi
sauc Tableview: numberOfSectionsInTableView.
Tas vienkārši atgriež cik sadaļas jums ir,
tā tas varētu teikt atgriezties vienu, ja jums ir viens liels tabulu skatu.
Nākamais jautājums, kas iOS ir jāzina, cik daudz rindu jums ir?
Piemēram, jūs esat flipping caur tabulas skatā.
Jums ir fiksēts vairākas dziesmas, jūs meklējat pie vai fiksētu kontaktu skaita.
Ja jūs esat man, protams, nav tik daudz,
un tādējādi, kā iOS zina, cik daudz šūnu parādīt.
>> Atkal, tas varētu teikt kaut ko līdzīgu 3 pretī.
Mana galda viedoklis ir 3 rindas.
Visbeidzot, iOS nepieciešams zināt, ko katra šūna izskatās,
lai ko tas faktiski gatavojas darīt, ir zvanīt šo metodi šeit lejā,
šo tabulas: cellForRowAtIndexPath.
Tas notiek, lai izsauktu šo metodi, par katru šūnu iekšpusē jūsu galda.
Kā tas zina, cik reizes to nosaukt?
Nu, jūs teicis tā iekšpusē rindu skaitu sadaļā.
Mēs ejam, lai izsauktu šo par katru no mūsu šūnām,
un iekšpusē tas ir, ja jūs faktiski var darīt lietas, piemēram,
noteikt tekstu vai pateikt to, ka maz zilo pogu labajā pusē dara.
Modelis, lai iegūtu šīs šūnas, mēs spēsim izmantot šo metodi
sauc dequeueReusableCellWithIdentifier.
>> Mērķis-C ir tiešām ļoti labi zināms par smieklīgu garumam metodi vārdus,
un tas ir patiešām jauks gadījums piemērs.
Ko šī metode dara tas ir tikai saka, ka es gribu, lai jūs man šūnu.
Tikai iOS lieta.
Ja jums ir kaut kas līdzīgs 100.000 dziesmas uz jūsu iPod
ko iOS nevēlas to darīt, ir piešķirt 100,000 šūnas,
jo, ja tu esi augšā savu sarakstu, jums tiešām ir nepieciešams piešķirt atmiņu
par šūnas, kas ir 99.000 rindas uz leju?
Nē, jo, kā jūs ritinot varat veida piešķirt kā jums iet līdzi.
Tas tiek darīts jums.
Jums nav jāuztraucas par visu, kas stulba snieguma sīkumi.
Viss, kas Jums pateikt, ir jums zvana šo metodi dequeueReusableCellWithIdentifier,
un tas saka, labi, ja jums ir nepieciešams, lai es esmu gatavojas izveidot jaunu šūnu jums.
>> Bet, ja tu esi apakšā galda un esat jau piešķirti aptuveni šūnas
augšpusē tabulas, ka jūs tiešām nav būs nepieciešama jebkurā tuvākajā
Es esmu gatavojas sniegt jums vienu no tiem atpakaļ vietā piešķirot jaunu,
un tāpēc tas ir jauki sniegumu bažas.
Jums nav jāpiešķir šūnas sevi.
Kas notiek, lai dotu jums atpakaļ šūnu.
Tas notiek, lai atgrieztos pie jums šūnu objektu.
Kad esat šūnu objektu jūs varat darīt lietas ar to.
Jūs varat iestatīt tekstu šūnā ar šo īpašumu sauc teksta etiķeti.
Jūs varat pievienot šo bultiņas uz tiesību vai kādu citu izlases stuff
ar šo citu īpašumu sauc accessoryType, un tā tālāk un tā tālāk.
>> Pieņemsim to apskatīt faktiski īsteno galda viedokli tagad.
Kad es izveidojis šo projektu
nevis pasakot vienā skatā pieteikumu es tiešām nāca pār šeit
līdz meistars-detail pieteikumu, un tāpēc būtībā tas atbilst pasta app
par iPad ar tabulas kreisajā skatu un pēc tam par tiesībām saturu.
Par iPod vai iPhone tas notiek, lai atbilstu viena galda skatā.
Tas ir, ja es saņēmu savu startera kodu.
>> Pieņemsim vispirms to apskatīt storyboard.
Tas viss tika darīts attiecībā uz mani, būtībā radīja.
Šī navigācijas josla man parādīja, ko piemērs šūnas varētu izskatīties,
un es varētu dubultklikšķi tas, mainīt nosaukumu.
Jebkuri citi UI bažas es varētu rīkoties tur.
Header failu izskatās ļoti vienkārša.
Nevis sakot, tas ir UIViewController mēs tagad sakot, tas ir
TableViewController, tāpēc mēs zinām, ka mēs vēlamies aicināt visus šos tabulu metodes.
Tālāk es gribu izveidot īpašumu, kas notiek, lai pārstāvētu
lietas iekšpusē mana galda.
Šī tabula ir gatavojas patvaļīgi parādītu
sarakstu augļu, un tāpēc man ir nepieciešams, lai izveidotu kādu masīvu
, kurā es varētu ievietot augļus.
Iekšā manas īstenošanas failu Pirmais, ko es gribu darīt
ir es gribu, lai pārliecinātos, es sāktu šo masīvu.
>> Es teicu alloc Pr, izveidojis savu augļu masīvs,
un es esmu pievienojot 4 lietas ar to, no kuriem viens ir daudz pretrunīgu nekā pārējās 3.
Un tagad man ir masīvs 4 izmērs.
Mēs kratot to uz augšu CS50.
Man tagad ir masīvs 4 izmērs.
Tagad es esmu gatavojas sākt atbildēt uz šiem jautājumiem, un faktiski,
kad es izveidojis šo app tas viss tika izdarīts par mani.
Man nav rakstīt out sekciju skaits tabulas skatā.
Tas bija jau tur, un es esmu aizpildot veidlapas.
Cik sadaļas man ir?
Viens. Visu izdarīt.
Cik rindas man ir?
Nu, man ir viena rinda par katru augļu, tāpēc šis skaits
ir īpašums jebkuru masīvu, kas saka, cik liels tas ir?
Tas ir, cik rindas man ir.
Visbeidzot, man ir nepieciešams pateikt, ko tas katru šūnu izskatās?
Es esmu gatavojas teikt dequeueReusableCellWithIdentifier.
>> Atkal, tas bija jau rakstīts par mani.
Man nebija darīt sevi, un es vēlos, lai saņemtu atpakaļ
Šis mobilais šajā vietā.
Atcerieties, ka mēs esam aicinot šo pašu metodi, par katru šūnu,
un šis arguments šeit, tas indexPath arguments,
saka to rinda es esmu iekšā
Ja es saku indexPath.row leju šeit
tas būs 0, tad tas būs 1, tad tas būs 2, un tas ir, lai es zinu
ko mobilo es esmu šobrīd izlikšana.
Es gribu, lai noteiktu no šūnas tekstu, izmantojot šo TekstaIezīme īpašumu
iet iekšā manu augļu masīvā un saņemt
objekts atbilst katras rindas.
Ja tas ir virkne, es esmu tagad nosakot
teksts īpašumu virkni.
Es varu darīt viena cita lieta.
Es varu arī reģistrēt notikuma apdarinātājs par katru šūnu,
tāpēc, kad es pieskarieties katram no šīm šūnām
Šī didSelectRowAtIndexPath, tas tiks saukts par mani,
tik vienkārši nosakot šo es tagad var rīkoties, kas notiek
kad jūs pieskarieties šūnu, un atkal, mēs esam iet kurā šūna tika spiešanai
lai mēs varētu atkārtoti šo pašu notikumu apdarinātājs visiem mūsu šūnām.
>> Atkal, tas ir kaut kas iOS dara par mani.
Pieņemsim parādīt citu kaitinošas uznirstošo
kas vienkārši saka jums ir palielinājies kaut kur kaut kas
būs rinda objektu.
Kad es palaist šo, es esmu nāksies šo jauku tabulu skatu
ar vienu rindu katram no šiem augļiem, un ja es pieskarieties vienam
tas stāsta man, kas ir noticis.
Jēga?
Veidosim mazliet sarežģītāka par app,
tik daudz, kā noklikšķinot jūs noplūktiem tomātus.
Jauka daļa par storyboarding
ir tas nav tikai gatavojas, lai palīdzētu mums dizains ekrāniem individuāli,
tas arī notiek, lai palīdzētu mums tie kopā visa mūsu app,
tāpēc galīgais app mēs būsim ēka ir tas jauki sporta ziņu lasītājs,
un tā tas notiek, lai ir vairākas ekrāniem, un tāpēc es patiesībā var pārstāvēt
Katrs no šiem vairākiem ekrāniem uz storyboard,
un es varētu attālināt un redzēt manu app no ​​augstā līmenī.
>> Lai izveidotu jaunu elementu iekšpusē manu storyboard
tas ir patiešām vienkārši iekšpusē Interface Builder.
Ja es gribu, lai pievienotu citu ekrānu tas, piemēram,
Es var vispirms tālināt ar šķipsnu tālummaiņu ka Apple mīl tik daudz,
un noteikti šeit pirms es meklēt pogu
un es vilkt un nomest pogu
ja es gribu, lai izveidotu jaunu ekrānu es patiesībā var tikai vilkt un nomest
viss skats kontrolieris, tāpēc, ja es izvēlētos šo, velciet to vairāk nekā šeit,
hey, tur ir cits ekrāns, un tāpēc tagad, izmantojot šo pašu storyboard failu
Es varu būt visas iekšpusē manu app ekrāniem, un es varētu attālināt
un redzēt, kā tie mijiedarbojas.
Tie būs ne mijiedarbība vēl.
Veids, kā šie 2 ekrāniem mijiedarbojas ir jums noteikt attiecības.
Jūs varat būtībā teikt šo ekrānu, nospiežot šo pogu,
Es gribu, lai jūs slaidu pār šo jauno ekrānu.
Tas nozīmē, ka tas ir par attiecībām starp veida
Pirmais ekrāns un otrā ekrāna.
Jums ir būtībā bultu no šīs pogas uz otrā ekrāna
sakot, ka tad, kad jūs nospiediet šo taustiņu, kas ir, ja es gribu iet.
Tāpat kā mēs kontrole uzklikšķināt un vilka definēt šos noieta
mēs esam gatavojas darīt to pašu, lai definētu šīs segues.
>> Mēs redzam piemēru par to, un, pirms mēs patiesībā pāreja
no viena ekrāna uz citu iOS ir jauka pietiekami, lai izsauktu šo metodi
sauc prepareForSegue, un tas ir tas, kur mēs varam sākt
nosūtot datus no viena app uz otru.
Piemērā mēs esam par to apskatīt to būs pamatā ļaus mums
lai filtrētu beisbola komandas ar līgu un tās sašķeltība.
Kad es izvēlētos līgā, piemēram, es gribu pāreja
uz manu nākamo ekrānu, kur es varētu parādīt visu nodaļu
šajā līgā, vai visas dažādās komandās.
Man vajag, lai nosūtītu uz šo ekrānu, ko komandas jums vajadzētu parādīt.
Lai to izdarītu, es esmu gatavojas izmantot šo metodi šeit.
>> Visbeidzot, tikai izlases punkts uz iOS.
Ja jūs vēlaties, lai uzglabātu datus tur ir šo lietu sauc pamatdati,
kas ir faktiski veida sarežģīti strādāt.
Jūs varat arī izmantot SQL datu glabāšanai,
kas, atkal, ir jauka, bet sava veida uz sarežģītāku puses strādāt,
bet iOS arī atbalsta šos tiešām atdzist lietas, ko sauc īpašuma sarakstus,
un īpašumu saraksts ir tikai fails, kas pārstāv galvenās vērtības pārus.
Jūs definētu sarakstu atslēgas, un jūs sakāt šī atslēga būs masīvs.
Šī atslēga būs stīgu, un būtībā visu, ko jūs varat darīt
JSON jūs varat darīt iekšpusē īpašuma sarakstu,
un tā tas tiešām labi ļauj mums strādāt ar dažiem datiem.
Piemēram, man ir šī Teams.plist ka esmu izveidojis.
Es izveidojis jaunu plist failu, un es varētu urbt uz leju.
Tas ir vārdnīca, tas ir vārdnīca, tie ir stīgas,
un tāpēc tas ir jauki grafisks JSON dokumentu
vai tikai par galvenajiem vērtību pāriem,
un tā tas ir dati, ka es būšu strādā ar iekšpusē manu app.
>> Pieņemsim vispirms nāk vairāk nekā šeit. Mums ir daudz vairāk failus tagad.
Bet pieņemsim vispirms nāk vairāk nekā šeit uz storyboard.
Montāžas šeit-ja es varētu tālinātu-
tagad mēs varam redzēt, ka tas ir plūsma manu app.
Es esmu 1. gatavojas sākt šo ekrānu.
Es esmu gatavojas urbt uz leju, lai šo ekrānu,
un es esmu gatavojas, lai urbt uz leju, lai šo ekrānu, un mēs varam redzēt šeit, ka, ja es veida
pārvietot vienu no šiem ap mēs esam šīs bultas iet no šeit šeit,
un kā es noteikt, ka bultiņas bija, ja es tuvinātu mazliet,
un, ja es nāk pāri uz šo skatu kontrolieris,
un šeit ir šūna, un es gribu teikt, ka tad, kad jūs pieskarieties šūnu
Es gribu, lai jūs slaidu pāri uz citu ekrānu.
Es varētu vienkārši turēt kontroli,
ritināt pa mazliet, turiet kontroli, velciet šo šūnu pāri un ļaut aiziet.
>> Un vairāk nekā šeit mēs sakām, kas ir pāreja, kas jūs vēlaties izmantot?
Vai jūs vēlaties izmantot šo slaidu lieta, ka sauc push?
Vai jūs vēlaties, lai slaidu uz augšu no apakšas?
Ka sauc modālā.
Un, kad es noklikšķiniet uz viena no šiem, tas notiek, lai pievērstu šīs bultiņas uz mani,
un tas nozīmē, ka es esmu patiešām jārīkojas, kas notiek, kad es nospiediet šo taustiņu grafiski.
Man nav rakstīt jebkuru kodu faktiski slīdēt no viena ekrāna uz nākamo.
Es noteikti tas vizuāli iekšpusē Interface Builder.
Ja es noklikšķiniet uz šīs bultiņas, mēs varam redzēt, ka man deva šī lieta vārdu.
Es to nosauca showDivisions, un tas ir tāpēc, ka es varētu zināt
kāda pāreja varētu notikt, un mēs redzēsim, kāpēc tikai sec.
Tas ir, kā es esmu vadu līdz dažādus ekrānus manā app.
Ja tas bija poga, piemēram, nevis tabulas skatu,
Es varētu kontrolēt noklikšķiniet uz pogas, velciet pāri uz nākamo ekrānu,
un tas, kā es varu darīt navigācijas ka veidā.
>> Tiešām ātri, ja mēs nonāk MasterViewController,
atkal, mēs vienkārši gatavojas noteikt sarakstu ar lietām
, kas tiks parādīts tabulā skatā.
Šeit es saku es gribu, lai jūs pieņemt, ka plist failu,
un es gribu, lai jūs slodze to uz vārdnīcu,
un, kad jums ir, ka vārdnīcu, es esmu gatavojas atbildēt uz šiem pašiem jautājumiem atkal.
Šeit ir nodalījumu skaits.
Viens ir viena rinda par katru līgā, un katras šūnas tekstu
jābūt vai nu pirmais, Pirmās līgas, otrajā līgā, un tā tālāk.
Visbeidzot, es esmu gatavojas izmantot šo metodi, mēs tikko redzēju sauc prepareForSegue,
un tas ir metode, kas notiek, lai karsēt, kad es noklikšķiniet
uz vienu no šīm rindām un tāpēc aktivizējot ka pāreja
ka es noteikti ar bultiņām.
Tas ir saprotams, ka man var būt vairāki
attiecības no viena ekrāna uz otru.
Ja man ir 2 pogas un katra poga aizved jūs uz citu ekrānu
Es esmu gatavojas ir 2 segues, 1 katrai pogai.
Bet tas prepareForSegue ir, atkal, tiks atkārtoti
par katru no dažādām attiecībām, lai tas nozīmē, ka man ir nepieciešams veids
identificēt, ja jūs nospiediet pirmo pogu vai nospiežot otro pogu.
>> Atceros, kad man deva šo segue vārdu, šis showDivisions,
tas, kā es tagad zinu, ka tas ir segue kas tika aktivizēts.
Viss, ko es gribu darīt, ir es gribu teikt
Es gribu, lai saprastu, ko es tikko hit,
un tāpēc, lai iegūtu, ka es varu teikt, es gribu indexPath izvēlētā rindā,
atceros indexPath vienkārši saka, kur es tikko noklikšķinājuši,
un tad es gribu teikt, es gribu saprast, kur es esmu,.
Tas destinationViewController, kas ir īpašumā segue.
Tas ir ekrāna es esmu gatavojas,
tāpēc es zinu, ka ekrāns es esmu gatavojas sauc DivisionsViewController
jo es izveidojis šo kategoriju,
un tāpēc tagad, ja es saku d.divisions
Es tagad nosakot mantu skata kontrolieris es esmu par doties.
Tas ir kā es esmu nosūtot datus no viena ekrāna uz citu ekrānu.
>> Tikai apskatot šo DivisionsViewController
Jūs varat redzēt šeit, ka. h failu
tur ir tas, ka īpašuma sadalīšanai, un tas, ko es esmu būtībā aizpildi
Tātad tas, kā es zinu, ka es esmu parādot dalījumu atbilstoši
līga ka es noklikšķinājuši, un atkal,
faktiskais tabulas skatu izskatās diezgan daudz to pašu, tikai atbildot tiem
3 vienkārši jautājumi, kā arī identificējot
kas notiek, ja jūs pārvietot uz nākamo ekrānu.
Tikai pāris citas lietas šeit.
Jūs ievērosiet augšpusē šeit, ka nevis pasakot # ietvert
Es esmu tagad saka # importēt.
Tas ir tikai Mērķis-C lieta.
Importa būtībā jaukāku versija ietver,
un, piemēram, mums ir nepieciešams zināt, ko šī klase ir,
tāpēc es nevaru vienkārši pateikt DivisionsViewController.
Ja mums nebūtu hashtag standardio.c iekšpusē mūsu. C faila
kompilators nebija ne jausmas, kas printf bija.
Tāpat, ja man nav importēt DivisionsViewController
kompilators tiešām nav ne jausmas, ko DivisionsViewController ir.
Tikai pārliecinieties, ka iekšpusē jūsu dažādu. M failiem pārliecinieties importēt
atbilstošie. h failus, lai kompilators zina, kas notiek.
>> Visbeidzot, ko Apple galu galā tas ir parādīt dažus datus, izmantojot tīmekļa skatu,
un tā tīmekļa skats ir objekts, kurā jūs varat iegult
mazliet interneta pārlūku iekšpusē jūsu app.
Viss, kas jums jādara, ir sniegt URL uz jūsu tīmekļa pārlūku,
tāpēc es gribu iet uz mlb.mlb.com,
un tas ir, kā es varu piekļūt mājas lapā par katru komandu,
un tādējādi nokārtojot šis URL
Web skats var parādīt šo man, un es varu pārlūkot ap,
un simulators ir lietots ar šo vienu.
Tagad tas nāca no mana plist.
Ja es noklikšķiniet šis tas arī nāca no mana plist, un šī bīdāmās bija jārīkojas
definējot šo segues.
Es noklikšķiniet šo un vēl vienu,
un tagad šeit ir mana UIWebView, lai tieši tāpat
šeit ir par URL mājas lapu, kas man tikko iegultās,
un man nebija rīkoties kaut traks.
Tas ir veids, kā parādīt tīmekļa lapu.
Lietas, piemēram, šā atpakaļ pogu šeit tiek dota man
pilnīgi bez maksas, jo es esmu noteikti šīs attiecības izmantojot segues.
>> Kādi jautājumi? Yeah.
[Studentu] Tātad, ja jūs izmantojat alloc, jums nekad nav brīvu kaut ko?
Tieši tā, kad jūs zvanu alloc un Pr jums nav, lai atbrīvotu to.
IOS gatavojas rīkoties ar visu, kas jums.
Tas ir brīnišķīgi, un jūs ne nepārkāptu noteikumus. Yeah.
[Studentu] Ja tu būtu iekļaut vairāk komandas, kas varētu fit uz ekrāna,
būtu tas automātiski ir ritināšanas iespēja, vai arī tas ir kaut kas jums ir nepieciešams, lai pievienotu?
Tieši tā, ja man bija vairāk komandas, piemēram, tas varētu automātiski apstrādāt
ritināšanu par mani, un visi veiktspējas bažas
ar milzīgu tabulā ir arī jārīkojas pilnīgi par mani.
>> Citi jautājumi?
Visa šī koda gatavojas publicēt.
Mēs veida noklusēti mazliet vairāk nelielas detaļas,
bet lietas, piemēram nosakot dažas īpašības, lai mājas skatā
ir tikai lietas, ko jūs varat saņemt, pārlūkojot Apple dokumentāciju,
kas ir ļoti, ļoti labi izklāstīts.
Viņiem ir vairāki izlases progr daudz un piemēru paražas
dažādu API, tāpēc noteikti iepazīties tiem, ja jūs varat.
Tikai dažas noderīgas saites jūs varētu vēlēties, lai apskatīt.
Tie ir daži parocīgu dokumentācija gidi.
URL ir milzīgi, lai viņi saīsināts.
Tas pirmais ir visu bibliotēku dokumentācijas.
Ir maz meklēt bāri, tādēļ, ja jūs sākat rakstīt pogu
tas sāks sniedzot jums visu informāciju par visām lietām, ko jūs varat darīt ar pogu.
Es esmu iekļauts arī tabulu skatu Programming Guide.
Tā rokturi galda viedokli daudz sīkāk,
kā darīt lietas, piemēram, dinamiski pievienot šūnas vai rediģētu šūnu vai noņemt.
>> Ir daudz izlases progr no Apple, kas parādīs, kā to darīt,
un visbeidzot, šis pēdējais ir interfeisa pamatnostādnes,
un tas ir pamatā dažiem diskusiju par UI komponenti,
lietas, piemēram, nav padarīt pogu, kas ir 4 pikseļi par 4 pikseļiem.
Tas ir slikta ideja, un citas lietas, kas Apple vēlas, lai jūs darīt
veicināt labu dizainu.
>> Jebkuras pēdējie jautājumi, pirms mēs pabeigt līdz?
Labi, noteikti justies brīvi, we're nāksies īpašas uzlīmes uz diskutēt.
Mums būs iOS vienu, tāpēc noteikti justies brīvi izmantot to.
Ja jūs vēlaties strādāt ar saviem klasesbiedriem par projektiem
vai palīdzēt izrēķināt daži izlases iOS sīkumi
justies brīvi uz e-pastu man, un noteikti iepazīties visu kodu tiešsaistē, jo
vienkārši interesēs laika mēs veida noklusēti vairāk
smalkāka graudainu ziņas par lietām.
Bet ja ne, tad lai jums veicas jūsu iOS projektiem, un es ceru, ka mums ir
liels pieplūdums progr no App Store.
[CS50.TV]