[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]