TianYu LIU: Ei, kaip tai jis vyksta kiekvieną? Ir tai yra "iOS" App programavimo objektyvios c seminare. Ir mano vardas yra Tianyu Liu. Aš Lowell jaunesnysis dabar, sutelkiant į kompiuterių mokslo. Taigi šiame seminare aš ketina išmokyti jus vaikinai šiek tiek apie tai, kaip padaryti app. Yay, karščiuotis už jį. Taigi, kol mes net pradėti nardymas į faktinį programavimo pusės, tegul tiesiog tikrai greitai kalbėti apie kodėl gali norite sukurti iOS app? Kodėl "iOS toks nuostabus? Taigi, pirmąją problemą, pirmasis dalykas, kad yra gana awesome už mus, ypač kaip CS50 studentas, yra tai, kad "iOS" naudoja Tikslas C. Na, yra Naujas kalba vadinama Swift bet mes neketiname naudoti, kad šiame seminare. Jei jus domina Swift, yra yra nepriklausoma seminaras apie tai. Bet tikslas C yra iš esmės C. prasmė Superset kad viskas, ko jums naudoti C gali išversti į tikslą C labai lengvai. Kaip jūs galite pamatyti vėliau, kad iš tiesų yra keletas labai paprastas sintaksė yra iš esmės lygiai taip pat, C tikslas C. Taigi, nuo išgėrėte CS50 iki taip toli, jūs jau žinoti Tikslas C, ne mažiau kaip 40%. Be to, "Apple" tikrai Tvirtas API iOS. Yra tikrai pamišę daug dalykų, kuriuos galite padaryti su juo. Vienas iš jų yra tas, iš tikrųjų sukūrė iOS app kontrolinių automobilius, kurie yra gana įdomi. Tikriausiai sraigtasparnis yra įdomesnis. Bet tai, kaip galingas "iOS API gali būti. Ir kaip jums gali tekti suprato, dabar, kamino perpildymo tikriausiai yra viena iš svarbiausi interneto išteklių prieinamas jums. Ir gera naujiena, už kiekvieną vieno problema, galite galbūt galvoti, o pastatas savo Galutinis projekto tikslo C, yra tikėtina, kamino perpildymo atsakymas. Tai tiesiog nuostabus. Be to, kad, IOS yra tikrai platforma kur jūs galite pasiekti didžiulis auditorija su minimaliomis pastangomis. Tai ne kaip Android, kur viskas gana fragmentiška. Viskas IOS yra vieninga. Ir kaip ilgai, kaip jums sukurti už iPhone app, Jūs galite labai lengvai uosto, kad iPad, IPad mini, ar skirtingų dydžių iPhone. Visa tai yra tikrai patogu. Ir tai tik tikrai geras už įspūdingi savo draugams. Jūs galite tiesiog turėti iPhone ir pasakyti savo draugui ei, tai programa man padaryti. Jūs galite padaryti, kad bet darbastalio programos, kurios yra gražus. Gerai, dabar tegul iš tikrųjų gauti į kalbos tikslą C Taigi, kodėl ne mes pradėti su kai tikrai pagrindinė sintaksė. Kaip jau minėjau anksčiau Tikslas C Tai iš esmės ir C. Superset Taigi pagrindinio sintaksė daug yra tikrųjų lygiai taip pat. Skelbiu kintamąjį ir pridedant du kintamieji kartu yra tiksliai taip, kaip mes padarėme Mario. Nieko naujo čia. Panašiai, už kilpos kampinikas ir būklė yra taip pat pati. Jūs galite tai padaryti už kilpa kaip jums jau padarė Mario [nesigirdi]. Ir jūs galite padaryti sąlygas kaip ką buvo padaryti jūsų ankstesnių p rinkinių. Tačiau Tikslas C nėra visiškai C, ir ten yra kažkas, kad rūšies keista apie tai. Pirmoji yra ta, kad kai esate daro C programavimo, jūs paprastai vadiname apima ir tada biblioteka vardas. Bet tikslo C skambinate, kad importo. Iš esmės sakydamas funkcionalumą, tik skirtingi pavadinimai. Ir stygos iš tikrųjų šiek tiek keista. Galite matyti, kad pirmasis dalykas, kad yra natūra keistai yra tai, kad jūs turite gana weird-- sorry-- turite gana keistai NS pasirašyti čia. Ir Antras dalykas tai rūšies keista yra jūs turite ne ženklas prieš iš tikrųjų, skelbiantis eilutę. Taigi ne ženklas iš esmės reiškia, kad eilutė yra ne tik seka, jis iš tikrųjų yra objektas. Mes ketiname paaiškinti kad vėliau taip ne panikos, jei jūs neturite suprasti, ką tai reiškia. Ir spausdinimas konsolės yra šiek tiek skiriasi, nes C mes vadiname printf, bet tikslo C mes vadiname [nesigirdi]. Jums gali būti įdomu, kas yra tas, kad. Tai iš esmės printf, tik kita kalba. Lygiai tas pats naudojimas, lygiai tas pats funkcionalumas. Na tai paaiškėja, kad Tikslas C iš tikrųjų turi ns priešdėlis beveik viskas, kas bazinis duomenų tipas, nsstring, nsarray, nsdictionary. Priežastis yra ta, kad ns iš tikrųjų reiškia VladDeVille, kuris yra įmonė, kuri Steve Jobs įkūrė, kuris yra kompanija, kur kalba Tikslas C gimė. Taigi tai iš esmės tradicija. Žinau, kad tai šiek tiek keistai, bet tai "Apple". Taigi kažkas, kad yra net weirder nei, kad yra funkcija deklaracija. Tai labai skiriasi nuo to, ką mes matyti C, nes čia ji iš tikrųjų neatrodo kaip C nebėra. Ką jūs turite here-- iki būdas tai ne kulka vieta, tai Minuso ženklas. Jūs turite Minuso ženklas skliaustų negalioja, ir tada funkcijos pavadinimas. Leiskite tik pasakyti, jei mes turi hello world, tada grįžimas tipas būtų tuščia nes mes grįžti nieko. Kas bus tikrai keista yra tai, kad, kai esate turinti daugiau nei vieną parametrą, perduoti į tą pačią funkciją, kad bus tikrai keista, kaip parodyta čia. Mes turime metodo pavadinimas, vadinamas addInt į [nesigirdi] ir mes artimųjų vieną parametrą. Bet po to, turime daugiau metodo pavadinimas skambutį. Ir po su mes artimųjų antrasis parametras. Tai iš tikrųjų šiek tiek keistai, bet visi šie funkciniai deklaracijos sekti tą patį modelį, kaip šis. Mes turime minusą pradėti. Minuso ženklas gali būti pliuso ženklas kartais remiasi tuo, ką rūšies metodą tai. Metodas yra iš esmės kitas pavadinimas funkcija. Ir mes ketiname paaiškinti, kad vėliau, kai mes kalbame apie objektą orientuotas programavimas. Jūs pirmą kartą nurodyti grąžą įrašykite viduje skliausteliuose, po kurio ateina metodo pavadinimas. Jūs artimųjų vieną parametrą. O jei turite daugiau parametrų Jums reikia pratęsti metodo pavadinimas ir iš esmės ką nors parašyti daugiau čia. Tai gali būti bet kas norite. Mūsų atveju tai su. Tačiau galima sakyti, pabaigos, arba arba arba abc pilnas baras, ką nori. Ir tada, po, kad esate artimųjų parametras b. Tai tikrai keista konvencija, bet mes esame ketiname pamatyti, kodėl "Apple" norėjo padaryti, kad labai greitai. Taigi, kaip jūs vadinate funkciją? Skambinimas į tikslo funkcijos C yra taip pat skiriasi nuo C. Tiesą sakant, ragindamas funkcija tikslo C yra daugiau kaip jūs kalbate su kuo nors. Čia mes turime savęs, kuris vadinamas objektas. Jūs iš esmės pasakoja prieštarauti savęs pasakyti "Hello World!" Štai kaip paskambinti funkciją. Objektas ir metodas vardas derinami vienas su kitu. Ir tai, kai keistai pratęsimo už metodo pavadinimas tikrai ateina į žaidimą. Pažvelkime antrame pavyzdyje. Mes tiesiog apibrėžti metodą, vadinamą addInt su bla bla bla. Taigi šiuo atveju, kai skambinate kad konkretus [? pranešimą?] ji vyksta atrodyti savęs addInt: 10 su: 2. Tai skamba kaip anglų kalba. Nors funkcijos funkcija deklaracija yra keista, Tikslo C-aisiais taškas metodas deklaracija modelis, yra tai, kad, kai skambinate funkcija arba metodas tai bus panašu į faktinį anglų kalba. Taigi tai labai intuityvus kai jūs gaunate į jį. Ypač, šiuo atveju, kur jūs galite iš esmės matyti, kad funkcija vardas rūšiuoti dokumentuoti save. Jums nereikia bet daugiau paaiškinimas pamatyti kas tiksliai vyksta, kas tik vienas parametras daro. Įvykdęs, kad pakalbėkime šiek tiek tiek apie Objektinis programavimas. Objektinis programavimas Vienas iš pagrindinių programavimo metodus ar modelius, kad yra naudojama tikslo C. tikslo C vadinamas C tikslą, o ne C yra tikrai geros priežasties. Taigi, prieš mes į Tikslas C sintaksė, Leiskite tikrai greitai pažvelgti kas tiksliai yra objektas. Mes tikriausiai padarė kažką kaip objekto anksčiau, kuris vadinamas konstrukto, kai esate įgyvendinant medį ar susietą sąrašą arba [? pabandyti. ?] Taigi, tai Iš esmės kaip struct, bet tai daug galingesnė nei tai. Objektas turi metodus ir savybes. Metodai yra iš esmės funkcijos. Iš esmės veikia, kad specifinis iki tam tikro objekto. Ir savybės yra iš esmės lauke galite nurodyti, struct. Taigi už kiekvieną objektą mes turime tam tikrą turtą kad turi keletą kintamųjų, kurie yra specifiniai į objektą. Ir mes turime tam tikras funkcijas, kurios Taip pat yra specifinis į objektą. Ir funkcijos vadinamos metodus ir kintamieji yra vadinama savybes. Tai tiesiog išgalvotas pavadinimas. Nors jūs sakant, kiekvienas vaizdas matai, o jūs atidaryti iOS app, tegul tiesiog pasakyti "Twitter" ar "Facebook", kiekvienas vaizdas matote, yra objektas. Ir net visą app yra objektas pradėti. Labai įdomi koncepcija. Ir kodėl mes norime objektą orientuotas programavimas? Taigi galite įsivaizduoti, kad, kai jūs programa ji pasireiškia gana sudėtinga. Leiskite tik pasakyti, kai esate įgyvendinant šachmatų lentą, logika ketina būti tikrai sudėtinga. Jūs turite 36 skirtingų gabaliukai, taip, kad, jei norite parašyti logika visiems 36 skirtingų vienetų šachmatų, kad tai bus daug " skirtingas funkcijas ir kintamuosius. Tai daug problemų. Ir tikriausiai jūs ketinate rašyti skiriasi metodas arba skirtingi funkcija kiekvienai iš gabalas tiksliai kontroliuoti, ką jie daro. Tačiau, jei jūs Objektinis programavimas, visi šie gabalus gali būti išgaunama į vienas objektas. Ir objektas turės kai bendra savybės, pavyzdžiui, tai, kokios gabalas tai? Kokios spalvos yra? Kaip jis gali judėti? Ir tokiu būdu jūs turite labai supaprastino jos logiką. Taigi, tai tik tikrai geras būdas kad sudėtingas programas, ir hierarchinės santykiai pagal programą, labai paprasta. Kaip mes ketiname pamatyti kodėl labai greitai mes iš tikrųjų daro programming-- kai mes iš tikrųjų darai S kodą programavimo sesijos vėliau. Na be to, kad, Objektinis programavimas yra tik smagi. Jūs turite sukurti savo objektą. Jūs turite sukurti ką tai atrodo patys. Nėra teisingas atsakymas į jį. Ir tai visiškai įdomu. Taigi Objektinis programavimas, dvi pagrindinės sąvokos bus klasę ir atvejis. Klasė esmės už objekto šablonas. Ir pavyzdžiui, yra iš esmės vienas konkretus objektas. Leiskite tik pasakyti, jūs padaryti slapuką. Šiuo atveju, kiekvienas Slapukas jūs iš tikrųjų baigti su bus objektas. Bet slapukas plokštės naudojate kepti visi slapukai bus klasę. Klasė esmės šablonas. Ir atvejis bus vienas konkretus objektas sukurta iš tos klasės. Ir bus sukurta atvejis remiantis klasę, kaip matysime vėliau skaidres. Taigi leiskite tikrųjų tikrai greitas pavyzdys [nesigirdi]. Tarkime, mes skelbiantis už katės objektas. Objektas turėtų have-- Kačių klasė turėtų turi tam tikrų savybių ir metodus. Kokios savybės turėtų klasė have-- turėtų katė turi? Pavyzdžiui, spalva, amžiaus ir veislės, tie bus kintamieji, yra specifiniai kiekvienai katė. Ir tie, yra keletas dalykų, kad mes naudojame apibūdinti katė. Kokios metodą, ar kas gali katė daryti? Kai greitai pavyzdžiai būtų Chase pelė, valgyti žuvį ar tiesiog meow. Tai tikrai greitai pavyzdys kačių klasei. Ir tikrai specifinis cat objektas bus cat kur mes nurodome spalvos, amžiaus ir veislės. Tuo atveju, mūsų objektas yra nebėra klasės nebėra. Mes kopijuoti šabloną iš klasės ir mes nurodome kiekvieną konkrečią informaciją kad šiuo konkrečiu objektu kad jis nepriklausomas. Ir kai skambinate viduje objekto metodas, Jums tiesiog paskambinkite meow ant objekto, kuris yra katė ką tik sukūrėte. Tikriausiai jums spausdinti kažkas panašaus į "Hello World! Miau ". Gana mielas. Gerai, tegul tiesiog patekti į kai kurias detales ir pamatyti, kas tiksliai tai išversti veikti iOS programavimo. Taigi "iOS programavimo kiekvieną klasė bus įgyvendinamas dviem failais. Vienas failas yra čia, o yra vadinamas sąsaja. Kitas failas yra čia, o vadinamas įgyvendinimą. Paprastai sąsaja turės extension.h kaip matėme C bibliotekose. Ir įgyvendinimas failas yra teks extension.n. Tai tipo keista. Bet .n reiškia iš tikrųjų .c nėra Esminis skirtumas tarp tų, du. Taigi šiuo atveju, mes galime pamatyti, kad mes skelbiantis sąsajos, Kačių objektas. Tai vadinama paveldėjimas. Mes iš esmės paveldi Kačių klasė nuo objekto klasės. Taigi kiekvieną nuosavybė ir metodas, kuris buvo anksčiau apibrėžta objektų klasės bus automatiškai apibrėžta į kačių klasei, taip pat. Be to, kad, mes apibrėžti spalvą, veislė ir amžius, trys kintamieji. Tai iš tiesų atrodo ką jūs turite padaryti anksčiau. Atrodo, struct. Tai iš esmės yra sintaksė už struct deklaracijos, ir kad yra visiškai teisinga. O kadangi jau minėjau anksčiau, Skirtumas konstrukto ir objektas, vienas iš esminiai skirtumai yra tai, kad objektas turi metodą, o konstrukto turi tik kintamuosius. Taigi, be to, jų savybes, arba kintamieji Sukūrėme už šį objektą, mes nurodome kai metodą. Leiskite tik pasakyti, čia mes turime du metodai, vienas Miau, dar viena Chase pelės. Mes tikriausiai norite būti perduoti parametras grindžiamas mūsų ankstesnį metodą deklaracija modelis. Jūs tikriausiai norite būti artimųjų pelę. Ir jūs tikriausiai norite grįžti bool reiškiantis jei jūsų katė turi sėkmingai sugauti pelę, ar ne. Tai sąsaja, tačiau galime matyti, kad sąsaja tikrųjų nieko nedaro. Jis tiesiog pasakoja programą, ką exists-- kas egzistuoja kačių klasėje. Taigi tam, Programa padaryti kažką, mes turime turėti įgyvendinimo failus. Taigi čia pirmas dalykas, mes darome, yra Akivaizdu, mes importuojame sąsaja. Po to mes importuojame sąsaja, mes apibrėžti metodą. Leiskite tik pasakyti, čia miau tiesiog atsispausdinti "Hello World!" prie konsolės. Ir po to, kai įgyvendinimo failą, mes gana daug nuveikti. Tai iš esmės klasė deklaracija vienoje klasėje. Taigi dabar kyla klausimas, kaip jums paskelbti kintamąjį? Kaip jūs naudojate klasę sukurti objektas tikslo C yra parašyta čia. Jūs pirmą kartą nurodyti, kad tai yra cat žymeklis, nes kiekvieną objektą tikslo C yra galutinai realizuotas kaip žymeklį. Ir jūs vadinate klasę, jiems skambinti kaip ALLOC, kuris iš esmės malloc, sakau operacinę sistemą, kuri jus reikia šiek tiek atminties šiam objektui. Po to jūs turite objektą jau ir jūs tiesiog inicijuoti ją. Tai tik konvencija. Aš žinau, tai yra šiek tiek keista, bet iš tikrųjų tai yra, kaip "Apple" stuff. Priskyrimas savybės yra iš tikrųjų gana paprasta. Tai labai panašus į Ką jūs darote, kai jūs priskiriant kai konkretus lauko viduje struct. Jūs tiesiog turite kintamąjį pavadinimas, turto pavadinimą, ir priskirti konkrečią vertę į jį. Ir paskambinus metodą yra labai panašūs. Paskambinę metodas Iš esmės tai, ką aš kalbu apie skambinti bet kokį C tikslo metodą Jūs išlaikydami objektą, į šiuo atveju tai bus myCat, ir jūs artimųjų metodo pavadinimas. Tarsi jūs kalbate į objektą, myCat, kad jūs turėtumėte meow. Tai gana įdomi. Po to, kad yra vienas svarbesnis dizaino modelis kad mes turime kalbėti apie prieš gaunant į faktinį S kodą. Tai dizaino modelis yra vadinamas įvykis, vykdomas programas. Tai taip pat yra tikriausiai vienas iš labiausiai pagrindinės idėjos iOS programavimą. Taigi jūs turbūt nežinote, ką tiksliai yra įvykis, vykdomas programas, bet tai nėra tikrai, kad baisu. Na iš tiesų, jūs turite jau padaryta, kad prieš. Tai yra viena iš linijų jūs tikriausiai jau parašyta paskutiniame [nesigirdi] iš CS50, google.maps.event.addListener (žymeklis, "Spauskite" funkcija () {}) :. Paskambinę šią eilutę esate iš esmės pasakoja kompiuterį kad kai įvykis vadinamas "Spauskite" vyksta į persekiotoją, naudoti šią funkciją. Tai labai skiriasi nuo ką daryti mario.c. Be mario.c jūs tiesiog paleisti programą vieną kartą, ji suteikia jums produkcija, ir baigsite. Tai yra tarsi Vienu šūviu programas. Įvykio susijusios programos yra labai, labai skiriasi. Įsivaizduokime, jei "Facebook" yra viena kulka programa tai tikrai ne gera. Jūs eikite į Facebook vieną kartą ir tai daroma. Jis suteikia jums šiek tiek produkcija ir jūs niekada atgal. Jūs niekada nieko daugiau. Taigi čia, ypač modelis mes naudojame yra Renginys skatina, kad kas funkcija sugauti remiantis kas įvykis atsitiko. Pavyzdžiui, jei turime mygtuką ir mes nurodome kad kai kurie mygtuką paspaudėte, skambinti funkcija vadinama "Hello World!" Tokiu būdu mes galime tikrai valdyti funkcija logika tekėti labai lanksčiai. Vartotojas gali padaryti arba skambinkite funkciją kad jau buvo vadinamas. Tai visiškai pagrįsta, ką vartotojai daro. Taigi matome, kad tai yra tikrai daug geriau nei mario.c. Ir gera naujiena yra tai, kad tikrųjų nėra nauja koncepcija. Vaikinai jau padaryta kad per pastaruosius problema nustatyti. Taigi tikslo C yra trys skirtingos schemos įvykiui varomas programavimą. Pirmoji schema yra vadinamas taikinys veiksmų, kur jungiasi mygtuką presas su kai funkcija. Leiskite tik pasakyti, kai jūs spustelėkite kai mygtuką, galite skambinti tam tikrą funkciją. Tai labai paprasta tikslinė veiksmų. Antrasis yra iš tikrųjų sunkiausia viena, tai vadinama delegacija protokolą. Mes ketiname paaiškinti kad labai išsamiai vėliau. Ir trečia būdas yra pranešimas. Tai tikrai nėra Labai svarbu, kiek kaip mes susiję, nes tikimybė kad jūs ketinate naudoti pranešimą savo galutiniam projekto yra gana žemas. Taigi mes ketiname praleisti tą dalį. Ir mes ketiname neria į delegacijos protokolas. Taigi, kas tiksliai yra protokolas? Arba, kas tiksliai yra delegacija? Pakalbėkime apie protokolą pradėti. Protokolai yra nieko, bet renginiuose. Tačiau šie įvykiai yra skiriamas Jūs Apple pradėti. Pavyzdžiui, aš nesu visiškai tikri, kaip daugelis iš jūsų vaikinai naudoti Apple originalą App paštu arba kontaktas, bet kiekvieną kartą, kai jūs slinkite stalas ir paspauskite konkrečią ląstelių ant stalo, kad yra įvykis. Ir jei jūs norite daryti kad patys įvykis, tai tikrai šiek tiek sunku. Taigi "Apple" turint omenyje, kad net jums taip, kad jūs galite tik tiesiogiai naudoti Renginys padaryti kažką savo. Protokolai yra iš tikrųjų tikrai, tikrai plačiai naudojamas Tikslo C. gerai Faktas, kiekvieną programą turi kažką pagauti app delegatą. Viduje švelnus yra visi protokolai pakrovimo programą. Leiskite tik pasakyti, yra už app įvykis padarė apkrovą. Taigi, kas turėtų atsitikti, kai jūs sukurta programa, po to, kai atidarote programą, Uždarius programą, arba po jūs įtraukėte iPhone miegoti. Tai yra visi įvykiai, kurie turi jau buvo suteikta jums. Ir iš pradžių viduje šių dalelių nebus įgyvendinti. "Apple" tiesiog pasakė, kad šią funkciją nutiks, kai kai įvykis atsitinka, bet ką daryti su tuo funkcija yra visiškai iki jums. Delegacija iš esmės yra sakau klasę kad jums reikia dirbti šiuos protokolus. Tai šiek tiek painu, bet jis bus daug aiškiau, kai mes darome S kodai veiksmų. Delegacija į protokolą iš tikrųjų labai tvirtas mechanizmas prasme kad jei mes darome delegaciją su konkrečiu klasei, mes galime iš esmės tvarkyti visi įvykių rūšių naudojant bet klasę turime, labai patogus įrankis. Taigi vienas greitas pavyzdys delegacija protokolo bus ką tik kalbėjo apie. Šis protokolas specialiai vadinamas tableview [nesigirdi] pasirinkite vaidmenį ne [? rodiklis?] [? praeitis. ?] Taigi ši įvykis, kuris būtų sugauti, kai jums iš tikrųjų bakstelėkite specifinė ląstelių jūsų tableview, tegul tiesiog pasakyti savo pašto ar jūsų adresatų app. Viduje funkcija buvo Iš pradžių nieko nedaryti. Funkcija nėra nieko pagal nutylėjimą daryti. Bet jūs galite nurodyti kas funkcija daro, suteikta tai, ko norite iš savo app. Labai patogus įrankis. Ir visa tai Cela dit, aš iš esmės padengti tam tikrą labai pagrindinę sintaksę ir pagrindinė koncepcija tikslo C programavimas, ir mes galime padaryti kai -us kodą. Daug įdomesnis. Taigi -ai kodas yra iš tikrųjų šiek tiek absoliuti kai atidarote jį pirmą kartą. Vienas greitai pastaba, todėl, jei jus noriu padaryti iOS plėtrą, Aš labai rekomenduoju turite Mac. Kadangi tai iOS plėtrą Langai yra tikrai, tikrai sunku. Tai Vykdytinas, bet tai tikrai sunku. Ir jūs tikrai padaryti nenorite naudoti g redaguoti. Taigi -ų kodas turime keletas skirtingų sričių. Kai pirmą kartą atverti s kodas pamatysite navigacijos srityje, kuri iš esmės rodo jums visiems failai, yra jūsų dabartinį projektą. Jūs turite įrankių juostos plotas, kuris yra iš esmės valdymo nuomonę, arba kai mažai greitai įrankiai apie patį -ų kodą. Ir tai yra tikrasis redaktorius plotas. Ši sritis yra labai panašus g redaguoti, bet daug geriau nei g redaguoti. Ir šioje srityje dešinėje, yra vadinamas naudingumo srityje. Plotas tampa tikrai patogu, kai kuriate sąsają arba nurodant kai greitai konfigūracijos jūsų app. Ir galutinis plotas yra derinimo. Ši sritis yra konsolę. Taigi, jei jūs sakote printf, arba nslog mūsų atveju, visi jūsų rezultatai bus spausdinami čia. Viskas gerai? Aš manau, kad mes tikrai galime greitai padaryti pavyzdys iOS programavimą. Ir tegul iš tikrųjų atverti -ai kodą. Taigi kiekvieną kartą, kai jūs atverti s kodą, tai ketinu parodyti kažką panašaus. Ji ketina paprašyti jus Ką norite daryti? Ar norite pradėti kažką atsitiktinai, vaikų žaidimo aikštelė, iš esmės jūs galite tiesiog išbandyti kodą be iš tikrųjų įsipareigojant bet app. Ar norite sukurti naują projektą? Arba jūs norite tęsti dirba esamą projektą? Mūsų atveju mes ketiname sukurti naują projektą. Taigi tai tikrai gražus, s kodas tikrųjų jau davė jums kai šablonai kurti objektus. Jei norite padaryti žaidimą, ai kodą iš tikrųjų turi žaidimo šabloną už jus, turi puslapių grindžiamas taikomąsias programas, skirtukas pagrindu sukurta programa. Tokiu atveju, mes ketiname padaryti kažką labai paprastas, ir mes ketiname naudoti Single Peržiūrėti taikymas. Po to, ką norite skambinti Jūsų produktas, ir tai, kas yra jūsų vardas, Koks jūsų identifikatorius ir kokia kalba jūs naudojate. Čia mes nenorime Tikrinti naudojant pagrindinius duomenis. Pagrindinių duomenų iš esmės databasing iOS. Jei tai padarysite pagrindinių duomenų, s kodas ketina apibrėžti daug sudėtingas klasių jums. Taigi, norint išlaikyti viskas paprasta, mes tik ketina padaryti be pagrindinių duomenų dabar. Problema, mes ketiname būti naudojant yra that-- problemos mes ketiname būti sukurti taip, kad mes iš esmės nori importuoti Mario iš C į iOS app. Taigi tegul vadina, kad Mario iOS. Žinoma galite nurodyti, ką jūs norite įdėti į savo projektą. Ir mes einame. Taigi tai yra šiek tiek didele, bet iš tikrųjų tai yra ką tik pamačiau ant skaidres. Ir Pirmoji sritis matome dabar iš esmės yra projektas konfigūraciją. Taigi viską, ką nori daryti Projektas, kokios įrenginio, tegul tiesiog pasakyti, kokios įrenginio jūs norite, kad jūsų app ant? Ar "iPhone", "iPad" arba universalus? Taigi prietaiso orientacijos, visa tai stuff. Nelabai svarbu, bet gali būti, bet tai yra vieta, kur jums sukurti Jūsų projektas, jei jums iš tikrųjų nori dislokuoti Apple parduotuvėje. Gerai, pažvelkime kažkas, kad yra viduje mūsų kodą. Vykime per failas navigatorius. Ir tai yra visi failai, kurie jau atėjo su šablonu, labai gražus. Taigi, kai mes spustelėkite vieną iš jų tai, kaip jis atrodo. Labai panašus į g redaguoti. Bet jūs galite pamatyti, kad sintaksės tikriausiai šiek tiek gražiau. Ir tai tikrai daug daugiau galingesnis nei g redagavimo. Ir jūs galite Automatinis užpildymas dalykų už jus daug, kaip matysime labai greitai. Leiskite pradėti derinimo srityje taip pat. Gerai, kaip matome, Konsolė yra čia. Tai yra tai, ką jūs ketinate pamatyti, kur Jūs esate printf ar nsloging kažką. Taigi, be tolesnio ceremonija, tegul iš tikrųjų sudaryti programą ir pamatyti, kas atsitiks. Vienas esminis bruožas s kodas, yra ta, kad s kodas ateina su iPhone simuliatorius. Taigi jums nereikia turėti iPhone išbandyti savo projektą, ai kodas gali imituoti, kad Jūs, kaip matome dabar. Tai labai gražus. Tai atsižvelgiant tiek tiek laiko, kad sudaryti ir iš esmės mes turime tuščias taikymas, kurios iš tikrųjų nėra nieko. Bet tai kaupia. Tai gana awesome. Tai daug geriau nei C, ar ne? Gerai, tada tegul bandyti ką nors pridėti. Vienas failas, kuris yra šiek tiek keistai čia vadinama siužetinės linijos. Tai iš tikrųjų yra didelis, nuostabus bruožas -ų kodą. Nes -ų kodas, jūs iš tikrųjų galite vilkti ir upuść elementus į sąsajos ir jis bus tiesiogiai rodomas. Pabandykime tai. Mes lašas etiketę čia "Hello World !!!" Mes galime centras, kuris. Gana kietas. Dabar galime paleisti šią langelio modeliavimas. Čia mes turime "Hello World !!!" Mes net ne daryti bet kodavimas dar. Ką gi vyksta? Tai kaip galingas Sąsaja statybininkas gali būti. Kažkas net sakė, kad jūs galite turbūt tik užbaigti be rašymo programą Tikriausiai tūkstantį eilučių kodo tik naudojant sąsajos kūrimo. Bet tai tikriausiai ne Geriausias būdas tai padaryti. Dabar galime faktiškai gauti iki kodavimo. Taigi dėl failo struktūra iš tikrųjų tikrai įdomu nes, kaip jūs galite pamatyti, yra nėra pagrindinė funkcija bet kur. Žr? Kaip jau minėta anksčiau, jūs galite pamatyti, kad tai yra įgyvendinti failą specialios klasės. Tačiau nėra pagrindinis visur. Taigi, kur yra pagrindinis? Tikrųjų, yra pagrindinis, bet Pagrindinis iš tikrųjų paslėpta nuo jūsų. Pagrindinis yra čia. Tai atrodo pažįstamas. Taigi, iš esmės, ką IOS daro viduje pagrindinis yra tai, kad kiekvieną kartą, kai pagrindinis yra vadinamas, kuris iš esmės yra kai programa yra vykdoma, ją sukuria objektą, pavadintą AppDelegate. Kaip jau minėjau anksčiau, visa App yra iš tikrųjų pats objektas. Taigi, tokiu būdu, iš esmės "iOS app pasakoja kompiliatorių kad gerai, aš ruošiuosi kurti produktas, vadinamas AppDelegate, ir kad bus mano app. Taigi jūs turite eiti per tą AppDelegate ir pamatyti, kas tas vaikinas daro. Mano darbas yra atliekamas už mane. Ir AppDelegate galite matyti, kad yra tikrai keista funkcijos, gerai iš tikrųjų metodai, kad "Apple" jau davė jums. Kas tai yra? Tai iš tikrųjų yra tik protokolai kad aš kalbu apie. Taigi tai yra įvykiai, kurie "Apple" davė jums pradėti. Nėra nieko kai funkcijų dabar, bet jei mes norime inicijuoti kažkas mūsų app prieš gaunant į rodote bet vaizdas, ir mes, kad čia. Jūs galite tiesiog skaityti pavadinimą ir spėju įvykis yra tikrai tikrai aišku. Taigi dabar pagrindinis sukūrė už AppDelegate objektas. Ir kas AppDelegate ketina daryti iš tikrųjų taip pat paslėpta nuo jūsų. AppDelegate ketina pradėti pakrovimo ViewController atsargų. Taigi tai iš esmės ketina pradėti pakrovimo visas nuomonę, kad jūs turite ir tiesiog padaryti nuomonės remiasi hierarchijos. Taigi, šiuo atveju turime tik vienas vaizdas, kuris yra čia. Taigi tai yra tik vaizdas kad ketina būti vadinamas. ViewController logika yra čia. Tai yra kodas, kuris yra iš tikrųjų kontroliuoja nuomonės mes tik pamačiau. Viskas gerai, darykime kažką čia. Taigi viewDidLoad skamba kaip įvykio, kai iš tikrųjų tai taip pat yra deleguoti, tai taip pat yra protokolas. Taigi kokia nuomone yra pakrautas, viskas viduje funkcijos bus vadinamas. Tokiu atveju turėtume pamatyti "Labas Tianyu! ", Jei mes paleisti programą. Tai vis tiek šiek tiek lėtai Sudarant siužetinės linijos failus. Na iš tiesų, mes pamatyti už jį produkcija. Tai gana kietas. Dabar galime iš tikrųjų Mario. Aš ruošiuosi apibrėžti veikti labai greitai. marioWithLevels: (int) lygio rezultatai. Viskas gerai, iš tikrųjų tai yra nuostabus bruožas KODAS auto užbaigimo. Taigi, kai jūs rašyti ir įveskite įvesti, jis jau atsisakė šabloną Jums, kurie yra gana kietas. Tai turėtų atrodyti tikrai pažįstamas jums vaikinai. Atsiprašome, kad tai mano kaltė. Gerai, gerai. Tai logika turėtų atrodyti tikrai susipažinę jums vaikinai, ypač tik Mario. Bet dabar mes atsispausdinti į Konsolės kiekvieną kartą, nes mes norime kažkaip išlaikyti kelio, ką mes spausdinate. Mes ketiname naudoti rezultatai kažkaip vėliau rodyti Spausdinti iš sukelti vartotojui. Taigi vietoj mes tiesiog nslogging viską, kuri mes laikyti viską į skambinimo funkcijos rezultatas, bet logika yra lygiai taip pat. Po to mes ją užbaigti, mes tiesiog atsispausdinti mūsų rezultatus. Ir čia vietoj spausdinti mano vardas, mes ketiname kreiptis į funkciją. Pažiūrėkime, kas atsitiks. Oi, žinoma. Mes turime gražus tiek piramidės čia. Tai iš esmės yra C, mes tik manipuliuoti, kur skambinti funkcija ir kaip funkcija atrodyti. Nėra nieko nesiskiria. Bet iš tikrųjų tai yra nėra labai įdomi čia nes mes nematome nieko iš "iPhone app. Taigi, jei jūs iš tikrųjų turite iPhone app-- jei jūs iš tikrųjų turi Mario iOS teisę dabar jūs nesiruošia nieko matyti, kad turi nieko bendro su Mario, nes visi tie išėjimai į konsolės yra paslėpta nuo vartotojo. Tai yra tai, ką matote, kuris yra "Hello World !!!" Nėra gerai. Dabar pabandykime atlikti naudotojas pamatyti kas tiksliai mes spausdinti. Taigi mums nereikia ženklinti nebėra. Pabandykime ir išsiaiškinti kažką kita, kad gali būti naudinga. Yra iš tikrųjų yra viena elementas, kuris yra vadinamas teksto laukas, kuris galėtų būti labai naudinga mums. Tai iš esmės parodo regioną teksto, kurie gali būti pakeisti. Taigi, kad atrodo tikrai naudinga. Dabar tegul vilkite jį ir palikite jį. Oho, mes turime teksto vaizdą mūsų nuomone, tikrai išgalvotas. Štai šiek tiek per didelis. Padarykime tai mažesnė. Padėkite ją į centrą. Padaryti mažesnis kaip gerai. Dabar mes turime tekstą vaizdą, kurį mes galime būti naudojamas rodyti mūsų galutinį rezultatą. Bet dabar tai tikrai nesiruošia dirbti nes yra no-- ViewController mes tiesiog apibrėžta nežino, kad yra teksto vaizdas ten. Taigi, mes turime kažkaip susieti teksto vaizdą mes tiesiog sukurta su klase, kad jau atėjo pas mus. Kaip mes tai padaryti yra tikrai tikrai stebuklinga. Taigi atverti storyboard. Yra specialus [nesigirdi] vadinamas [? asistentas?] [nesigirdi]. Kai paspausite, kad tai ketina atidaryti du failus. Vienas iš jų yra klasės ir kita yra atitinkantis vaizdas už jį. Tai labai, labai naudinga. Ir tegul tik eina per .h faile. Kontrolė, tai yra [nesigirdi] logika. Spaudos kontrolės ir vilkite teksto vaizdas į deklaraciją. Mes ketiname kreiptis, kad outputView. Prijunkite. Taigi čia mes paskelbė naują turtas mūsų ViewController klasėje. Ir naujasis turtas yra tik teksto vaizdas mes sukūrėme į sąsajos pastate. Taigi tokiu būdu mes galime prieiga visiems duomenys ir manipuliuoti viską, kas viduje išėjimas vaizdas, kuris yra nuostabus. Taigi mūsų tikrojo kodas, darykime ką nors su juo. Taigi šį kartą, kai mes esame, kaip spausdinti iš galutinio rezultato Mario, mes į ne prisijungdami nieko. Aš turiu galvoje, mes galime išlaikyti medienos ruoša pareiškimas. Be to, kad, mes siųsti rodmenis mes tiesiog sukurta į išvesties požiūriu, kurioms yra sąsaja TextView mes ką tik sukūrėte. Dabar pažiūrėkime, kas vyksta. Oho. Mes turime app piramidę dabar. Taigi vartotojas gali pamatyti mūsų produkcija, nes mes kopijuoti iš mūsų kodas produkcija mūsų sąsają. Tai gana gerai. Tai tikrai nereiškia, kad įdomu, nes mes can-- Viskas app daro yra rodo piramidę jums, ir nėra nieko galite padaryti apie tai. Tai nėra labai įdomu. Taigi dabar padarykime mygtuką kad bus išvalyti vaizdais. Atrodo, kad mygtukas bus naudinga. Vilkite ir upuść. Mygtukas vienas. Mygtukas du. Taigi, kai mes spustelėkite kairę mygtuką, vaizdas turėtų išvalyti. Turėtų būti nieko ekrane. Ir kai mes spustelėkite dešinysis mygtukas Mario, Peržiūrėti ketina pasirodyti dar kartą. Taigi, tai, kaip mes taip pat daryti magija stuff, valdymo ir vilkite į klasę į asistento director-- į asistento žiūrovas. Šiuo atveju mes nurodant kad turėtų būti veiksmų. clearMario. Taigi čia mes jau sukurtas veiksmas vadinamas clearMario, kuris yra metodas, kad būtų vadinama kai mes paspauskite mygtuką aišku. Taigi mūsų faktiškai kodas, tegul tik įdėti išėjimo tekstą ir išvesties vaizdą į nieką, ir tokiu būdu jis pasirodys, kad būtų aiškus. Be to, kad, kurkime kitas metodas vadinamas runMario. O gaila, kad neturėtų būti nuosavybė. Gerai, kad turėtų būti veiksmai, taip pat. Ir kai tai funkcija vadinama, mes tiesiog paleisti Mario dešimt. Kad Tikimės bus gerai. Ar tai kompiliuoti? Taip. Dabar mes turime vaizdą. Mes turime išėjimą. Ir tegul tik pamatyti, kas atsitiks. Tai dingo. Tai vėl. Taigi čia mes nurodyta kokios funkcijos bus vadinama, kai mes tipo kažką, kai mes paspauskite konkretų mygtuką. Tai iš esmės yra tikslinė veiksmų schema renginiui varomas programavimo C tikslo Be to, kad, tai nėra labai įdomu nes mes tikrai negali pakeisti kaip didelis piramidės bus, todėl mes tikriausiai norite kažkaip gauti įvestį iš naudotojo ir pakeisti aukštį piramidės remiantis ką jie produkcijos. Taigi mes ketiname daryti. Taigi, tai laikas, kai mes vadiname runMario, mes ne tik skambinti Mario tiesiogiai. Tai vienas titulas. Delegatas. Tai labai įdomu. Kas yra delegatas? Aš ruošiuosi įdėti save čia. Ir mes ketiname pamatyti ką tai reiškia vėliau. Taigi čia mes iš esmės sukūrė specifinis atvejis vadinamas UI perspėjimą vaizdas. UI perspėjimas požiūris Iš esmės tai, ką jūs matyti kiekvieną kartą kažkas pasirodo aukštyn ir prašo jūsų įvestį, kaip kas bus, kai jūs bandote pirkti kažką app parduotuvėje. Be to, kad po to, kai tau sukurti, mes tiesiog parodyti perspėjimą. Gerai, tegul tik greičiau testas, kad darbas ar ne. Tai labai kietas. Dabar galime iš tikrųjų sukurti įvedimo laukas UI perspėjimo. Tai, kaip mes tai padaryti. Ir mes turėtume įvesties vaizdas perspėjimo. Labai kietas. Leiskite tik pasakyti 10. Tai nieko nedaryti teisė dabar, nes skambutis iš tikrųjų nesikeitė vykdant Mario. Taigi tai tapo šiek tiek tiek keista, nes kai mes paspauskite mygtuką žemyn, kai mes paspauskite mygtuką įspėjimo nuomone, kažkas turi įvykti, bet tai neatsitinka. Kaip mes sugauti, kad? Kaip mes žinome, kad vartotojas atmetė įspėjimo vaizdas ir jau įžengė į skaičių, nes dabar nieko iš tikrųjų vyksta. Na, jūs galėjote atspėti jis teisus, delegacija. Taigi, be to, visi šie pareiškimai, mes turime pridėti naują delegaciją jis vadinamas UI perspėjimas vaizdo delegatą. Taigi, kad kiekvienas sąveika arba įvykis kad mes ketiname turėti su vartotojo sąsaja įspėjimo nuomone bus tvarkomi mūsų klasės taip pat. Taigi, be to, kad, bus įspėjimo vaizdas spustelėkite mygtuką indeksą. Tai pasiekiama. Taigi šiuo atveju turime already-- todėl mes turime sužinojau protokolą, kad atliks įvykį, kai mes spustelėkite mygtuką "Atlikta" nuo įspėjimo nuomone. Taigi kiekvieną kartą, kai mes atmesti perspėjimas nuomone, tai turėtų įvykti. Leiskite išbandyti jį labai greitai. Na iš tiesų, mes pasiekėme čia. Taigi čia, ką mes ne faktiškai gauti iš tiesų yra gauti the-- Taigi, mes norime išeiti tekstas, kad mes turime anksčiau įrašytas į įspėjimo nuomone. Ir remiantis tekstą, mes ketina rodyti Mario. Tai labai greitai paaiškėja, jei ji iš tikrųjų veikia, ar ne. Taigi, tuo atveju, jei mes įvesties, tarkim, 10, turėtume pamatyti 10. Labai geras, mes turime skaičių čia. Tai gana gerai. Dabar paskutinis žingsnis bus be-- Taigi Paskutinis žingsnis turime padaryti dabar tiesiog skambinti Mario su lygis, remiantis įvesties kad mes įdėti į įspėjimo nuomone. Taigi mums reikia konvertuoti Ši eilutė į iOS. Statinis perpildymo yra labai nuostabus. Ir tada mes tiesiog paskambinkite savarankiškai marioWithLevels vertė. Pažiūrėkime, bus, kad faktiškai dirba, ar ne. Mes jau suteikta piramidę. Pabandykime pakeisti aukštį. Tai tikrai veikia. Tai gana kietas. Taigi, kad dabar jūs galite tik įvesties bet kokia vertė norite. Leiskite tik pasakyti keturi. Tai gana nuostabus. Taigi tai iš esmės tikrai greitas pavyzdys už tai, kaip sukurti S kodas projektą ir kaip tikrai greitai viela iki keletas tikrai paprasti įvykiai ir funkcijos. Taigi šaltinis vyksta turi būti įdėti internete vėliau. Taigi, jei jus domina Kaip "iOS Mario veikia, Aš ruošiuosi įdėti lygiai tas pats projektai ant CS50 tinklalapyje vėliau. Mes iš esmės daroma su vasarą, prieš baigsime Aš tik noriu jums priminti vaikinai keletas tikrai awesome išteklių, yra prieinami internete. Akivaizdu Apple "dokumentacija bus labai naudinga. Bet be to, kad, I, ypač Rekomenduojame keturių šaltinių kodas mokyklos, medis namas, AppCoda ir WWDC video. Kodas mokykla ir medis namas yra dvi lankosi šviesti interneto svetaines, kurie konkrečiai skirti apie programinės įrangos inžinerijos. Ypač kodas mokyklos, jie turi tikrai gera pamoka apie iOS. Tai yra tikrai greitas pavyzdys jį. Jie iš tikrųjų sukurti tikrai cute-- pažvelgti į tą mažai mielas iPhone miestietis ten, tai gana awesome. Ir kaip jie paaiškina tikslas C sintaksė yra visiškai skaidrus. Medis namas yra tas pats. Ir AppCoda yra forumas. Tai tikrai dienoraštį, kad buvo paleisti pagal tikrai patirties tikslo C programuotojas. Ir visi tie vadovėliai į AppCoda yra gana trumpas ir lengvai įgyvendinti, labai rekomenduojama. Ir jei esate kūrėjas, tikrai eiti patikrinti kaip WWDC video, kur Jūs galite sužinoti apie naujausias iOS programavimo būdai, API ir bibliotekos. Taigi, kad yra gana daug tai seminaro. Labai ačiū. Ir aš tikiuosi, kad jūs smagiai kurti savo iOS app.