Tianyu LIU: Hej, kako je to se dogaja vsem? In to je iOS App programiranje objektivne c seminarja. In moje ime je Tianyu Liu. Sem Lowell junior prav zdaj, usmeriti v računalništvu. Torej, v tem seminarju sem bo naučil fantje malo o tem, kako narediti aplikacijo. Bravo, razburjaj se za to. Torej, preden se sploh začnejo potapljanje v dejanski programsko strani Dovolite samo res hitro govoriti o Zato boste morda želeli zgraditi iOS aplikacijo? Zakaj je iOS tako super? Torej je prvi problem, prvi stvar, ki je precej super za nas, predvsem kot CS50 študent, je, da je iOS uporablja Cilj C. No, tam je nov jezik imenovan Swift, vendar mi ne bo uporabiti, da v tem seminarju. Če ste zainteresirani za Swift, tam je neodvisna seminar o tem. Vendar Cilj C je v bistvu nadgradnja C. Pomen da je vse, kar lahko uporabite v C lahko se prevede v Cilju C zelo enostavno. Kot ste lahko videli pozneje, da je res obstaja nekaj zelo osnovno sintakso, so v bistvu popolnoma enako, C in Cilj C. Torej, Ker ste vzeli CS50 up to sedaj že vem Cilj C, najmanj 40%. Tudi Apple ima res robustno API za iOS. Obstaja veliko res noro stvari, ki jih lahko narediš z njim. Eden od katerih je nekdo dejansko ustvarila aplikacijo za iOS za nadzor avtomobilov, je zelo zanimivo. Verjetno helikopter je bolj razburljivo. Ampak, to je, kako močan iOS API lahko. In kot ste morda pogruntal zdaj, stack overflow je verjetno ena izmed najpomembnejše spletne vire na voljo za vas. In dobra novica, za vsak en sam problem lahko morda pomislite pri gradnji vašega Končni projekt v cilju C, verjetno obstaja kup overflow odgovor. To je samo super. Poleg tega, iOS je res platforma kjer lahko doseže velik občinstvo z malo truda. To ni všeč Android, kjer vse, kar je precej razdrobljena. Vse, iOS je enotna. In tako dolgo, kot si ustvarite Aplikacija za iPhone, lahko zelo enostavno port da iPad, iPad mini ali različnih velikosti iPhone. To so vse zelo priročno. In to je samo res dober za navdušujete svoje prijatelje. Lahko samo držite iPhone in obvestite svojega prijatelja hej, To je app naredim. To lahko storite, da se za vsaka namizne aplikacije, ki je lepo. Vse je v redu, zdaj pa si dejansko dobili v jezikovno Cilj C. Torej, zakaj ne začnemo z nekateri res osnovno sintakso. Kot sem že omenil, Cilj C To je v bistvu nadgradnja C. Torej, veliko osnovne sintakse so dejansko popolnoma enak. Razglasitvi spremenljivko in dodal dve spremenljivki skupaj je točno tako, kot smo to storili v Mario. Nič novega tukaj. Podobno podnajemnik za zanko in stanje je tudi enak. Lahko naredite zanko tako kot tebi so naredili v Mario [neslišno]. In lahko naredite pogoje tako kot tisto, kar delal v vaših prejšnjih str nizov. Vendar Cilj C ni povsem C in tam je nekaj, je nekako čudno o njej. Prva je, da ko ste početje programiranja C, jih po navadi imenujemo vključiti in nato ime knjižnice. Ampak v cilju C pokličete, da se uvoz. V bistvu pravi, funkcionalnost, le različna imena. In strune so pravzaprav malo čudno. Vidite lahko, da je prvi stvar, ki je nekako čudno je, da imate precej weird-- sorry-- imate precej čudne NS Tu se prijavite preko. In druga stvar, da je nekako čudno se boste morali na znaku pred dejansko razglasitvi niz. Torej na znak v bistvu pomeni da je niz ni le niz, je dejansko predmet. Bomo razložiti ki je kasneje to ne panika, če ne razumeti, kaj to pomeni. In tiskanje na konzoli je malo drugačna, ker v C pravimo printf, ampak v cilju C pravimo [neslišno]. Morda se sprašujete, kaj je to. To je v bistvu printf, Samo drugačen jezik. Točno enako uporabo, natanko isto funkcionalnost. No, izkaže se, da Cilj C dejansko Ima ns predznak v skoraj Vse, vsak osnovni podatkovni tip, nsstring, nsarray, nsdictionary. Razlog je, da ns dejansko stoji za naslednji korak, ki je podjetje, ki Steve Jobs je ustanovil, ki je podjetje, če Cilj jezik C je bil rojen. Torej, to je v bistvu tradicija. Vem, da je malo čudno, vendar je Apple. Torej nekaj, kar je še bolj čudna kot da je izjava funkcija. To je zelo drugačen od tistega, kar glej v C, ker sem ga dejansko ne izgleda kot C anymore. Kaj vam here-- imajo s Tako to ni zaporedna točka To je znak minus. Imate minus znak zaklepaj nična in nato ime funkcije. Reciva, če smo imajo Hello World, nato pa Tip donos bi neveljavne ker se vrnemo nič. Kaj dobi res čudno je, da ko ste ob več kot en parameter poteka v isto funkcijo, da bo res čudno, kot je prikazano tukaj. Imamo ime metode, imenovano addInt na [neslišno] in smo mimo en parameter. Toda po tem, imamo Več ime metoda klic s. In potem z bomo mimo drugi parameter. To je pravzaprav malo čudno, ampak vse te funkcije izjave sledijo istemu vzorcu kot to. Imamo minus znak za začetek. Negativni predznak je lahko znak plus včasih temelji na Kakšno metodo je to. Postopek je v bistvu drugo ime za funkcijo. In bomo pojasnjujejo, da kasneje, ko govorimo o objektu usmerjeno programiranje. Si najprej določite vrnitev tip znotraj oklepajev, po katerem prihaja ime metode. Ste mimo en parameter. In če imate več parametrov morate razširiti ime metode in v bistvu napisati nekaj več tukaj. Lahko bi bilo karkoli želite. V našem primeru je to s. Vendar bi lahko rekli, konec, ali, ali, ali abc polno bar, kar hočeš. In potem, ko da ste poteka parametra b. To je res čudno Konvencija vendar smo bomo videli, zakaj Apple je želel za to, da zelo hitro. Torej, kako si funkcijo poklicati? Kliče funkcijo v Cilj C je prav tako razlikuje od C. Pravzaprav, kliče Funkcija v cilju C je več, kot da ste v pogovoru z nekom. Tukaj imamo jaz, ki se imenuje predmet. Ste v bistvu povedali ugovarja samo reči "Hello World!" To je, kako klic funkcije. Objekta in ime metode medsebojno kombinirati. In to je, če čudno razširitev za ime metode res prihaja v igro. Oglejmo si drugi primer. Pravkar smo definirali metodo, imenovano addInt z blah blah blah. Torej, v tem primeru, ko se kliče da specifična [? sporočilo?] to se dogaja videti kot samostojno addInt: 10 z: 2. Sliši se kot angleškem jeziku. Čeprav funkcijo Izjava funkcija je čudno, točka ih Objective C Vzorec metoda izjavo, je, da ko se kliče funkcija ali metoda da bo zvenelo kot dejanski angleščini. Torej, to je zelo intuitiven ko prideš vanjo. Zlasti v tem primeru, kjer si lahko v bistvu videti, da je ime funkcije nekako dokumentiranje sama. Ne boste potrebovali bolj razlaga za prikaz kaj točno se dogaja, kaj natanko en parameter početje. Greš po tem, kaj je govoril malo bit okoli objektnega programiranja. Objektno programiranje je eden od temeljnih programiranja tehnike ali vzorci, da je Cilj, ki ga C. Cilj C uporablja se imenuje Cilj C, ne C, za res dober razlog. Torej, preden smo prišli v Cilj C sintaksa, Oglejmo res hitro poglej kaj točno je predmet. Verjetno smo naredili nekaj kot predmet prej, ki se imenuje struct, ko ste izvajanje drevo ali povezani seznam ali [? poskusiti. ?] Torej, to je v bistvu kot struct, vendar je veliko močnejša kot to. Objekt ima metod in lastnosti. Metode so v bistvu funkcije. V bistvu deluje, da specifične za določen predmet. In lastnosti so v bistvu Polje podate v struct. Torej za vsak objekt imamo nekaj premoženja da je nekaj spremenljivk, ki so specifične za objekt. In imamo nekaj funkcij, ki jih so tudi specifične za objekt. In funkcije imenovane metode ter spremenljivke se imenujejo lastnosti. To je le izmišljeno ime. Medtem ko vas dejstvo, vsak pogled vidite, ko odprete aplikacijo za iOS, naj samo povem, Twitter ali Facebook, vsak pogled vidite, je objekt. In tudi celoten app je objekt za začetek. Zelo zanimiv koncept. In zakaj ne želimo predmet usmerjeno programiranje? Torej si lahko predstavljate, da pri vas Program postane precej zapleteno. Reciva, ko ste izvajanje šahovnici, logika se bo je res zapletena. Imaš 36 različnih kosov, tako da, če ste želite napisati logiko za vse 36 različnih kosov v šahu, da se dogaja, da je veliko različne funkcije in spremenljivke. To je veliko težav. In verjetno boš napisati drugačen način ali različna funkcija za vsak kosu natančno nadzorovati, kaj počnejo. Ampak, če vam objektno usmerjen programiranje, vse te koščke lahko odvzete v en sam predmet. In objekt bo imel nekaj skupnega lastnosti, kot so, kakšen kos je to? Kakšne barve je? Kako se lahko premika? In na ta način imate močno poenostavljeno logiko nje. Torej, to je samo res dober način da bi zapletene programe, in hierarhično razmerje v programu, zelo preprosta. Kot bomo videli Zato zelo hitro, ko smo pravzaprav počne programming-- ko smo dejansko delaš S kodo programiranje sejo kasneje. Ker poleg tega, objektno programiranje je le veliko zabave. Imaš, da oblikujete svoje lastne predmet. Imaš oblikovati kaj bilo videti, kot sami. Ni pravi odgovor nanj. In to je povsem zanimiva. Torej, v objektno programiranje, dve temeljni koncepti bo razred in primerek. Razred je v bistvu Predloga za objekt. In primer je v bistvu en določen predmet. Reciva, da ste kar piškotek. V tem primeru, vsak Piškotek ste dejansko končajo z se bo objekt. Vendar piškotek plošča uporabljate za peko vse piškotke bo razred. Razred je v bistvu predlogo. In primer bo ena posebna Objekt je izdelan iz tega razreda. In bo ustvaril primerek na podlagi izjave razreda, kot bomo videli v naslednjih diapozitivih. Torej, kaj je dejansko naredil res Hitro primer [neslišno]. Recimo, da smo o razglasitvi objekt za mačko. Predmet treba have-- Razred mačka naj ima nekaj lastnosti in metode. Kakšno lastnosti morala Razred have-- morala mačka? Na primer, barva, starost in pasma, tisti, bo spremenljivke, so specifični za vsako mačko. In tistih, ki so nekaj stvari ki jih uporabljamo za opis mačko. Kakšno metodo, ali kaj lahko storite mačka? Nekaj ​​kratkih zgledov bi chase miška, jedo ribe ali samo mijav. To je res hitro Primer mačke razreda. In res posebna mačka objekt bo mačka kjer smo opredeliti barvo, starost in pasma. V tem primeru je naš cilj je več razred več. Mi kopirati predlogo iz razreda, in moramo opredeliti vsako specifične informacije v tem specifičnem predmetu da je neodvisen. In ko se kliče Postopek v notranjosti objekta, vi samo pokličite mijav na objektu, ki je mačka ste ga pravkar ustvarili. Verjetno vam bo izpisal nekaj podobnega "Zdravo svet! Mijav. " Pretty srčkan. Vse je v redu, kaj je prav se v nekaterih podrobnostih in videli, kaj počne, da je prevesti v čemer iOS programiranje. Torej, v iOS programiranje vsak razred se bo izvajal v dveh datotekah. Ena datoteka je tukaj, ki se imenuje vmesnik. Še ena datoteka je tukaj, ki se imenuje izvajanja. Značilno vmesnik bodo imeli extension.h kot smo videli v knjižnicah C. In izvajanje datoteka dogaja, da imajo extension.n. To je čudno. Toda .N pomeni dejansko .c, ni Temeljna razlika med tistimi, dve. Torej, v tem primeru lahko vidimo, da smo razglasitvi vmesnika, kat: predmet. To se imenuje dedovanje. Mi smo v bistvu podedovali cat razred od razreda objekta. Torej vsaka lastnina in metoda, ki je bila je definirano prej v razred predmeta bo samodejno definirano v razredu mačke, kot tudi. Poleg tega, določimo barvo, pasmo in starost, tri spremenljivke. Da dejansko izgleda kaj ste storili prej. Izgleda kot struct. To je v bistvu sintaksa za izjavo struct, in da je popolnoma pravilna. In ker sem že prej omenil, Razlika struct in predmet, eden temeljne razlike je, da je predmet postopka, medtem ko ima struct le spremenljivke. Torej poleg lastnosti ali spremenljivke, ki smo jih ustvarili za objekt, moramo navesti nekaj metodo. Reciva, tukaj imamo dva načina, eden je mijav, eden bo chase miško. Verjetno želimo biti poteka parameter, ki temelji na naši prejšnji metodi Vzorec izjave. Boste verjetno želeli, da se gre z miško. In boste verjetno želeli vrniti bool naznaniti Če ima vaša mačka uspešno ujela miško ali ne. To je vmesnik, vendar smo lahko vidimo, da se vmesnik dejansko ne naredi ničesar. To samo pove, kaj program exists-- kar obstaja v razredu kat. Torej, da bi za Program nekaj narediti, moramo imeti pri izvajanju datotek. Torej, tukaj je prva stvar, ki mi je očitno uvažamo vmesnik. Po uvažamo vmesnik, definiramo metodo. Reciva tukaj mijav bi samo natisnete "Hello World!" konzolo. Izvajanjem in po njem Datoteka, smo precej narediti. To je v bistvu razred Izjava za en razred. Torej, zdaj vprašanje je, kako si razglasi spremenljivko? Tako boste uporabili razred za ustvarjanje Objekt v cilju C je napisano tukaj. Morate najprej določiti, da To je mačka kazalec, saj vsak predmet v cilj C se končno izvaja kot kazalec. In pokličete razred, jih pokličete kot Aloc, ki je v bistvu malloc, povedal operacijski sistem, ki vam Potrebujem nekaj pomnilniškega prostora za ta objekt. Po tem boste morali predmet že in ga le zažene. To je le konvencija. Vem, da je malo čudno, vendar To je pravzaprav, kako Apple počne stvari. Dodeljevanje lastnosti je pravzaprav precej enostavna. To je zelo podoben Kaj počneš, ko ste dodeljevanje nekatere posebne Polje znotraj struct. Imate samo spremenljivko ime, ime lastnosti, in dodelite posebno vrednost. In kliče metoda je zelo podobna. Kliče metoda v bistvu tisto, kar sem govoril o za klice v katero koli metodo, v cilju C. Ste mimo objekta, v V tem primeru pa se dogaja, da myCat, in si podajali ime metode. Kot če ste v pogovoru z objekta, myCat, da bi morali mijav. To je zelo zanimivo. Po tem, da je ena bolj pomembno oblikovanje vzorec da moramo govoriti o preden bo dejansko S kodo. Da oblikovanje vzorec se imenuje dogodku programiranja. To je verjetno tudi eden izmed najbolj temeljne ideje v iOS programiranja. Tako da vam verjetno ne vedo, kaj točno je ob dogodku programiranje, vendar pa to ni res, da je grozno. No, v bistvu, imate že storili doslej. To je ena od linij, ki ste jih verjetno že napisal v zadnjem [neslišno] od CS50, google.maps.event.addListener (marker, "Klik", funkcija () {}) :. S klicem te vrstice ste v bistvu pripoveduje računalnik da se vsakič, ko se imenuje dogodek "Klik" se zgodi na marker, uporabite to funkcijo. To je zelo drugačen od kaj si naredil v mario.c. V mario.c si samo zagnati program enkrat, saj vam daje moč, in ste končali. To so nekako kot En strel programi. Usmerjenih dogodkov programi so zelo, zelo drugačna. Predstavljajmo si, če je Facebook je ena shot program, to ni ravno dobro. Greš na Facebooku enkrat je to storjeno. To vam daje nekaj izhod in nikoli dobil nazaj. Nikoli ne dobil ničesar več. Torej tukaj, zlasti Vzorec, ki jih uporabljamo, je dogodku, tako da vsako funkcijo bo ujele temelji na tisto, Dogodek se je zgodilo. Na primer, če imamo gumb in mi navesti da, kadar je ta gumb kliknili, pokličite funkcijo imenovano "Hello World!" Na ta način smo lahko res upravljanje funkcije logiko pritekale v zelo prožen način. Uporabnik lahko storite ali pokličite funkcijo ki je bil že imenovan. To je v celoti temelji na kaj uporabniki. Tako lahko vidimo, da je to dejansko veliko bolje kot mario.c. In dobra novica je, da je pravzaprav ni nov koncept. Vidva sta že storila da v zadnji problem nastaviti. Torej, v cilju C obstajajo trije različni diagrami Za dogodku programiranja. Prvi diagram imenovani ciljni ukrepi, kjer se vežejo na gumb pritisnite z neko funkcijo. Reciva, ko boste kliknili nekateri gumb, pokličete nekatere funkcije. To je zelo preprosta ciljni ukrep. Drugi je dejansko najtežje, to se imenuje delegacija na protokol. Bomo razložiti da zelo podrobno kasneje. In tretji način je obveščanje. To je dejansko ni Zelo pomembno je, kolikor kot smo to zadeva, ker je priložnost da boste za uporabo obvestila v svojem zadnjem projektu je precej nizka. Torej bomo preskočite ta del. In bomo potapljati v delegacije o protokolu. Torej, kaj točno je protokol? Ali pa, kaj točno je delegacija? Spregovorimo o protokolu za začetek. Protokoli so nič, ampak dogodkov. Vendar pa so ti dogodki imeli si ga Apple za začetek. Na primer, jaz nisem popolnoma prepričani, koliko vas Fantje uporabljajo Applov izvirnik app mail ali stik, ampak vsakič, ko se premikate miza in pritisnite posebno celico na mizo, ki je dogodek. In če hočeš narediti da je dogodek, ki ga sami, to je pravzaprav malo težko. Tako je Apple dal, da tudi za vas tako da si lahko samo neposredno uporabo Dogodek nekaj storiti na svoje. Protokoli so dejansko res, res pogosto uporablja v cilju C. dobro Dejstvo, vsak app Ima nekaj ujeti app delegata. Znotraj občutljivo je vse protokoli za nakladanje aplikacijo. Reciva, da je dogodek za app naredil obremenitev. Torej, kaj naj bi se zgodilo po tem, ko ste jih ustvaril app, ko odprete aplikacijo, Ko zaprete aplikacijo, ali po si dal iPhone spati. To so dogodki, ki jih ima že dobil s tabo. In sprva znotraj teh delcev ne bo izvedba. Apple vam samo povedal, da te funkcije se bo zgodilo, ko se nekaj zgodi dogodek, ampak kaj si naredil s tem Funkcija je povsem odvisno od vas. Delegacija je v bistvu pripoveduje razred da bi morali ravnati te protokole. To je malo zmedeno, vendar pa bo veliko bolj jasno, ko delamo kode S v ukrepanje. Delegacija na protokol je dejansko zelo trden mehanizem v smislu da če bomo delegacijo določenemu razredu, bomo lahko v bistvu ročaj vse vrste dogodkov uporabo katerega koli razreda imamo, zelo priročno orodje. Torej en hiter primer za Delegacija na protokolu bo, kar sem govoril. Ta protokol je posebej pozval tableview [neslišno] izberite vlogo na [? Indeks?] [? mimo. ?] Torej, to dogodek, ki bi se ujela, ko vas dejansko dotaknete specifična celica v vašem tableview, recimo, na vašo pošto ali v vašem imeniku app. Znotraj funkcije je bilo prvotno nič ne delaš. Funkcija ne storiti ničesar privzeto. Vendar pa lahko določite kaj funkcija počne, dati kaj hočeš od vašega app. Zelo priročno orodje. In z vsem, kar je rekel, sem v bistvu zajema nekaj zelo osnovno sintakso in temeljni koncept za Cilj C programiranje, in ne moremo narediti nekaj -e kodo. Veliko bolj razburljivo. Torej je oznaka dejansko malo prepričljivo ko ga odprete prvič. En hiter note, tako da, če vas želite storiti razvoja iOS, Priporočam imate Mac. Ker gre razvoj na iOS Windows je zelo, zelo težko. To je izvedljivo, ampak to je res težko. In si je vsekakor storiti ne želite uporabiti g urejanje. Torej, v ih kodo imamo več različnih področij. Ko prvič odprli s kodo boste videli navigacijsko območje, ki v bistvu vam pokaže vse datoteke, ki je v trenutnem projektu. Imate območje orodne vrstice, ki je v bistvu upravljanje poglede, ali nekaj malo hitro Orodja za približno ih same kode. In to je dejansko urednik območje. To območje je zelo podobna g uredi, vendar veliko bolje kot g uredi. In v tem pravem območju, je imenovano območje pripomoček. Območje postane res prav, ko ste ustvarjanje vmesnika ali z navedbo nekaj hitrih postavitve za vašo aplikacijo. In končno območje razhroščevanje. To področje vsebuje konzolo. Torej, ko ste rekli, printf, ali nslog v našem primeru, vsi vaši rezultati dogaja se tukaj natisne. Vse v redu? Mislim, da smo lahko res hitro narediti Primer za iOS programiranje. In kaj je pravzaprav odpirajo s kodo. Torej, vsakič, ko boste odprli s kodo, je dogaja, da pokažejo nekaj takega. To se dogaja, da vas prosim, Kaj želite narediti? Ali želite, da začnete nekaj naključno, otroško igrišče, v bistvu ste Lahko samo preizkusiti kodo brez dejansko stori katero koli aplikacijo. Ali želite ustvariti nov projekt? Ali želite nadaljevati delajo na obstoječem projektu? V našem primeru bomo ustvariti nov projekt. Torej, to je res lepo, S Koda dejansko ima že dal nekaj predlog za ustvarjanje predmetov. Če želite narediti igro, s kodo dejansko ima predlogo igra za vas, ima stran temelječih aplikacij, Kartica aplikacija. V tem primeru bomo narediti nekaj zelo preprostega, in da bomo uporabili en sam pogled aplikacija. Po tem, kaj želite poklicati vaš izdelek, in kako ti je ime, kaj je tvoj identifikator, in kateri jezik uporabljate. Tukaj ne želimo, da se preveriti uporabo osnovnih podatkov. Core Data je v bistvu databasing iOS. Če boste to storili Core Data, s Koda se bo opredeliti veliko bolj zapletene razredi za vas. Tako, da je vse enostavno, smo le, da bo naredil brez osnovnih podatkov zdaj. Problem bomo biti uporabljate, that-- problema bomo ustvarili je, da smo v bistvu želite uvoziti Mario od C na iOS app. Torej, recimo, da je Mario-iOS. Seveda lahko določite, kaj vas želeli postaviti v vašem projektu. In tam gremo. Tako da je to malo velika, vendar je to v resnici kar smo pravkar videli na diapozitivih. In prvo področje vidimo zdaj je v bistvu konfiguracija projekta. Torej vse, kar želite storiti Projekt, kakšno napravo, naj samo povem, kakšno napravo hočeš vaš app, da se pojavi na? Ali je iPhone, iPad ali univerzalno? Torej usmerjenost naprave, vse te stvari. Ni zelo pomembna, vendar bi lahko, vendar je to je kraj, kjer se ustanovi vaš projekt, če ste dejansko želijo napotiti v trgovini Apple. Vse je v redu, si oglejmo nekaj, kar je v naši kode. Gremo skozi datotečni navigator. In to so vse datoteke, ki so že prišel s predlogo, zelo lepo. Torej, ko smo kliknite enega od njih To je tisto, kar izgleda. Zelo podoben g uredi. Vendar pa lahko vidite, da sintaksa poudarjanje je verjetno malo lepše. In to je v resnici veliko več močnejši od g urejanje. In lahko avto popolna Veliko stvari za vas, saj bomo zelo hitro videli. Odprimo območje debugging kot dobro. Vse je v redu, kot smo lahko videli, konzola je tukaj. To je tisto, kar boste videli, kje ste v printf ali nsloging nekaj. Torej, brez odlašanja, kaj je dejansko zbere aplikacijo in videli, kaj se bo zgodilo. Ena bistvena lastnost za s kodo, je, da je koda prihaja z iPhone simulator. Torej vam ni treba imeti iPhone, da poskusite svoj projekt, s kodo lahko simulira, da je za vi, kot smo lahko videli prav zdaj. To je zelo lepo. To je ob nekoliko malo časa za pripravo in v bistvu smo prazna aplikacija, ki dejansko ne naredi ničesar. Ampak to pripravlja. Res je super. To je veliko bolje kot C, huh? Vse je v redu, potem pa poskusite dodati nekaj. Ena datoteka, ki je malo čudno, tukaj se imenuje storyboard. To je pravzaprav velika, super lastnost za -e kode. Ker v ih kodo, lahko dejansko drag si in spustite elemente na vmesniku in bo neposredno prikazal. Poskusimo, da. Mi padec etiketo tukaj, "Hello World !!!" Mi lahko center, ki. Precej kul. Zdaj pa zagnati to simulacijo stop. Tukaj imamo "Hello World !!!" Mi sploh ni naredil nobenega kodiranja še. Kaj za vraga se dogaja? To je, kako močan Interface Builder lahko. Nekdo je celo rekel, da je lahko verjetno samo dokončati aplikacijo brez pisanja Verjetno tisoč vrstic kode samo s pomočjo Builder vmesnika. Vendar to verjetno ne Najboljši način, da to storite. Zdaj pa dejansko priti do kodiranja. Tako strukture za datoteke je pravzaprav res zanimivo ker, kot lahko vidite, obstaja ni glavna funkcija kjerkoli. Oglejte? Kot smo že omenili, lahko vidite, da je to je datoteka izvedba za določen razred. Vendar ni glavna kjerkoli. Torej, kje je glavni? Pravzaprav je glavni, vendar Glavni je pravzaprav skriva od vas. Glavno je tukaj. Da izgleda znano. Torej v bistvu, kaj iOS počne znotraj glavnega je, da se vsakič, ko je glavna imenovan, ki je v bistvu kadar se app izvedeno, ustvari predmet, ki se imenuje AppDelegate. Kot sem že omenil, celotna app je pravzaprav predmet sam po sebi. Torej, na ta način, v bistvu iOS app je povedal prevajalnik da je OK, grem, da ustvarite izdelek se imenuje AppDelegate, in da se bo moj app. Tako da boste morali iti skozi to AppDelegate in glej, kaj ta tip počne. Moja naloga je naredil zame. In v AppDelegate lahko vidite, da obstaja nekaj res čudne funkcije, tudi dejansko metode, ki Apple vas je že dal. Kaj je to? To so pravzaprav le protokoli da sem govoril. To so dogodki, ki Apple vas je dal na začetek. Nič ni v nekaterih funkcij, prav zdaj, ampak, če želimo, da bi začeli nekaj za naše app preden bo v prikazovanje vsaka pogled, to storimo tu. Lahko samo prebrali imena in mislim, Dogodek je dejansko res jasno. Torej, zdaj glavna je ustvaril objekt za AppDelegate. In kaj se dogaja AppDelegate storiti se dejansko skriva tudi od vas. AppDelegate se bo začela nalaganju ViewController parka. Torej, to je v bistvu šlo za začetek nakladanja vse poglede, ki jih imate in šele postane pogled ki temelji na hierarhiji. Torej v tem primeru imamo samo en pogled, ki je tukaj. Tako, da je le pogled da se dogaja, da se imenuje. ViewController Logika je tukaj. To je koda, ki dejansko Nadzor stališče smo pravkar videli. Vse je v redu, kaj je tu kaj storiti. Torej viewDidLoad zveni kot dogodka, ko v resnici je to tudi delegat, To je tudi protokol. Torej, karkoli se pogled naložen, Vse znotraj funkcije se bo imenoval. V tem primeru bi morali videti "Hello Tianyu! "Če zaženete program. To je že malo počasen sestavljanje storyboard datotek. No, res, ne vidimo izhoda za njo. To je zelo kul. Zdaj pa dejansko storiti Mario. Grem opredeliti Zelo hitro delovanje. marioWithLevels: rezultati (int) ravni. V redu, to je pravzaprav super Značilnost s kodo samodejno dokončanje. Torej, ko pišete za in tip vstopiti, je že obupal predlogo za vas, kar je precej kul. Da je treba pogledati resnici seznanjeni, da vas. Žal mi je, da je moja krivda. Vse je v redu, v redu. Da logika bi morala videti res pozna za vaju, predvsem samo Mario. Vendar bomo zdaj izpisal na konzola vsak čas, ker želimo, da nekako obdržati tir, kar smo se tiskanje. Bomo uporabili Rezultati nekako kasneje, prikazati tisk iz posledico uporabniku. Torej, namesto, da smo pravkar nslogging vse, ki smo shranjevanje vse v rezultat klic funkcije, vendar logika je povsem enako. Ko smo ga, končamo samo tiskanje naše rezultate. In tu namesto tiskanje my Ime, bomo pokličete funkcijo. Poglejmo, kaj se zgodi. Ups, očitno. Imamo lepo malo piramida tukaj. To je v bistvu C, smo pravkar manipulacijo, kadar pokličete funkcijo in kako funkcija izgledal. Ni nič drugačen. Toda to je dejansko ni zelo razburljivo igro, ker nismo videli karkoli od iPhone app. Torej, če ste dejansko imajo iPhone app-- če ste dejansko imajo Mario iOS pravico zdaj, ne boš šel da vidim ničesar, kar ima to kaj opraviti z Mario, ker vsi ti izhodi v konzoli skrita od uporabnika. To je tisto, kar vidiš, ki je "Hello World !!!" Ni dobro. Zdaj pa poskusite narediti uporabnik vidi kaj bomo tiskanje. Tako da nam ni treba več označevati. Poskusimo in ugotoviti, kaj drugega, kar bi lahko bilo koristno. Tam je dejansko ena Element, ki se imenuje polje besedilo, ki bi lahko bi bilo zelo koristno za nas. To je v bistvu prikazuje regijo besedila, ki ga je mogoče urejati. Tako, da izgleda res koristno. Zdaj pa ga povlecite in ga spustite. Wow, imamo pogled besedilno po našem mnenju, res fancy. To je malo prevelika. Naj bo manjši. Ga v centru. Naj bo manjši, kot dobro. Zdaj imamo pogled besedila, ki smo ga lahko se uporablja za prikaz našega končnega rezultata. Ampak zdaj je zagotovo ne bo šlo ker je no-- ViewController smo pravkar opredeljena ne ve, da je pogled na tekst tam. Zato moramo nekako povezati pogled besedila smo pravkar ustvarjena z razredom, ki je že z nami. Tako delamo, da je dejansko res čarobno. Tako odpirajo storyboard. Obstaja posebna [neslišno] imenovanega [? pomočnik?] [neslišno]. Ko kliknete, da je to bo odprla dve datoteki. Ena je razred in druga je ustrezen pogled na to. To je zelo, zelo koristno. In kaj je samo gre skozi datoteke .h. Control, to je [neslišno] logika. Press Control in povlecite Besedilo pogled v izjavi. Mi bomo za klic, da outputView. Povezavo. Torej, tukaj smo razglasila novo premoženje za našo ViewController razredu. In nove nepremičnine je le pogled besedila smo ustvarili v stavbi vmesnika. Torej, na ta način smo lahko dostop do vseh podatkov in manipulirati vse, kar je v notranjosti pogled na izhod, kar je super. Torej v našem dejanskem kodo, kaj je naredil z njim nekaj. Tako da je ta čas, ko smo kot tiskanje od končnega rezultata za Mario, smo v prijavi ni ničesar. Mislim, da bi lahko naprej Izjava sečnje. Poleg tega, da smo pošljite odčitavanje smo pravkar ustvarjen z namenom proizvodnje, ki je UI textview smo pravkar ustvarili. Zdaj pa poglejmo, kaj se bo zgodilo. Wow. Imamo piramido v app zdaj. Tako lahko uporabnik vidi naše proizvodnje, saj smo kopirali izhod iz naše kodo za naše vmesnik. To je zelo dobro. To ni to, da je dejansko zanimivo, ker smo can-- Vse app početja prikazuje piramido za vas, in tam je ne morete storiti ničesar o tem. To ni posebej vznemirljivo. Tako da zdaj naredimo gumb da bo jasno poglede. Zdi se, da bo gumb za pomoč. Povleci in spusti. En gumb. Gumb za dva. Torej, ko smo kliknite levo gumb, bi pogled jasno. Ni treba nič na zaslonu. In ko smo kliknite desno tipko, Mario, Pogled se bo ponovno pojavljajo. Na ta način moramo tudi storiti magic stvari, nadzor in povlecite na deklaraciji razreda v pomočnika director-- v pomočnika gledalca. V tem primeru smo podrobno da je treba, da je bilo dejanje. clearMario. Torej, tukaj smo že ustvarili tožba imenuje clearMario, ki je postopek, da bi se imenuje vsakič, ko pritisnemo gumb jasna. Torej v našem dejansko kodo, kaj je samo dal izhodno besedilo in pogled na izhodno v nič, in na ta način se bo pojavil biti jasna. Poleg tega, pa si ustvarite druga metoda, imenovana runMario. Oh žal, da ne bi smela biti lastnost. Vse je v redu, da bi morala biti ukrep, kot dobro. In ko je ta funkcija imenovani, smo samo teči Mario deset. Upajmo, da bo v redu. Ali prevedite? Da. Zdaj imamo pogled. Imamo izhod. In kaj je samo videti, kaj se dogaja. Da je odšel. To je spet nazaj. Torej, tukaj smo določena kakšno funkcijo se bo imenoval, ko vpišemo v nekaj, ko smo s pritiskom na poseben gumb. To je v bistvu Shema ciljni ukrepi za dogodek pogon programiranje v cilju C. Poleg tega, to ni zelo razburljivo ker pa ne moremo spremeniti kako visoko se bo piramida je, tako da bomo verjetno želeli, da nekako dobili vložek uporabnika in spremenite višino piramida, ki temelji na tisto, kar izhoda. Tako da bomo za to. Tako da je ta čas, ko pravimo runMario, ne samo poklicati neposredno Mario. Naslov Tale je. Delegat. To je zelo zanimivo. Kaj je delegat? Bom dal jaz tukaj. In bomo videli kaj to pomeni kasneje. Torej, tukaj smo v bistvu ustvarila poseben primer imenuje opozorilo UI pogled. Pogled alert UI je v bistvu tisto, kar bo glej vsakič, ko nekaj pops up in vas vpraša za vnos, kot kaj se bo zgodilo, ko ste poskušali kupiti nekaj na App Store. Poleg tega, ko vas jo ustvarite, smo samo pokazati opozorilo. Vse je v redu, kaj je samo hitro Test bo to delo ali ne. To je zelo kul. Zdaj pa dejansko ustvarjajo vnosno polje za razpis UI. To je, kako bomo to naredili. In bi morali imeti input pogled za razpis. Zelo kul. Reciva 10. To ni nič narediti prav Zdaj, ker klic dejansko ni spremenila za izvajanje mario. Torej je to postalo malo malo čudno, ker vsakič, ko pritisnemo gumb navzdol, ko smo pritisnite gumb na opozorilnem mnenju nekaj, kar bi se moralo zgoditi, vendar se to ne zgodi. Kako smo se ujeli, da je? Kako vemo, da je uporabnik je zavrnilo opozorilni pogled in že vnesli številko, saj zdaj nič ne dejansko dogaja. No, ste morda uganili prav, delegacija. Torej poleg vseh te izjave, moramo dodati novo delegacijo je pozval UI ogled pozorni delegata. Tako, da vsak Interakcija ali dogodek da bomo imeli z namenom opozarjanja UI se dogaja, da je treba ravnati naš razred, kot dobro. Torej, poleg tega, da ne bo Opozarjanje na gumb pogled kliknite na indeks. To se doseže. Torej, v primeru, da imamo already-- tako da imamo ugotovil, protokol, bo izvajala dogodek, ko kliknemo na gumb Končano za opozarjanje pogled. Torej, vsakič, ko zavrže Pogled pozorni, naj bi se to zgodilo. Naj samo preizkusiti zelo hitro. No res, da smo prišli do sem. Torej, tukaj, kaj ne bomo dejansko dobili, je dejansko dobili the-- Tako želimo priti ven besedilo, ki ga imamo pred vpisana v opozorilnem pogled. In temelji na besedilu, smo gre za prikaz Mario. To zelo hitro izkaže če to dejansko deluje ali ne. Torej, v tem primeru, če bomo vhod, recimo, 10, bi morali videti 10. Zelo dobro, imamo številko tukaj. To je zelo dobro. Zdaj bo zadnji korak be-- Torej Zadnji korak moramo storiti zdaj je le poklicati Mario z stopnja temelji na vnosu da smo dal v pogled opozarjanja. Zato moramo spremeniti ta niz v iOS. Statična overflow je zelo super. In potem smo le klic samozaposlene marioWithLevels vrednost. Poglejmo bo, da dejansko delo ali ne. Mi smo že dal piramido. Poskusimo, da spremenite višino. To dejansko deluje. To je zelo kul. Tako da zdaj si lahko samo input vsaka vrednost, ki jo želite. Reciva, štiri. To je super. Torej je to v bistvu res hitro primer kako ustvariti projekt v ih kodo in kako, da bo res hitro Priklop nekaj zelo preprostih dogodkov in funkcije. Tako je vir dogaja da se na spletu kasneje. Torej, če ste zainteresirani kako iOS Mario deluje, Bom dal točno enako Projekti na spletni strani CS50 kasneje. Mi smo v bistvu končali s poletje, in preden končamo Rad bi vas opozoriti, da fantje nekaj res super viri, so na voljo na spletu. Očitno dokumentacija Apple se dogaja, da bi bilo zelo koristno. Toda poleg tega sem še posebej Priporočamo, štiri vire, koda šolske, tree house, AppCoda in WWDC videos. Šola kodo in drevo hiše so dve spletne strani na spletu, ki izobražujejo, ki posebej osredotočiti na področju programske opreme. Predvsem za oznako šole, imajo res dober tutorial na iOS. To je zelo hiter primer za to. Dejansko ustvarjajo zares cute-- poglej to malo srčkan iPhone dude tja, to je super. In način, kako razložiti Cilj C sintaksa je popolnoma jasno. Tree Hiša je isto. In AppCoda je forum. To je pravzaprav blog, ki je vodila jo res doživeli Cilj C programer. In vse tiste vaje v AppCoda so zelo kratek in preprost za uporabo, zelo priporočljivo. In če ste razvijalec, vsekakor iti preveriti kako se WWDC videoposnetke, kjer si lahko seznanili z najnovejšo iOS programiranje tehnike, API in knjižnice. Tako da je precej je za seminar. Najlepša hvala. In upam, da boste zabavali ustvarja svojo iOS aplikacijo.