Tianyu Liu: Hei, kā ir tas iet visiem? Un tas ir iOS App programmēšana objektīvu c seminārā. Un mans vārds ir Tianyu Liu. Es esmu Lowell junioru tieši tagad, koncentrējot datorzinātnēs. Tātad šajā seminārā es esmu gatavojas mācīt jums puiši mazliet par to, kā padarīt app. Yay, satraukti par to. Tātad, pirms mēs pat sākt ar akvalangu vērā faktisko programmēšanas pusē, pieņemsim tikai tiešām ātri runāt kāpēc jūs varētu vēlēties, lai izveidotu iOS app? Kāpēc iOS tik laba? Tā pirmo problēmu, pirmais lieta, kas ir diezgan laba mums, īpaši kā CS50 students, ir tas, ka iOS izmanto Mērķis C. Nu, tur ir jaunu valodu sauc par Swift, bet mēs nebrauksim lietot, ka šajā seminārā. Ja jūs interesē Swift, tur ir neatkarīga semināru par to. Bet mērķis C būtībā superset C. jēgu ka viss jūs izmantojat C var jātulko Mērķis C ļoti viegli. Kā jūs varētu redzēt, vēlāk, ka patiešām ir daži ļoti pamata sintakse, ir būtībā tieši tas pats, C un Mērķis C. Tātad, jo jums ir veikušas CS50 uz augšu tik tālu, jūs jau zina Objective C, vismaz 40%. Arī Apple ir patiešām spēcīgs API iOS. Ir daudz tiešām traks lietas jūs varat darīt ar to. Viens no tiem ir kāds, faktiski izveidota iOS app par kontrolējošo automašīnām, kuras ir diezgan interesants. Iespējams helikopters ir vairāk aizraujošu. Bet tas, cik spēcīgs iOS API var būt. Un, kā jūs varētu būt sapratu, tieši tagad, kaudze pārplūdes iespējams, ir viens no svarīgākie tiešsaistes resursiem pieejams jums. Un laba ziņa, par katru viena problēma, jūs varat iespējams domāju, ka, kamēr ēka savu galīgais projekts Objective C, ir iespējams kaudze pārplūdes atbilde. Tas ir vienkārši awesome. Papildus tam, ka, iOS ir patiešām platforma kur jūs varat sasniegt milzīgs auditorija ar nelielu piepūli. Tas nav tāpat kā Android, kur viss ir diezgan sadrumstalots. Viss iOS ir vienota. Un, kamēr jūs izveidojat app par iPhone, Jūs varat ļoti viegli ports, kas iPad, iPad mini, vai atšķirīgi iPhone izmēri. Tie visi ir ļoti ērti. Un tas ir tikai ļoti labs par iespaidīgām draugus. Jūs varat vienkārši turēt iPhone un pateikt savam draugam hey, tas ir app man darīt. Jūs varat darīt, ka jebkurai desktop apps, kas ir jauki. Labi, tagad pieņemsim faktiski nokļūt attiecīgās valodas mērķa C. Tātad, kāpēc nav mēs sākam ar daži patiešām pamata sintakse. Kā jau iepriekš minēju Mērķis C Tas būtībā superset C. Tik daudz pamata sintaksi ir faktiski tieši tāds pats. Deklarējot mainīgo un pievienojot divus mainīgie kopā ir tieši tā, kā mēs to darījām Mario. Nekas jauns šeit. Tāpat, īrnieks cilpa un nosacījums ir arī tas pats. Jūs varat darīt, lai cilpas tāpat kā jūs ir darīja ar Mario [nedzirdama]. Un jūs varat darīt apstākļus tāpat kā to, ko jūs ir darījuši savās iepriekšējās lpp kopas. Tomēr Mērķis C nav pilnīgi C, un tur ir kaut kas ir sava veida dīvaini par to. Pirmais ir tas, ka tad, kad jūs esat darot C programmēšana, jūs parasti zvanīt ietvert un pēc tam bibliotēka vārds. Bet mērķa C jūs saucat šo importu. Būtībā sakot funkcionalitāti, tikai dažādi nosaukumi. Un stīgas ir tiešām mazliet dīvaini. Jūs varat redzēt, ka pirmais lieta, kas ir sava veida dīvaini ir tas, ka jums ir diezgan weird-- sorry-- jums ir diezgan dīvaini NS paraksta vairāk nekā šeit. Un otrā lieta tas ir sava veida dīvaini ir jums pie zīmi pirms faktiski pasludinot virkni. Tātad pie zīmi būtībā nozīmē ka virkne ir ne tikai virkne, tas faktiski objekts. Mēs ejam, lai izskaidrotu ka vēlāk tā nav panikas, ja jums nav saprast, ko tas nozīmē. Un drukāšana uz konsoles ir mazliet atšķirīga, jo C mēs saucam printf, bet Objective C mēs saucam [nedzirdama]. Jums varētu būt jautājums, kas tas ir. Tas ir būtībā printf, tikai citā valodā. Tieši tas pats lietojums, tieši tādu pašu funkcionalitāti. Nu izrādās, ka Mērķis C faktiski ir baseins ns prefiksu gandrīz viss, katrs pamata datu tips, NSString, nsarray, nsdictionary. Iemesls ir tas, ka ns faktiski nozīmē nākamo soli, kas ir uzņēmums, kas Steve Jobs ir pamatots, kas ir kompānija, kur valoda Mērķis C ir dzimis. Tātad tas ir pamatā tradīcija. Es zinu, tas ir mazliet dīvaini, bet tas ir Apple. Tātad kaut kas ir vēl dīvaināks nekā tas ir funkcija deklarācija. Tas ir ļoti atšķirīgs no tā, ko mēs skat C, jo šeit to faktiski neizskatās kā C vairs. Kas jums ir here-- ar kā tas nav apakšpunkts, tas ir mīnuss zīme. Jums ir mīnus zīme iekavās par spēkā neesošu, un tad funkcijas nosaukums. Pieņemsim tikai teikt, ja mēs ir Hello World, tad atgriešanās tips būtu spēkā neesošu jo mēs atgriešanās nekas. Kas izpaužas patiešām dīvaini ir tas, ka tad, kad jūs esat kam ir vairāk nekā vienu parametru iet uz pašu funkciju, kas būs tiešām dīvaini, kā parādīts šeit. Mums ir metodes nosaukums, aicināja addInt uz [nedzirdama] un mēs iet vienu parametru. Bet pēc tam, mēs esam vairāk metodes nosaukums zvanu ar. Un pēc tam, kad ar mēs garām otrais parametrs. Tas ir faktiski mazliet dīvaini, Bet visi šie funkciju deklarācijas ievēro to pašu modeli kā šis. Mums ir ar mīnus zīmi, lai sāktu ar. Mīnuss zīme varētu būt plus zīmi dažreiz ir balstīti uz kāda veida metodes tas ir. Metode būtībā cits nosaukums funkciju. Un mēs ejam paskaidro, ka vēlāk, kad mēs runājam par objektu programmēšana. Jums vispirms jānorāda atdevi tipa iekšpusē iekavās, pēc tam nāk metodes nosaukums. Jūs esat iet vienu parametru. Un, ja jums ir vairāk parametrus jums ir nepieciešams, lai paplašinātu metodes nosaukums un būtībā rakstīt kaut ko vairāk šeit. Tas varētu būt kaut ko vēlaties. Mūsu gadījumā tas ir ar jums. Bet jūs varētu teikt gala, vai, vai, vai abc pilnu bar, ko jūs vēlaties. Un tad pēc tam tu esi iet parametra b. Tas ir tiešām dīvaini konvencija bet mēs esam dodas, lai redzētu, kāpēc Apple vēlējās to darīt ļoti ātri. Tātad, kā jūs zvanu funkciju? Zvanīšana funkciju Mērķis C ir arī atšķiras no C. Patiesībā, aicinot funkcija Objective C ir vairāk, piemēram, jūs runājat ar kādu. Šeit mums ir sevi, kas sauc objekts. Jūs būtībā stāsta iebilst sevi teikt "Hello World!" Tas ir kā piezvanīt funkciju. Priekšmets un metode vārds apvienota ar otru. Un tas ir, ja dīvaini pagarinājums par metodes nosaukums patiešām sāk spēlēt. Apskatīsim otrajā piemērā. Mēs tikko definēja metodi, ko sauc addInt ar blah blah blah. Tātad šajā gadījumā, kad jūs zvanāt ka īpaša [? īsziņu]? tas notiek izskatīties sevis addInt: 10 ar: 2. Tas izklausās angļu valodā. Kaut funkciju funkcija deklarācija ir dīvaini, punkts Mērķis C gados metode deklarācija modelis, ir tas, ka tad, kad jūs zvanāt funkcija vai metode tas izklausīsies faktisko angļu valodā. Tātad, tas ir ļoti intuitīvs kad jums to. It īpaši, šajā gadījumā, kur jūs varat būtībā redzēt, ka funkcijas nosaukums ir veida dokumentējot sevi. Jums nav nepieciešama nekāda vairāk paskaidrojumu, lai redzētu kas īsti notiek, kādi tieši viens parametrs dara. Pārsniedzot ka, parunāsim mazliet mazliet par objektorientētā programmēšana. Objektorientētā programmēšana viens no pamata programmēšanas metodēm vai modeļi, kas ir ar mērķi C. mērķa C izmantots sauc Mērķis C, ne C, par patiešām labs iemesls. Tātad, pirms mēs nokļūt Mērķis C sintakse, Pieņemsim tiešām ātri apskatīt kas īsti ir objekts. Mēs, iespējams, esam darījuši kaut ko tāpat objektu agrāk, kas sauc struktūrai, ja esat Īstenojot koku vai saistīts saraksts vai [? mēģināt. ?] Tātad, tas ir būtībā kā struktūrai, bet tas ir daudz spēcīgāk nekā. Objekts ir metodes un īpašības. Metodes pamatā funkcijas. Būtībā funkcionē, ​​ka specifiski noteiktu objektu. Un īpašības ir būtībā lauka norādāt šajā struktūrai. Tātad, par katru objektu mums ir dažas mantas ka ir daži mainīgie, kas ir raksturīgi objektu. Un mums ir dažas funkcijas, kas ir arī specifiski uz objektu. Un funkcijas sauc metodes un mainīgos lielumus sauc īpašības. Tas ir tikai modes nosaukumu. Kamēr jūs patiesībā, katru view jūs redzat, kamēr jūs atvērt iOS app, pieņemsim tikai teikt, Twitter vai Facebook, katru skats jūs redzat, ir objekts. Un pat viss app ir objekts, lai sāktu ar. Ļoti interesants jēdziens. Un kāpēc mēs gribam objektu programmēšana? Tātad jūs varat iedomāties, ka tad, kad jūs Programma tā kļūst diezgan sarežģīti. Teiksim tā, ja tu esi Īstenojot chessboard, loģika gatavojas ir tiešām sarežģīta. Jums ir 36 dažādās gabali, tāpēc, ka, ja jūs gribu rakstīt loģiku visiem 36 dažādi gabaliņi šahs, kas notiek, lai būtu daudz dažādas funkcijas un mainīgie. Tas ir daudz nepatikšanas. Un, iespējams, jūs gatavojas rakstīt citu metodi vai citu funkciju attiecībā uz katru no viena gabala, kas tieši kontrolēt to, ko viņi dara. Bet, ja jūs objektorientētā programmēšana, visi no šiem gabaliem var novadītā uz viens objekts. Un objekts būs dažas kopējas īpašības, piemēram, kāda veida gabala tas ir? Kādā krāsā tas ir? Kā tas var pārvietoties? Un tādā veidā Jums ir ļoti vienkāršoja loģiku tā. Tātad tas ir tikai ļoti labs veids veikt sarežģītas programmas, un hierarhiskas attiecības programmas ietvaros, ir ļoti vienkārši. Kā mēs ejam, lai redzētu Tāpēc ļoti ātri, kad mēs faktiski darām programming-- kad mēs esam patiesībā darot S kodu programmēšanas sesiju vēlāk. Labi papildus ka, objektorientētā programmēšana ir tikai daudz jautrības. Tev veidot savu objektu. Jums, lai izstrādātu to, ko dara tā izskatās ar sevi. Nav pareizā atbilde uz to. Un tas ir pilnīgi interesanti. Tātad objektorientētā programmēšana, divi galvenie priekšstati būs klasi un instancē. Klase ir pamatā veidni objektu. Un instance būtībā viens konkrēts objekts. Pieņemsim tikai teikt, jūs gūstat cookie. Šajā gadījumā, katru cookie jūs faktiski galu galā ar būs objekts. Bet cookie plate jūs izmantojat cept visi cookies būs klasē. Klase ir pamatā veidne. Un instance būs viens konkrēts objekts izveidots no šīs klases. Un piemēram, tiks izveidots pamatojoties uz klases deklarāciju, kā mēs redzēsim vēlāk slaidiem. Tātad, pieņemsim faktiski darīt patiešām quick piemērs [nedzirdama]. Teiksim mēs deklarējot objekts kaķis. Objekts būtu have-- kaķis klases vajadzētu ir dažas īpašības un metodes. Kādas īpašības būtu par klase have-- būtu kaķis ir? Piemēram, krāsa, vecuma un šķirnes, tiem būs mainīgie, ir raksturīgi katram kaķi. Un tās ir dažas lietas ka mēs izmantojam, lai aprakstītu kaķis. Kāda veida metode, vai ko var kaķis darīt? Daži ātri piemēri ir pakaļdzīšanās pele, ēd zivis, vai vienkārši ņau. Tas ir ļoti ātrs piemērs kaķu klasē. Un tiešām īpašs kaķis objekts būs kaķis kur mēs norādīt krāsa, vecums un šķirne. Tādā gadījumā, mūsu mērķis ir vairs klasē vairs. Mēs kopēt veidni no klases un mēs norādīt katru konkrēto informāciju šo konkrēto objektu lai būtu neatkarīga. Un, kad jūs zvanāt metode iekšpusē objektu, jūs vienkārši aicinu Ņau uz objektu, kas ir kaķis, kuru nupat izveidojāt. Iespējams, jums būs izdrukāt kaut kas līdzīgs "Hello World! Ņau ". Diezgan gudrs. Labi, pieņemsim tikai nokļūt dažas detaļas un redzēt, ko tieši tas, ka tulkot darboties iOS programmēšanas. Tātad iOS programmēšanas katru klase tiks īstenoti divās failus. Viens fails ir šeit, kas sauc interfeisu. Vēl viens fails ir šeit, kas sauc īstenošanu. Parasti interfeiss būs extension.h kā mēs redzējām C bibliotēkās. Un īstenošana fails nāksies extension.n. Tas ir sava veida dīvaini. Bet .n nozīmē faktiski .c, nav Būtiskākā atšķirība starp tiem, divi. Tātad šajā gadījumā, mēs varam redzēt, ka mēs esam deklarējot interfeiss, kaķis: objektu. To sauc par mantojumu. Mēs būtībā mantojumu kaķis klase no objekta klases. Tā katrs īpašums un metode, kas bija iepriekš definēts objekta klases automātiski tiks definēti ar kaķu klasē, kā arī. Papildus tam, mēs definēt krāsu, šķirne, un vecumu, trīs mainīgie. Tas tiešām izskatās kaut kas jums ir darījuši agrāk. Izskatās struktūrai. Tas ir būtībā sintakse par struct deklarāciju, un tas ir pilnīgi pareizs. Un tā kā es minēju iepriekš, atšķirība struct un objekts, kas ir viens no būtiskas atšķirības ir tas, ka objekts ir metode, bet struct ir tikai mainīgie. Tātad papildus īpašībām vai mainīgie mēs esam radīti ar objektu, mēs norādīt kādu metodi. Pieņemsim tikai teikt, šeit mums ir divas metodes, viens ir meow, vēl viens ir pakaļdzīšanās peles. Mēs, iespējams, vēlas iet garām parametrs, balstoties uz mūsu iepriekšējo metodi deklarācija modelis. Jūs, iespējams, vēlas būt iet peli. Un jūs droši vien vēlaties atgriezt bool nozīmētu Ja jūsu kaķis ir veiksmīgi nozvejotas peli vai nē. Šī ir saskarne, bet mēs varam redzēt, ka saskarne faktiski nedara neko. Tas tikai stāsta programmu, ko exists-- kādi pastāv kaķu klasē. Tātad, lai par programmu, lai kaut ko darīt, mums ir vajadzīga īstenošanas failus. Tātad šeit, pirmā lieta, ko mēs darām, ir acīmredzot mēs importējam interfeisu. Pēc tam, kad mēs importējam saskarni, mēs definējam metodi. Pieņemsim tikai teikt, šeit meow vienkārši izdrukāt "Hello World!" ar konsoli. Un pēc īstenošanas failu, mēs esam diezgan daudz darīts. Šis ir būtībā klase deklarācija par vienu klasi. Tāpēc tagad jautājums kļūst, Kā jūs deklarēt mainīgo? Kā jūs izmantojat klases, lai radītu objekts Objective C ir rakstīts šeit. Jums vispirms ir norādīts, ka tas ir kaķis rādītājs, jo katru objektu Mērķis C beidzot īstenota kā rādītājs. Un jūs zvanīt klasi, viņiem piezvanīt kā alloc, kas būtībā malloc, stāsta operētājsistēmu, kas jūs nepieciešams zināms atmiņas vietas par šo objektu. Pēc tam jums ir objekts jau ir, un jūs vienkārši sāktu to. Tas ir tikai konvencija. Es zinu, tas ir mazliet dīvaini, bet tas ir faktiski, kā Apple nav sīkumi. Piešķirot īpašības ir patiesībā diezgan vienkārši. Tas ir ļoti līdzīgs ko jūs darāt, kad jūs piešķirot kādu specifisku lauka iekšpusē struktūrai. Jums tikai ir mainīgais nosaukums, īpašuma nosaukumu, un piešķirt īpašu vērtību. Un aicinot metode ir ļoti līdzīgs. Zvana metode ir būtībā tas, ko es runāt par zvanot jebkuru metodi C. mērķī Jūs esat iet objektu, jo šajā gadījumā tas būs myCat, un jūs iet metodes nosaukums. Kā tad, ja jūs runājat ar objektu, myCat, ka jums vajadzētu ņau. Tas ir diezgan interesanti. Pēc tam, kad tas ir viens vairāk būtisks dizaina modelis ka mums ir jārunā par pirms kļūst faktiskās S kodu. Ka dizains modelis tiek saukts notikums orientētu programmēšanu. Tas ir arī iespējams, ir viens no visbiežāk fundamentālas idejas iOS programmēšanas. Tātad, jūs, iespējams, nezina, ko īsti ir notikums virza programmēšana, bet tas nav reāli, ka biedējošu. Nu patiesībā, jums ir jau darīts, ka pirms tam. Šis ir viens no līnijām jūs droši vien esat jau rakstīts pēdējā [nedzirdama] no CS50, google.maps.event.addListener (marķieris, "Klikšķis", funkciju () {}) :. Piezvanot pa šo līniju jūs esat būtībā stāsta datoru ka vienmēr, kad notikums sauc "Klikšķis" notiek uz marķieri, izmantot šo funkciju. Tas ir ļoti atšķirīga no ko jūs darāt mario.c. In mario.c jūs vienkārši palaist programmu vienu reizi, tas dod jums produkciju, un jūs darīts. Tie ir veida, piemēram, viens kadrs programmas. Pasākumu vada programmas ir ļoti, ļoti dažādi. Iedomāsimies, ja Facebook ir viens shot programma tas nav īsti labi. Jūs vienkārši doties uz Facebook vienu reizi, un tas ir izdarīts. Tas dod jums dažas produkciju un jūs nekad got to atpakaļ. Tu nekad got kaut ko vairāk. Tātad šeit, jo īpaši modelis mēs izmantojam, ir notikums virza, lai visas funkcijas būs nozvejotas, pamatojoties uz to notikums ir noticis. Piemēram, ja mums ir pogu un mēs norādīt ka katru reizi, kad poga ir noklikšķinājuši, zvaniet funkciju sauc "Hello World!" Tādā veidā mēs varam patiešām pārvaldīt funkciju loģika ieplūst ļoti elastīgi. Lietotājs var darīt, vai zvanīt funkciju ka jau sauc. Tas ir pilnībā balstīta uz to, ko lietotāji dara. Tātad, mēs varam redzēt, ka tas ir faktiski ir daudz labāk nekā mario.c. Un laba ziņa ir tā, ka tā ir faktiski nav jauns jēdziens. Jums puiši jau ir izdarīts kas pēdējā problēmu iestatīts. Tātad mērķa C ir trīs dažādas diagrammas par notikumu orientētu programmēšanu. Pirmais diagramma ir sauc par mērķa rīcība kur jūs saistīt pogu prese ar kādu funkciju. Teiksim, kad jūs noklikšķiniet dažas pogas, jūs saucat dažas funkcijas. Tas ir ļoti vienkāršs mērķis rīcība. Otrais ir faktiski cieta viens, to sauc delegācija uz protokolu. Mēs ejam, lai izskaidrotu ka ļoti detalizēti vēlāk. Un trešais veids ir paziņojums. Tas faktiski nav ļoti svarīgi, cik kā mēs esam bažas, jo iespēja ka jūs esat gatavojas izmantot paziņojumu Jūsu galīgo projektu ir diezgan zems. Tātad, mēs esam gatavojas izlaist šo daļu. Un mēs braucam nirt stājas delegācijas protokolā. Tātad, kas īsti ir protokols? Vai to, kas īsti ir delegācija? Parunāsim par protokolu, lai sāktu ar. Protokoli ir nekas, bet notikumiem. Bet šie notikumi tiek dota Jums Apple sākt. Piemēram, es neesmu pilnīgi pārliecināts, cik daudzi no jums puiši izmantot Apple oriģināls app pastu vai kontaktu, bet katru reizi, kad jūs ritināt galds un nospiediet noteiktu šūnu uz galda, ka ir notikums. Un, ja jūs vēlaties darīt ka notikums ar sevi, tas ir faktiski mazliet grūti. Tātad, Apple ir devis, ka pat pie jums tā, ka jūs varat tieši izmantot notikums darīt kaut ko par savu. Protokoli ir patiesībā ļoti, ļoti plaši izmanto Objective C. labi Fakts, katru app ir kaut nozvejotas app delegātu. Iekšpusē delikāts ir visu protokoli iekraušanas app. Pieņemsim tikai teikt, ka ir notikums app darīja slodzi. Tātad, ko vajadzētu notikt pēc tam, kad esat izveidots app, pēc tam, kad atverat app, Aizverot app, vai pēc jūs nodot iPhone gulēt. Tie ir visi notikumi, kas ir jau ir dota jums. Un sākotnēji iekšā šīm daļiņām nebūs īstenošana. Apple tikai teicis, ka šo funkciju notiks, kad kāds notikums notiek, bet ko jūs darāt ar to funkcija ir pilnībā atkarīgs no jums. Delegācija būtībā stāsta klasi ka jums vajadzētu apstrādāt šos protokolus. Tas ir mazliet mulsinoši, bet tas būs daudz skaidrāks, ja mēs darām S kodi darbībā. Delegācija uz protokols faktiski ļoti izturīgs mehānisms nozīmē ka, ja mēs delegāciju konkrētā klasē, mēs varam būtiski rīkoties visu veida notikumiem izmantojot jebkuru klasi mums ir, Ļoti ērts rīks. Tik viens ātrs piemērs delegācija uz protokolu būs tas, ko es tikko runājām. Šis protokols īpaši sauc Tableview [dzirdams] izvēlētos lomu at [? indekss?] [? pagātnē. ?] Tātad šis notikums, ko varētu nozvejot, ja jums faktiski Uzspiežot uz specifisku šūnu jūsu Tableview, pieņemsim tikai teikt jūsu pastu vai jūsu kontaktu app. Iekšpusē funkciju bija sākotnēji neko nedarot. Funkcija nav darīt kaut ko pēc noklusējuma. Bet jūs varat norādīt kāda funkcija dara, ņemot vērā to, ko jūs vēlaties no jūsu app. Ļoti ērts rīks. Un ar visu, kas to teica, es būtībā segtu dažas ļoti pamata sintaksi un pamatkoncepcija ir objektīva C programmēšana, un mēs varam darīt kādu s kodu. Daudz aizraujošu. Tātad s kods ir faktiski mazliet milzīgs atverot to pirmo reizi. Viens ātrs piezīmi, tāpēc, ja jūs gribu darīt iOS attīstību, Es ļoti iesakām jums ir Mac. Jo darot iOS nozares attīstību Windows ir ļoti, ļoti grūti. Tas veicams, bet tas ir ļoti grūti. Un jūs noteikti jādara nevēlaties izmantot g rediģēt. Tātad -u kodu mēs esam vairākas atšķirīgas jomas. Kad jūs pirmo reizi atvērt s kods Jūs redzēsiet navigācijas jomā, kas būtībā parāda, jūs visi faili, kas ir jūsu pašreizējā projektā. Jums ir rīkjoslas zona, kas būtībā pārvaldīt viedokli, vai kādu maz ātri instrumenti apmēram -u kodu pati. Un tas ir faktiskais redaktors zona. Šī joma ir ļoti līdzīgs g rediģēt, bet daudz labāk nekā g rediģēt. Un šajā labajā jomā, ir sauc lietderība zona. Teritorija kļūst patiešām ērts, ja jūs veidojat saskarni vai precizējot daži ātri uzstādījumus jūsu app. Un galīgais platība ir debugging. Šī joma ir konsole. Tātad, ja jūs sakāt printf, vai NSLog mūsu gadījumā, visi jūsu rezultāti ir tiks drukāts šeit. Labi? Es domāju, mēs varam tiešām ātri izdarīt piemērs iOS programmēšanu. Un pieņemsim faktiski atvērt s kodu. Tātad, katru reizi, kad jūs atvērt s kodu, tas ir gatavojas parādās kaut kas tamlīdzīgs. Tas notiek, lai jums jautāt ko jūs vēlaties darīt? Vai jūs vēlaties, lai sāktu kaut ko izlases, rotaļlaukums, būtībā tu var vienkārši pārbaudīt kodu bez faktiski apņemoties jebkuru app. Vai jūs vēlaties, lai izveidotu jaunu projektu? Vai jūs vēlaties turpināt strādā pie esošo projektu? Mūsu gadījumā mēs ejam lai izveidotu jaunu projektu. Tātad, tas ir patiešām jauki, s kods faktiski jau devis jums dažas veidnes lai izveidotu objektus. Ja jūs vēlaties darīt spēli, s kodu patiesībā ir spēle veidni jums, ir lapas balstītas lietojumprogrammas, tab balstītas pieteikumu. Šajā gadījumā, mēs ejam darīt kaut ko ļoti vienkāršu, un mēs esam gatavojas izmantot Viens skats pieteikumu. Pēc tam tikai to, ko jūs vēlaties, lai izsauktu savu produktu, un kādi ir jūsu vārds, Kāds ir jūsu identifikators, un kādā valodā jūs izmantojat. Šeit mēs negribam pārbauda, ​​izmantojot Core Data. Core Data pamatā databasing iOS. Ja jūs Core Data, s kods gatavojas definēt daudz sarežģītāka nodarbības jums. Tātad, lai saglabātu viss vienkārši, mēs esam tikai gatavojas darīt bez Core Data tieši tagad. Problēma mēs gribam būt izmantojat that-- problēmas mēs ejam, lai tiktu radītu, ir, ka mēs būtībā vēlas importēt Mario no C uz iOS app. So sauksim ka Mario-iOS. Protams, jums norādīt, par ko vēlas īstenot savu projektu. Un tur mēs ejam. Tātad tas ir mazliet milzīgs, bet tas ir faktiski tas, ko mēs tikko redzējām uz slaidiem. Un pirmā joma mēs redzam tagad būtībā projekts konfigurācija. Tātad viss, ko vēlaties darīt projekts, kāda veida ierīci, pieņemsim tikai teikt, kāda veida ierīces Vai jūs vēlaties, lai jūsu app, kas parādīsies uz? Vai tas ir iPhone, iPad vai universālās? Tātad ierīces orientācijas, visu šo stuff. Nav ļoti svarīgi, bet varētu būt, bet tas ir vieta, kur jums izveidot Jūsu projekts, ja jūs faktiski vēlas izvietot uz Apple veikalu. Labi, pieņemsim apskatīt kaut kas ir iekšā mūsu kodu. Iesim caur failu navigator. Un tie visi faili, kas jau nāca ar veidni, ļoti jauks. Tātad, kad mēs noklikšķiniet uz vienas no tām tas ir, kā tas izskatās. Ļoti līdzīgs g rediģēt. Bet jūs varat redzēt, ka sintakse izceļot, iespējams mazliet jaukāku. Un patiesībā tas ir daudz vairāk spēcīgāk nekā g rediģēšanu. Un jūs varat auto pabeigta daudzas lietas par jums, kā mēs redzēsim ļoti ātri. Atvērsim atkļūdošanas zonu, kā arī. Labi, kā mēs varam redzēt, konsole ir tepat. Tas ir tas, ko jūs gatavojas redzēt, kur tu esi printf vai nsloging kaut ko. Tātad bez papildu ADO, pieņemsim faktiski sastādīt app un redzēt, kas notiek. Viena būtiska iezīme s kods, ir tas, ka s kods nāk ar iPhone simulators. Tātad jums nav nepieciešams, lai būtu iPhone, lai mēģinātu savu projektu, s kodu var simulēt, ka tu, kā mēs varam redzēt jau tagad. Tas ir diezgan jauki. Tas ir ņemot nedaudz mazliet laika, lai apkopotu un būtībā mēs esam tukšs pieteikumu, kas faktiski nav nekas. Bet tas apkopo. Tas ir diezgan laba. Tas ir daudz labāk nekā C, vai ne? Labi, tad pieņemsim mēģināt pievienot kaut ko. Viens fails, kas ir mazliet dīvaini šeit sauc storyboard. Tas ir tiešām liels, laba iezīme -u kodu. Jo -u kodu, jūs faktiski var vilkt un nomestu elementus uz saskarni un tas būs tieši parādās. Mēģināsim to. Mēs piliens etiķeti šeit, "Hello World !!!" Mēs varam centrā, ka. Diezgan vēss. Tagad pieņemsim palaist šo pieturas simulāciju. Šeit mums ir "Hello World !!!" Mums nav pat darīt jebkuru kodēšanas vēl. Kas heck notiek? Tas ir kā spēcīgs Interface Builder var būt. Kāds pat teica, ka Varat droši tikko pabeigt lietotni nerakstot iespējams, tūkstoš koda rindiņas tikai izmantojot Interface Builder. Bet tas ir iespējams, nav Labākais veids, kā to darīt. Tagad pieņemsim faktiski nokļūt uz leju, lai kodēšanas. Tātad Konstrukcijas failu ir tiešām ļoti interesanti jo, kā jūs varat redzēt, tur nav galvenā funkcija jebkur. Redzēt? Kā mēs jau iepriekš minēts, Jūs varat redzēt, ka tas ir īstenošana fails konkrētai klasei. Bet nav galvenais jebkur. Tātad, kur ir galvenais? Faktiski, ir galvenais, bet Galvenais ir faktiski paslēpta no jums. Galvenais ir šeit. Tas izskatās pazīstams. Tātad būtībā kas iOS dara iekšā galvenais ir tas, ka ikreiz, kad galvenais ir sauc, kas ir būtībā kad app ir izpildīts, to rada objektu sauc AppDelegate. Kā jau iepriekš minēju, viss app ir faktiski objekts pati par sevi. Tātad šādā veidā, būtībā iOS app stāsta kompilators ka OK, es esmu gatavojas, lai radītu produktu sauc AppDelegate, un kas būs mans app. Tātad jums ir nepieciešams, lai iet caur šo AppDelegate un redzēt, ko tas puisis dara. Mans darbs ir darīts attiecībā uz mani. Un AppDelegate jūs varat redzēt, ka ir daži patiešām dīvaini funkcijas, labi faktiski metodes, kas Apple jau ir dota jums. Kas tie ir? Tie ir faktiski tikai protokoli ka es runāju par. Tātad tie ir notikumi, kas Apple jums ir devis, lai sāktu ar. Nekas dažās funkciju tieši tagad, bet, ja mēs gribam, lai sāktu kaut kas mūsu app pirms nokļūst izlikšana Katrā ziņā, mēs to darām šeit. Jūs varat izlasīt vārdu, un es domāju, notikums ir patiešām īsti skaidrs. Tāpēc tagad galvenais ir izveidojusi objekts AppDelegate. Un ko AppDelegate gatavojas darīt faktiski arī slēpta no jums. AppDelegate gatavojas sākt iekraušanas ViewController krājumu. Tātad, tas ir būtībā gatavojas sākt uzkrājot visus viedokļus, kas jums ir un tikai padarīt viedokli balstoties uz hierarhijā. Tātad, šajā gadījumā mums ir tikai viens viedoklis, kas ir šeit. Tā, ka ir vienīgais skats kas notiek, lai varētu saukt. ViewController loģika ir tepat. Tas ir kods, kas faktiski kontrolē viedokli mēs vienkārši redzēja. Labi, pieņemsim kaut ko darīt šeit. Tātad viewDidLoad izklausās notikumu, ja patiesībā tas ir arī delegāts, Tas ir arī protokols. Tātad, kāds skats ir piekrauts, viss iekšā funkciju sauks. Šajā gadījumā mums vajadzētu redzēt "Hello Tianyu! ", Ja mēs palaist programmu. Tas kļūst mazliet lēns apkopojot montāžas skalas failus. Nu tiešām, mēs redzam produkciju par to. Tas ir diezgan foršs. Tagad pieņemsim faktiski darīt Mario. Es esmu gatavojas noteikt darbojas ļoti ātri. marioWithLevels: (int) līmeņa rezultātus. Labi, tas ir faktiski laba iezīme s koda auto pabeigšanas. Tātad, ja jūs rakstīt un rakstīt ieiet, tas jau ir atteicies veidni jums, kas ir diezgan forši. Tas būtu izskatās tiešām pazīstams ar jums puiši. Sorry, tas ir mana vaina. Visas tiesības, atdzesē. Ka loģika jāizskatās īsti pazīstams jums puiši, īpaši tikai Mario. Bet mēs tagad izdrukāt, lai konsole katru reizi, jo mēs gribam, lai kaut kā paturēt dziesmu, ko mēs drukāšanu. Mēs ejam, lai izmantotu rezultātus kaut kā vēlāk, lai parādītu drukas ārā rezultātā lietotājam. Tā vietā mēs esam tikai nslogging viss, kas mēs esam uzglabāt visu par funkciju zvanu rezultātā bet loģika ir tieši tāds pats. Pēc tam, kad mēs beidzam, mēs vienkārši izdrukāt mūsu rezultātus. Un šeit, nevis izdrukāšana manu vārdu, mēs ejam, lai izsauktu funkciju. Let 's redzēt, kas notiek. Hmm, protams. Mums ir jauka mazliet piramīda šeit. Tas ir galvenokārt C, mēs esam tikai manipulējot kur jūs zvanu funkciju un kā funkcija izskatās. Tur nekas atšķirīgs. Bet tas ir patiesībā nav ļoti aizraujoša šeit, jo mēs neredzam kaut kas no iPhone app. Tātad, ja jums tiešām ir iPhone app-- ja jums tiešām ir Mario iOS tiesības Tagad, jūs nebrauksim redzēt kaut ko, kas ir kāds sakars ar Mario, jo visi šie izejas uz konsole ir paslēpta no lietotāja. Tas ir tas, ko jūs redzat, kas ir "Hello World !!!" Nav labi. Tagad pamēģināsim izdarīt lietotājs redz ko tieši mēs drukā. Tāpēc mums nav nepieciešams marķēt vairs. Pamēģināsim un izdomāt kaut ko cits, kas varētu būt noderīga. Ir tiešām viens elements, kas tiek saukts Teksta lauks, kas varētu būt ļoti noderīga, lai mums. Tas būtībā parāda reģionu teksts, kuru var rediģēt. Tā, ka izskatās tiešām noderīga. Tagad velciet to un no tā atteikties. Wow, mums ir teksta skatu Mūsuprāt, tiešām iedomātā. Tas ir mazliet par lielu. Padarīsim to mazāku. Ielieciet to centrā. Padarīt to mazāku kā labi. Tagad mums ir teksta skatu, ko mēs varētu izmantot, lai parādītu mūsu gala rezultātu. Bet tagad tas ir noteikti nav dodas uz darbu jo tur ir no-- ViewController mēs tikko definēts nezina, ka ir teksts, skats, kas tur. Tāpēc mums ir nepieciešams, lai kaut kā saistīt teksta skatu mēs tikko izveidots ar klasi, ka jau nāk ar mums. Veids, kā mēs to darīt, ir tiešām ļoti maģisks. Tātad atvērt montāžas. Ir īpaša [nedzirdama] sauc [? palīgs?] [nedzirdama]. Kad jūs noklikšķiniet uz to, ka tas ir gatavojas atvērt divus failus. Viens no tiem ir klase un otrs ir atbilstošs viedoklis par to. Tas ir ļoti, ļoti noderīga. Un pieņemsim tikai iet cauri .H failu. Kontrole, tas ir [dzirdams] loģika. Nospiediet Kontrole un velciet teksta skats uz deklarācijā. Mēs ejam, lai izsauktu šo outputView. Savienot. Tāpēc šeit mēs esam deklarēti jauna īpašums mūsu ViewController klasē. Un jaunu īpašumu ir tikai teksts view mēs esam radīti saskarnes ēkā. Tātad šajā ziņā mēs varētu Pieeja visi dati un manipulēt visu, kas ir iekšā izejas viedoklis, kas ir laba. Tātad mūsu faktisko kodu, pieņemsim kaut ko ar to darīt. Tātad, šoreiz, kad mēs esam, piemēram, drukāšanas ārā gala rezultātu Mario, mēs esam ne mežizstrāde neko. Es domāju, mēs varētu paturēt mežizstrāde paziņojumu. Bez tam, mēs nosūtīt nolasīšanas mēs tikko izveidota, lai izejas skatu, kas ir UI textview mēs tikko izveidota. Tagad pieņemsim redzēt, kas notiek. Wow. Mums ir piramīda app tiesības tagad. Tāpēc lietotājs var redzēt mūsu produkciju arī tāpēc, mēs esam kopēt izejas no mūsu kodu mūsu interfeisu. Tas ir diezgan laba. Tas tiešām nav tik aizraujoši, jo mēs can-- Viss app dara, ir parādot piramīda ar jums, un tur nekas jūs varat darīt, par to. Tas nav īpaši aizraujoša. Tāpēc tagad pieņemsim pogu kas būs skaidrs viedokli. Šķiet, ka poga būs noderīga. Velciet un nometiet. Poga viens. Poga divi. Tātad, kad mēs noklikšķiniet kreiso pogu, skats būtu skaidrs. Vajadzētu būt nekas uz ekrāna. Un, kad mēs noklikšķiniet labo pogu, Mario, skats gatavojas atkal parādīsies. Tātad šādā veidā mēs arī to burvju stuff, kontrole un velciet klasei deklarācijai šajā palīgs director-- in asistenta skatītāju. Šajā gadījumā mēs norādot ka būtu rīcība. clearMario. Tāpēc šeit mēs jau esam radījuši darbību, kuras nosaukums clearMario, kas ir metode, kas tiks saukts kad mēs nospiediet pogu skaidrs. Tātad mūsu faktiski kodu, pieņemsim tikai nodot izejas tekstu un izejas skatu par neko, un tādā veidā tas, šķiet, ir skaidrs. Papildus tam, ka, pieņemsim izveidot vēl viena metode, ko sauc runMario. Ak žēl, ka nav jābūt īpašums. Labi, ka vajadzētu būt darbība, kā arī. Un, kad šī funkcija ir sauc, mēs vienkārši palaist Mario desmit. Cerams, ka būs labi. Vai tas apkopotu? Jā. Tagad mums ir skats. Mums ir izeja. Un pieņemsim tikai redzēt, kas notiek. Tas ir pagājis. Tas ir atkal atpakaļ. Tāpēc šeit mēs esam norādīts kāda veida funkcijas tiks izsaukta, kad mēs ierakstiet kaut ko, kad mēs nospiežot īpašu pogu. Šis ir būtībā mērķa rīcības shēma par notikumu orientētu programmēšana C. mērķī Papildus tam, ka, tas nav ļoti aizraujoša jo mēs nevaram īsti mainīt cik augsta piramīda būs, tāpēc mēs, iespējams, vēlas kaut kā saņemt informāciju no lietotāja un mainīt augstumu piramīda, pamatojoties uz to, ko viņi produkciju. Tātad, mēs esam gatavojas darīt. Tātad, šoreiz, kad mēs saucam runMario, mēs ne tikai zvanīt Mario tieši. Tas viens virsraksts. Delegāts. Tas ir ļoti interesanti. Kas ir delegāts? Es esmu gatavojas likt sevi šeit. Un mēs ejam, lai redzētu ko tas nozīmē vēlāk. Tāpēc šeit mēs esam būtībā radījuši konkrēts piemērs sauc UI brīdinājumu skats. UI brīdinājumu viedoklis būtībā tas, ko jūs redzēt katru reizi kaut pops augšu un lūdz jums ievadi, piemēram, kas notiks, kad jūs mēģināt pirkt kaut ko uz App Store. Papildus tam, pēc tam, kad izveidot to, mēs tikai parādīt brīdinājumu. Labi, pieņemsim tikai ātri Tests, ka darbs vai ne. Tas ir ļoti foršs. Tagad pieņemsim faktiski izveidot ievades lauks UI brīdinājumu. Tas ir, kā mēs to darām. Un mums ir jābūt ievades skats brīdinājuma. Ļoti foršs. Pieņemsim tikai teikt, 10. Tas nedara neko labi tagad, jo zvans patiešām nemainīja izpildei Mario. Tātad tas ir kļuvis nedaudz mazliet dīvaini, jo ikreiz, kad mēs nospiediet pogu uz leju, kad mēs nospiediet pogu trauksmes skatā, kaut kas notiek, bet tas nenotiek. Kā mēs nozvejas, ka? Kā mēs zinām, ka lietotājs ir noraidījusi brīdinājumu skats un jau ieraksta numuru, jo tagad nekas patiesībā notiek. Nu, jūs varētu būt guessed tas labi, delegācija. Tātad papildus visi Šie paziņojumi, mums ir nepieciešams pievienot jaunu delegāciju to sauc UI brīdinājumu skats delegātu. Tā, ka katru mijiedarbība vai notikumu ka mēs esam nāksies ar UI trauksmes skatā būs jāapstrādā mūsu klases, kā arī. Tātad papildus ka, būs brīdinājumu skats klikšķi pogas indeksu. Tas ir sasniegts. Tātad tādā gadījumā mēs esam already-- tāpēc mums ir uzzināju protokolu, veiks gadījums, kad mēs noklikšķiniet uz Done pogu uz trauksmes skatā. Tātad, katru reizi, kad mēs atlaist brīdinājumu skats, tam ir jānotiek. Ļaujiet man tikai pārbaudītu to ļoti ātri. Nu tiešām, mēs esam sasnieguši šeit. Tātad šeit, ko mums nebūs faktiski saņemt faktiski nokļūt the-- Tāpēc mēs gribam izkļūt teksts, mums ir iepriekš ieraksta trauksmes skatā. Un, pamatojoties uz tekstu, mēs esam gatavojas parādīt Mario. Tas ļoti ātri izrādās ja tā faktiski darbojas vai ne. Tātad šajā gadījumā, ja mēs ievade, teiksim, 10, mums vajadzētu redzēt 10. Ļoti labi, mums ir vairāki šeit. Tas ir diezgan laba. Tagad pēdējais solis būs be-- So Pēdējais solis, mums ir jādara tieši tagad ir tikai zvanu Mario ar līmenis, pamatojoties uz ieejas ka mēs esam uz trauksmes skatu. Tāpēc mums ir nepieciešams, lai pārvērstu šis string uz iOS. Static pārplūdes ir ļoti laba. Un tad mēs vienkārši saucam sevi marioWithLevels vērtība. Paskatīsimies, būs, ka faktiski strādā vai ne. Mēs jau dota piramīdas. Mēģināsim mainīt augstumu. Tas tiešām darbojas. Tas ir diezgan foršs. Tā, ka tagad jūs varat vienkārši ievadīt jebkuru vērtību vēlaties. Pieņemsim tikai teikt, četri. Tas ir diezgan laba. Tātad tas ir pamatā tiešām ātri piemērs par to, kā izveidot projektu -u kodu un kā īsti ātri vadi līdz dažas patiešām vienkāršas notikumiem un funkcijas. Tātad avots notiek jāliek tiešsaistē vēlāk. Tātad, ja jūs interesē to, kā iOS Mario darbojas, Es esmu gatavojas īstenot tieši tas pats projekti uz CS50 mājaslapā vēlāk. Mēs būtībā darīts ar vasarā, un pirms mēs beidzam Es tikai vēlos jums puiši daži tiešām foršās resursi, kas ir pieejami tiešsaistē. Acīmredzot Apple dokumentācija būs ļoti noderīga. Bet papildus ka, es sevišķi ieteiktu četriem avotiem, ti kods skolas, koks māja, AppCoda un WWDC video. Kods skolas un koka māja ir divi tiešsaistes izglītojot mājas lapas, kas īpaši koncentrējas par programmatūras inženieriju. Jo īpaši attiecībā uz koda skolu, viņi ir patiešām labas apmācību par iOS. Tas ir patiešām ātrs piemērs par to. Viņi faktiski rada patiešām cute-- paskatās, ka maz gudrs iPhone dude tur, tas ir diezgan laba. Un kā viņi izskaidrot Mērķis C sintakse ir pilnīgi skaidrs. Koks māja ir tāda pati. Un AppCoda ir forums. Tas ir tiešām blogu, kas tika palaists ko patiešām pieredzējis Mērķis C programmētājs. Un visi šie konsultācijas šajā AppCoda ir diezgan īss un viegli īstenot, ļoti ieteicama. Un, ja jūs esat izstrādātājs, noteikti iet pārbaudīt kā WWDC video, kur jūs varat uzzināt par jaunāko iOS programmēšanas metodes, API un bibliotēkas. Tāpēc, ka ir diezgan daudz tas semināram. Thank you so much. Un es ceru, ka jums ir jautri izveidojot savu iOS app.