Tianyu LIU: Hej, kako je to ide sve? I to je iOS App programiranje Objective C seminara. I moje ime je Tianyu Liu. Ja sam Lowell junior upravo sada, koncentrirajući se u računalnoj znanosti. Dakle, u ovom seminaru sam će vas naučiti dečki malo o tome kako napraviti aplikaciju. Yay, dobili uzbuđen zbog toga. Dakle, prije nego što čak i početi ronjenje u stvarni programiranje strane, neka je samo jako brzo govoriti o zašto možda želite izgraditi iOS? Zašto je iOS tako strašan? Dakle, prvi problem, prvo Ono što je prilično strašan za nas, pogotovo što je CS50 student, da je iOS koristi Cilj C. Pa, tu je Novi jezik se zove Swift, ali nećemo se koristiti da se u ovom seminaru. Ako ste zainteresirani za Swift, postoji je neovisna seminar o tome. Ali Cilj C je u osnovi nadskup C. značenja da je sve što koristite u C može biti prevedena na Objective C vrlo jednostavno. Kao što ste mogli vidjeti kasnije, da je doista postoje neke vrlo osnovne sintakse, su u osnovi isti, C i cilj C. Dakle, jer ste uzeli CS50 up to daleko, već si Znaš Objective C, najmanje 40%. Također, Apple je stvarno robustan API za iOS. Postoji puno stvarno ludi stvari koje možete učiniti s njom. Od kojih je netko zapravo stvorio iOS za kontrolu automobila, koji je prilično zanimljiva. Vjerojatno helikopter je više uzbudljivo. No, to je koliko je moćan iOS API može biti. I kao što ste mogli imati shvatio upravo sada, stack overflow je vjerojatno jedan od najvažniji online resursa koje su Vam dostupne. A dobra vijest, za svaku Jedan je problem što možete eventualno misliti, a izgradnju svoje Konačni projekt u Objective C, Tu je vjerojatno stack overflow odgovor. To je samo strašan. Osim toga, iOS stvarno platforma gdje možete doći ogromna Publika s malo truda. To nije kao Android, kojoj sve je prilično rascjepkano. Sve iOS je jedinstven. I koliko god da napravite Aplikacija za iPhone, možete vrlo lako port koji ipad, iPad mini, ili različite veličine iPhone. To su sve jako povoljno. I to je samo jako dobar za impresivan svoje prijatelje. Vi samo možete držati iPhone i reći tvoj prijatelj hej, to je app sam napraviti. Možete to učiniti za bilo desktop aplikacije, što je lijepo. U redu, sad ćemo zapravo dobiti u jezičnom Cilj C. Pa zašto ne bismo početi s Neki stvarno osnovna sintaksa. Kao što sam spomenuo prije Cilj C To je u osnovi nadskup C. Dakle, puno osnovnoj sintaksi su zapravo isti. Proglašavanje varijablu i dodajući dvije varijable zajedno Upravo kao što smo učinili u Mario. Ništa novo ovdje. Isto tako, stanar za petlju i stanje je isti. Možete napraviti za petlju baš kao i vi su radili u Mario [nečujan]. A vi možete učiniti uvjete baš kao što su radili u svojim prethodnim p setovima. Međutim, cilj C nije posve C, i postoji nešto što je vrsta čudno o tome. Prvi se da kada ste radi C programiranje, što obično nazivamo uključuju i zatim knjižnica ime. No, u Objective C nazovete taj uvoz. Uglavnom govoreći funkcionalnost, Samo različitim imenima. I žice su zapravo malo čudno. Možete vidjeti da je prva Ono što je vrsta čudno je da imate prilično weird-- sorry-- imate prilično čudno NS potpisati ovdje. I druga stvar to je vrsta čudno je li na znak prije zapravo izjavljuje string. Dakle, u znak osnovi znači da niz nije samo niz, to je zapravo objekt. Mi ćemo objasniti koja je kasnije tako ne panika, ako ne razumjeti što to znači. A tisak na konzoli je malo drugačije, jer u C zovemo printf, ali u Objective C zovemo [nečujan]. Možda se pitate što je to. To je u osnovi printf, samo drugačiji jezik. Točno isti običaj, točno istu funkcionalnost. Pa ispada da Cilj C zapravo ima ns prefiks u gotovo sve, svaki osnovni tip podataka, nsstring, nsarray, nsdictionary. Razlog tomu je što ns zapravo zalaže za sljedeći korak, što je tvrtka koja Steve Jobs je osnovana, što je tvrtka u kojoj Jezik Cilj C je rođen. Dakle, to je zapravo tradicija. Znam da je malo čudno, ali to je Apple. Dakle, nešto što je još čudnije nego da je funkcija izjava. To je vrlo različito od onoga što smo pogledajte u C, jer ovdje je zapravo ne izgleda kao C više. Ono što here-- imati po način da to nije točkom, to je minus. Imate minus zagradu praznina, a zatim naziv funkcija. Recimo samo da smo imaju Pozdrav svijetu, a zatim Vrsta povratak će biti nevažeća jer smo se vratili ništa. Ono što dobiva stvarno čudno je da, kada ste koji ima više od jednog parametra prolazi u istoj funkciji da će biti jako čudno kao što je prikazano ovdje. Imamo ime metoda, pozvao addInt na [nečujan] a mi prolaze jedan parametar. No, nakon toga, imamo Više ime metoda poziva s. I nakon što smo s prolazu Drugi parametar. To je zapravo malo čudno, No, svi ti funkcija izjave slijede isti obrazac kao ovo. Imamo minus za početak. Znak minus bi mogao biti znak plus Ponekad se temelji na kakvoj se metodi je to. Postupak je u osnovi drugo ime za funkciju. A mi ćemo se objasniti da je kasnije, kada govorimo o objektu orijentirano programiranje. Najprije odredite povratak upišite unutar zagrada, nakon čega dolazi ime način. Ti prolazi jedan parametar. A ako imate više parametara trebate proširiti naziv metoda a zapravo napisati nešto više ovdje. To može biti bilo što želite. U našem slučaju to je s. No, moglo bi se reći na kraju, ili, ili, ili ABC pun bar, što god želite. A onda, nakon što si prolazi parametar b. To je stvarno čudno Konvencija, ali mi smo će vidjeti zašto je Apple želio to učiniti vrlo brzo. Pa kako se zovu funkciju? Pozivanje funkciju u cilj C je različit od C Zapravo, nazivajući funkcija u Objective C više kao da ste u razgovoru s nekim. Ovdje imamo sebe, što naziva objekta. Vi ste zapravo reći objekt sebe reći "Hello World!" To je, kako se zovu funkciju. Cilj i naziv metoda u kombinaciji jedni s drugima. I ovo je mjesto gdje se čudno proširenje za ime metoda zapravo dolazi u igru. Pogledajmo drugi primjer. Mi jednostavno definira metodu naziva addInt sa bla bla bla. Dakle, u ovom slučaju, kada zovete da određeni [? Poruka?] to se događa izgledati samo addInt: 10 s: 2. To zvuči kao engleski. Iako funkciji Funkcija izjava je čudno, točka Objective C-a Način izjava uzorak, je da kad zovete funkcija ili metoda to će zvučati kao stvarni engleskom. Dakle, to je vrlo intuitivno Nakon što ste dobili u nju. Posebno u ovom slučaju, gdje možete osnovi vidim da je naziv funkcija vrsta sama dokumentiranja. Ne trebate bilo više objašnjenja vidjeti što se točno događa, što točno jedan parametar radi. Koja nadilazi, pričajmo malo Malo o objektu orijentirano programiranje. Objektno orijentirano programiranje jedan od temeljnih programiranje tehnike i obrasce koje je koristiti Objective C Objective C naziva Cilj C, ne C, za stvarno dobar razlog. Dakle, prije nego što smo dobili u Cilj C sintaksu, Idemo jako brzo pogledati točno ono što je objekt. Mi Vjerojatno ste učinili nešto kao objekt prije, što naziva struct kada ste provedbi drvo ili popis povezan ili [? probati. ?] Dakle, to je osnovi kao STRUCT, ali to je puno moćniji od toga. Objekt ima metode i svojstva. Metode su u osnovi funkcionira. Uglavnom djeluje da je specifični za određeni objekt. A osobine su u osnovi Polje ste naveli u STRUCT. Dakle, za svaki objekt imamo neku nekretninu da ima neke varijable koje specifični za predmet. I mi imamo neke funkcije koje također su specifični za predmet. A funkcije nazivaju metode i varijable nazivaju svojstva. To je samo fancy naziv. Dok vi zapravo, svaki pogled vidiš, dok otvorite iOS app, neka je samo reći Twitter ili Facebook, Svaki pojedini pogled vidite je objekt. Pa čak i cijela aplikacija objekt za početak. Vrlo zanimljiv koncept. I zašto mi želimo objekt orijentirano programiranje? Možete zamisliti da kada Program se dobiva prilično komplicirano. Recimo, kada ste provedbi šahovsku ploču, logika će biti jako komplicirano. Imate 36 različitih komada, tako da ako želite napisati logiku za sve 36 različitih komada u šahu, da će biti puno različite funkcije i varijable. To je puno problema. I vjerojatno idete pisati različite metode i različite funkcije za svaku od komad točno kontrolirati što im je činiti. Ali ako to ne učinite objektno orijentirano programiranje, sve ove dijelove mogu se izdvojiti u jedna stvar. A objekt će imati neke zajedničke svojstva, kao što su Kakve komada je li? Koje je boje? Kako se može kretati? I na taj način imate jako pojednostavljeno logiku njega. Dakle, to je samo jako dobar način kako bi komplicirane programe, i hijerarhijski odnos u okviru programa, vrlo jednostavan. Kao što smo idući u vidjeti Zato je vrlo brzo, kada mi zapravo radimo programming-- kad smo zapravo događaj S šifru programiranje sjednicu kasnije. I uz to, objektno orijentirano programiranje samo puno zabave. Imaš dizajnirati vlastiti objekt. Imaš dizajnirati ono što čini to izgledati po sebi. Nema pravog odgovora na to. I to je potpuno zanimljivo. Tako je u objektno orijentirano programiranje, Dva su temeljna koncepta će biti klase i primjer. Klasa je zapravo Obrazac za objekt. A slučaj je u osnovi jedan specifičan objekt. Recimo samo da radite kolačić. U tom slučaju, svaki Cookie vi zapravo završiti s će biti predmet. No kolačić ploča koristite ispeći sve kolačiće će biti klase. Klasa je zapravo predložak. A instanca će biti jedna posebna objekt stvoren iz te klase. I instanca će se stvoriti temelji se na klase deklaraciji, kao što ćemo vidjeti u kasnijim slajdova. Tako ćemo zapravo učiniti jako Brzo je primjer [nečujan]. Recimo da smo progla objekt za mačke. Cilj bi trebao have-- Mačka klase trebao imaju neke osobine i metode. Kakav svojstava trebali su Klasa have-- trebao mačka ima? Na primjer, u boji, dobi i pasmina, oni će biti varijable koje su specifični za svaku mačku. A oni su neke stvari koji koristimo za opisivanje mačka. Kakve metode, ili ono što se može učiniti mačka? Neki primjeri brzo će biti Chase miš, jedu ribu ili jednostavno mijau. Ovo je stvarno brzo Primjer mačka klase. I stvarno posebna Mačka objekt će biti mačka gdje smo naveli boja, dobi i pasmina. U tom slučaju, naš cilj je više klase nema više. Mi kopirati predložak iz razreda i ćemo navesti svaku specifičnu informaciju na taj određeni objekt da je neovisna. A kad zovete Način unutar objekta, vi samo nazvati Mijau na objektu, što je mačka koju ste upravo stvorili. Vjerojatno ćete ispisati nešto poput "Pozdrav svijetu! Mijau ". Prilično slatka. U redu, neka je samo dobiti u nekim detaljima i vidjeti što točno znači da je prevesti kao iOS programiranje. Tako je u iOS programiranje svakog pojedinog Klasa će se provoditi u dvije datoteke. Jedna datoteka ovdje, što se zove sučelje. Još jedna datoteka ovdje, što naziva provedbu. Obično sučelje će imati extension.h kao što smo vidjeli u C knjižnicama. I provedba datoteka će imati extension.n. To je vrsta čudno. No zapravo znači .n .c, nema Temeljna razlika između onih dva. Dakle, u ovom slučaju, možemo vidjeti da smo izjavljujući sučelje, mačka: objekt. To se zove nasljedstvo. Mi smo u osnovi nasljeđivanja Mačka klase od objekta klase. Dakle, svaki objekt i način kako je prethodno definirani u objektnom klasi će biti automatski definirati u mačka klase, kao dobro. Osim toga, mi definirati boju, pasmina i dobi, tri varijable. To zapravo izgleda nešto što ste učinili prije. Izgleda STRUCT. To je u osnovi sintaksa za struct deklaracije, a to je potpuno ispravan. A budući da sam spomenuo prije, Razlika struct i objekt, jedan od Temeljne razlike je da objekt ima metodu, dok struct ima samo varijable. Tako da uz svojstva ili varijable koje smo stvorili za objekt, ćemo navesti neke metode. Recimo samo da ovdje imamo dvije metode, jedna je Mijau, još jedan je Chase miš. Mi vjerojatno želite da se prolazu parametar na temelju naših prethodnih metoda izjava uzorak. Vi vjerojatno želite da se prolazi miša. I vjerojatno ćete željeti Za povratak na bool označavajući Ako je vaša mačka uspješno uhvati miša ili ne. To je sučelje, ali možemo vidim da je sučelje zapravo ne činiti ništa. To samo govori program što exists-- ono što postoji u mačka klasi. Dakle, da bi za Program za napraviti nešto, moramo imati provedbe datoteka. Dakle ovdje, prva stvar koju radimo je Očito smo uvoz sučelje. Nakon što smo uvesti sučelje, možemo definirati način. Recimo ovdje Mijau Upravo će ispisati "Hello World!" na konzoli. I nakon provedbe file, mi smo prilično mnogo učinio. To je u osnovi klase izjava za jednu klasu. Tako sada pitanje postaje, kako ti proglasi varijablu? Način na koji koristite klase za stvaranje objekt u Objective C je ovdje napisano. Najprije odrediti da ovo je mačka pokazivač, jer svaki objekt u Objective C napokon provodi kao pokazivač. A ti nazvati razred, zovu ih kao Alloc, koja je u osnovi malloc, govori operativni sustav koji vam potreban neki memorijski prostor za ovaj objekt. Nakon toga imate objekt Već i samo ga inicijalizirati. To je samo konvencija. Znam da je to je malo čudno, ali to je zapravo kako Apple radi stvari. Dodjela svojstva se zapravo prilično jednostavan. To je vrlo slično Što radite kada ti si dodjeljivanje neke specifične Polje unutar STRUCT. Vi samo morati varijable ime, ime vlasništvu, i dodijeliti određenu vrijednost na njega. A pozivanje metoda je vrlo slična. Poziva metoda u osnovi ono što govorim o za pozivanje bilo koji način u objektivnom C Ti si prolaze objekt, u ovaj slučaj će to biti myCat, a ti prolazi ime metoda. Kao da ste u razgovoru s objekta, myCat, koji bi trebao mijau. To je prilično zanimljiv. Nakon toga, jedna više bitno design pattern da trebamo razgovarati o tome Prije nego uzimajući stvarne S koda. To design pattern naziva događaj potaknut programiranje. To je ujedno i jedan od najviše temeljne ideje u iOS programiranje. Dakle, vjerojatno ne zna što je točno je događaj potaknut programiranje, ali to nije stvarno da je zastrašujuće. Pa u stvari, imate već učinili prije. To je jedna od linija koje ste vjerojatno već napisao u posljednjem [nečujan] od CS50, google.maps.event.addListener (marker, "Klik", funkcija () {}) :. Pozivom ovu liniju bitno reći računalo da, kad god je događaj pod nazivom "Klik" dogodi na igrača, koristiti tu funkciju. To je vrlo različito od ono što vam je činiti u mario.c. U mario.c ti samo pokrenite program jednom, to vam daje snagu, a vi ste učinili. To su nešto poput jedan metak programa. Poslovne pogon programi vrlo, vrlo različite. Zamislimo, ako Facebook je jedna shot programa to nije stvarno dobar. Vi samo idite na Facebooku jednom i to je učinjeno. To vam daje neki izlaz i nikad ga dobio natrag. Vi nikada nije dobio ništa više. Pa evo, pogotovo uzorak koristimo se Događaj pogon, tako da se svaka funkcija će biti uhvaćen na temelju onoga što Događaj se dogodilo. Na primjer, ako se gumb i mi navesti da kad god se pritisne tipka koja, pozvati funkciju pod nazivom "Hello World!" Na taj način možemo stvarno upravljanje funkcija logiku teku u vrlo fleksibilan način. Korisnik može napraviti ili nazovite funkciju koji je već bio pozvao. To je u potpunosti temelji na tome što korisnici rade. Dakle, možemo vidjeti da je to zapravo mnogo bolje nego mario.c. A dobra vijest je da je zapravo nije novi koncept. Vi dečki već učinili da je u posljednjem problema postaviti. Tako je u Objective C postoje Tri različita dijagrami za događaj potaknut programiranje. Prvi dijagram naziva meta akcije, gdje se vežu na gumb press s nekim funkciju. Recimo, kad kliknete Neki gumb, možete nazvati neku funkciju. To je vrlo jednostavna meta akcije. Drugi je zapravo najteže, to se zove izaslanstvo na protokolu. Mi ćemo objasniti koji vrlo detaljno kasnije. I treći put je obavijest. To je zapravo nije Vrlo je važno što se tiče što smo mi u pitanju, jer je slučajno da ćeš koristiti obavijest U svom završnom projekta je prilično niska. Tako ćemo preskočiti taj dio. I idemo roniti u delegaciji na protokol. Pa što je točno protokol? Ili što točno je izaslanstvo? Razgovarajmo o protokolu za početak sa. Protokoli nisu ništa drugo nego događaja. No, ovi događaji su dati što od strane Apple za početak. Na primjer, ja nisam posve sigurni koliko vas Dečki koristiti Appleov izvornik Aplikacija mail ili kontakt, ali svaki put kada pomaknite stol i pritisnuti određenu stanicu na stolu, to je događaj. A ako želite napraviti taj događaj po sebi, to je zapravo malo teško. Dakle, Apple je s obzirom da je čak i za vas tako da jednostavno možete izravno koristiti događaj učiniti nešto na svoju ruku. Protokoli su zapravo jako, jako često koristi u Objective C. dobro u Činjenica, svaki app ima nešto uhvaćen app delegata. Unutar nježna je sve Protokoli za učitavanja aplikacije. Recimo samo da je Događaj za aplikaciju učinio opterećenje. Dakle, što će se dogoditi nakon što ste stvorio app, nakon što otvorite aplikaciju, Nakon što zatvorite aplikaciju, ili nakon stavim iPhone na spavanje. To su svi događaji koje je Već je dao vama. I u početku unutar tih čestica Tu će biti provedba. Apple je upravo rekao da je tu funkciju će se dogoditi kada se neki događaj dogodi, ali ono što učiniti s tim Funkcija je potpuno na vama. Izaslanstvo je u osnovi govori razred koji bi trebali nositi ove protokole. To je malo zbunjujuće, ali to će biti mnogo jasnije kada radimo Na S kodova u akciji. Delegacija na protokol je zapravo vrlo robustan mehanizam u smislu da li mi delegaciju na određenu klasu, možemo biti može nositi sve vrste događaja korištenjem bilo koje vrste imamo, vrlo povoljno alat. Tako je jedan brzi primjer Izaslanstvo na protokolu će biti ono što sam upravo govorio. Ovaj protokol je posebno pozvao tableview [nečujan] odaberite ulogu u [? Indeks?] [? prošlost. ?] Pa to događaj koji će biti uhvaćen kad vas zapravo dodirnite specifične stanica u vašem tableview, recimo samo da je u svom mail ili u aplikaciji Kontakti. Unutar funkcije postoji izvorno radi ništa. Funkcija ne ništa po defaultu. No, možete odrediti ono funkcija radi, s obzirom na ono što želite od vašeg app. Vrlo zgodan alat. A uz sve to se, rekao je, ja zapravo pokriti neke vrlo osnovne sintaksu i Temeljni koncept za Objective C programiranje, a mi možemo napraviti neke e kôd. Mnogo više uzbudljivo. Tako je broj je zapravo malo overwhelming kada ga otvorite po prvi put. Jedan brzi note, pa ako vas Želite raditi iOS razvoj, JA visoko preporučiti da imate Mac. Budući da radi iOS razvoj na Windows je jako, jako teško. To je izvedivo, ali to je stvarno teško. I svakako učiniti Ne želim koristiti g uređivanje. Tako je u kodu imamo nekoliko različitih područja. Kada prvi put otvorite je broj vidjet ćete područje plovidbe, koji u osnovi pokazuje sve datoteke koje je u svom trenutnom projektu. Imate Toolbar prostor, koji je je u osnovi upravljanje pogled, ili neki malo brzi Alati O S kôd sama. I to je stvarna urednik područje. Ovo područje je vrlo slična g uredi, ali mnogo bolje od g uredi. I u ovom pravom područje, nazvao program područje. Područje postaje jako zgodan kada što stvara sučelje ili navođenjem neke brze postavke za vašu aplikaciju. I konačna površina ispravljanje pogrešaka. Ovo područje sadrži konzolu. Dakle, kad god ti kažeš printf, ili nslog u našem slučaju, Svi rezultati su će se ispisati ovdje. U redu? Mislim da smo jako brzo može napraviti Primjer za iOS programiranje. I neka je zapravo otvaraju s šifru. Dakle, svaki put kada se otvori s šifru, to je će se pojaviti nešto. To će vas pitati Što želite učiniti? Želite li pokrenuti nešto slučajna, dječje igralište, u osnovi možete jednostavno testirati kod bez zapravo počinio bilo app. Želite li stvoriti novi projekt? Ili želite nastaviti radi na postojećem projektu? U našem slučaju ćemo stvoriti novi projekt. Dakle, to je jako lijepo, S broj zapravo je već dati vam neke predloške za stvaranje objekata. Ako želite napraviti igru, s šifru zapravo ima predložak igra za vas, ima stranicu na temelju zahtjeva, Kartica aplikacija. U tom slučaju, idemo učiniti nešto vrlo jednostavno, a mi ćemo koristiti Jedan pogled na aplikacije. Nakon toga upravo ono što želite nazvati vaš proizvod, a što je vaše ime, koja je tvoja oznaka, te Koji jezik koji koristite. Ovdje ne želimo da se provjeriti pomoću osnovnih podataka. Temeljni podataka je u osnovi databasing iOS. Ako to ne učinite osnovnih podataka, s kod će se definirati puno složeniji nastava za vas. Dakle, da bi sve jednostavno, mi smo Samo će to učiniti bez osnovnih podataka upravo sada. Problem ćemo biti koristite that-- problema ćemo biti stvaranje je da smo zapravo žele uvesti Mario iz C na iOS app. Tako ćemo nazvati Mario iOS. Naravno da odredite što vas Želite staviti u svoj projekt. I tamo idemo. Dakle, to je malo ogroman, a to je zapravo ono što smo upravo vidjeli na slajdovima. A prvo područje vidimo sada je u osnovi oblik projekt. Dakle, sve što želite učiniti Projekt, na kojoj vrsti uređaja, neka je samo reći kakav uređaj Želite li svoj app da se pojavi na? Je li iPhone, iPad ili univerzalna? Dakle uređaja orijentacije, sve ove stvari. Nije jako važno, ali bi mogao biti, ali to je mjesto gdje ste postavili Vaš projekt ako stvarno želimo rasporediti na Apple dućan. U redu, pogledajmo nešto što je u našem kodu. Idemo kroz datoteke navigator. A to su sve datoteke koje su već došao s predloška, ​​vrlo lijepo. Dakle, kad smo kliknite na jednu od njih to je ono što izgleda. Vrlo slična g urediti. No, što se može vidjeti da sintakse vjerojatno malo ljepše. I to je zapravo mnogo više moćniji od g uređivanje. A možete automatsko dopunjavanje puno stvari za vas, kao što ćemo vidjeti vrlo brzo. Ajmo otvoriti za ispravljanje pogrešaka područje, kao dobro. U redu, što možemo vidjeti, konzola je upravo ovdje. To je ono što ćemo vidjeti u kojoj ti si u printf ili nsloging nešto. Dakle, bez dodatnih teškoća, neka je zapravo sastaviti aplikaciju i vidjeti što će se dogoditi. Jedna bitna značajka za a kod, je da je broj dolazi s iPhone simulator. Dakle, ne morate imati iPhone isprobati svoj projekt, a kod može simulirati da je za ti, kao što možemo vidjeti sada. To je prilično lijepo. To je uzimajući malo malo vremena da sastavi a zapravo smo prazna zahtjev, koji zapravo ne radi ništa. Ali to izrađuje. To je prilično strašan. To je puno bolje nego C, ha? U redu, onda neka je pokušajte dodati nešto. Jedna datoteka koja je malo čudno ovdje se zove storyboard. To je zapravo velika, strašan značajka za e koda. Budući da je u kodu, možete zaista drag i ispustite elemente na sučelju a to će se izravno prikazati. Pokušajmo to. Mi drop naljepnice ovdje, "Hello World !!!" Možemo centar koji. Pretty cool. Sada ćemo pokrenuti ovo zaustavljanje simulacije. Ovdje imamo "Hello World !!!" Nismo ni to bilo kodiranje još. Što ispitati kritički se događa? To je koliko je moćan Sučelje Graditelj može biti. Netko je čak rekao da je Vjerojatno možete jednostavno popuniti aplikaciju bez pisanja Vjerojatno tisuću linija koda Samo pomoću sučelja Builder. Ali to vjerojatno ne Najbolji način da to učinite. Sada ćemo zapravo dobiti do kodiranja. Tako strukturi za datoteke je zapravo jako zanimljivo jer, kao što se može vidjeti, postoje Nije glavna funkcija nigdje. Vidi? Kao što smo već napomenuli, možete vidjeti da je to je file provedba za određenu klasu. No, ne postoji glavni nigdje. Dakle, gdje je glavni? Zapravo, glavna je, ali Glavni je zapravo skriveno od tebe. Glavni je ovdje. To izgleda poznato. Tako je u osnovi ono što iOS radi u glavnom je da kad god je glavna zove, koja je u osnovi kad god app je pogubljen, on stvara objekt nazvan AppDelegate. Kao što sam spomenuo prije, cijela Aplikacija je zapravo cilj sam po sebi. Tako se na taj način, u osnovi iOS app govori prevodilac to je u redu, ja ću stvoriti proizvod pod nazivom AppDelegate, a to će biti moj app. Dakle, morate ići kroz taj AppDelegate i vidjeti što to čovjek radi. Moj posao je učinio za mene. I u AppDelegate možete vidjeti da postoje neke jako čudne funkcije, Pa zapravo metoda, koja Apple je već vam dao. Što je ovo? To su zapravo samo protokoli da sam govorio. Dakle, to su događaji koji Apple vam je dao za početak. Ne postoji ništa u nekim funkcija upravo sada, ali ako želimo inicijalizirati za našu aplikaciju nešto Prije nego uzimajući u prikaz bilo pogled, činimo to ovdje. Vi samo možete pročitati ime i valjda Događaj je zapravo jako jasna. Tako je sada glavna je stvorio objekt za AppDelegate. A što AppDelegate će učiniti se zapravo i krije od tebe. AppDelegate će početi učitavanja ViewController zaliha. Tako je u osnovi će početi učitava sve stavove koje imate i samo uzvratiti pogled temelji na hijerarhiji. Dakle, u ovom slučaju imamo samo jedan pogled, što je ovdje. Dakle, to je samo prikaz koja će se zvati. ViewController logika je upravo ovdje. To je kod koji zapravo kontrolira pogledu smo upravo vidjeli. U redu, neka je učiniti nešto ovdje. Dakle viewDidLoad zvuči kao događaj, kada je u stvari to je i delegat, to je protokol. Dakle, bez obzira na pogled se učitava, sve u funkciji će se zvati. U tom slučaju bismo trebali vidjeti "Hello Tianyu! "Ako smo pokrenuti program. To je uzimajući malo spor sastavljanju storyboard datoteka. Pa zapravo, vidimo izlaz za njega. To je prilično cool. Sada ćemo zapravo učiniti Mario. Idem definirati djeluju vrlo brzo. marioWithLevels: Rezultati (int) razini. U redu, to je zapravo super obilježje s kodom auto završetka. Dakle, kada ste napisali za te upisati ući, to je već odustala od predloška za tebe, što je prilično cool. To bi trebalo izgledati jako poznato vama. Žao nam je, to je moja krivnja. U redu, super. To logika bi trebala izgledati jako poznato na vama, osobito samo Mario. No, sada će ispisati na konzola svaki put, jer želimo da se nekako zadržati Staza je ono što se ispisuje. Ćemo iskoristiti Rezultat nekako kasnije, za prikaz ispis iz dovesti do korisnika. Dakle, umjesto da smo upravo nslogging sve, koji smo pohranu sve u rezultat funkcija poziva, ali logika je točno isto. Nakon što smo ga mi završiti Samo ispisati svoje rezultate. I ovdje umjesto ispisa iz mog Ime, ćemo pozvati funkciju. Idemo vidjeti što se događa. Ups, očito. Imamo lijep Malo piramida ovdje. To je u osnovi C, mi smo samo manipulaciju, gdje vas poziva funkciju i kako funkcioniraju izgledati. Nema ništa drugačije. No, to je zapravo Nije jako uzbudljivo ovdje, jer mi ne vidimo ništa od iPhone app. Dakle, ako ste zapravo imaju iPhone app-- Ako ste zapravo Mario iOS pravo Sada, ne ide vidjeti sve što ima bilo kakve veze s Mario, jer svi ti izlazi u konzoli su skriveni od korisnika. To je ono što vidite, što je "Hello World !!!" Nije dobro. Sada ćemo pokušati napraviti korisnički vidjeti što točno smo ispis. Dakle, mi ne trebaju označiti više. Pokušajmo shvatiti nešto drugo što bi moglo biti korisno. Tu je zapravo jedna element koji se zove riječi, koje bi mogle biti vrlo korisno za nas. To u osnovi prikazuje regiju teksta koji se može uređivati. Tako da izgleda jako korisno. Sada ga povucite i ispustite ga. Wow, imamo prikaz SMS po našem mišljenju, jako sviđa. To je malo prevelika. Učinimo to manji. Stavite ga u sredini. Neka bude manji, kao dobro. Sada imamo pogled na tekst, koji smo mogli se koristiti za prikaz naše konačni rezultat. No, sada je definitivno ne ide na posao jer postoji no-- ViewController smo upravo definira ne zna da Tu je pogled na tekst vani. Zato moramo nekako povezati u pogledu teksta smo upravo stvorena u razredu da već je došao s nama. Način na koji to je zapravo jako čarobno. Dakle, otvaraju storyboard. Postoji posebna [nečujan] zove [? Pomoćnik?] [nečujan]. Kada kliknete da, to je će otvoriti dvije datoteke. Jedna klasa je i drugi je odgovarajuća pogled na njega. To je vrlo, vrlo korisno. I neka je samo prolazi kroz .h datoteci. Kontrola, to je [nečujan] logika. Pritisnite Kontrola i drag Tekst Pogled u izjavi. Ćemo nazvati outputView. Povezivanje. Dakle, ovdje smo proglasili novi nekretnina za naše ViewController klase. I novi objekat je samo prikaz teksta smo stvorili u zgradi sučelja. Dakle, na taj način smo mogli pristup svim podacima i manipulirati sve što je unutra Pogled na izlaz, što je strašan. Dakle, u našem stvarnom koda, neka je učiniti nešto s njom. Dakle, ovaj put, kada smo kao ispis iz konačnog rezultata za Mario, mi smo u ne prijave ništa. Mislim da bi mogao zadržati Izjava prijavom. Osim toga, mi poslati očitanja smo upravo stvorena u pogledu izlaz, koji je UI textview smo upravo stvorili. Sada ćemo vidjeti što će se dogoditi. Wow. Imamo piramide u app sada. Tako korisnik može vidjeti naš izlaz, jer smo kopirati izlaz iz našeg koda našem sučelje. To je prilično dobro. To je zapravo nije tako uzbudljivo jer smo can-- Sve app radi se prikazuje piramidu za tebe, i postoji ništa što možete učiniti o tome. To nije osobito uzbudljivo. Dakle, sada ćemo napraviti gumb koji će jasno poglede. Čini se da je gumb će biti od pomoći. Povucite i ispustite. Jedan gumb. Button dva. Dakle, kad smo kliknite lijevu gumb, pogled treba jasno. Tu bi trebalo biti ništa na zaslonu. A kad smo kliknite desni gumb, Mario, Pogled će se pojaviti ponovno. Dakle, na taj način također radimo Magic stvari, kontrola i drag u klasi deklaracije u pomoćnica director-- u pomoćnica pregledniku. U ovom slučaju smo se određuje da bi to trebalo biti akcija. clearMario. Dakle, ovdje smo već napravili Akcija pod nazivom clearMario, što je metoda koja će se zvati kad god smo pritisnuti tipku jasna. Dakle, u našem zapravo koda, neka je samo staviti izlazni tekst i prikaz izlaza u ništa, i na taj način ona će se pojaviti da bude jasno. Osim toga, neka je stvoriti Druga metoda naziva runMario. Oh sorry, da ne bi trebao biti vlasništvo. U redu, to bi trebalo se djelovanje kao dobro. A kad je to funkcija zove, samo smo pokrenuti Mario deset. Nadam se da će biti u redu. Da li to prevesti? Da. Sad imamo pogled. Imamo izlaz. I neka je samo vidjeti što se događa. To je otišao. To je opet. Dakle, ovdje smo naveli kakvu funkciju će se zvati kada ćemo upisati nešto, kad smo pritisnuti određenu tipku. To je u osnovi meta akcije shema za događaj pogon Programiranje u C Objective Osim toga, to nije vrlo uzbudljivo jer mi zapravo ne može mijenjati Kako visoka piramida će biti, tako da smo vjerojatno želite nekako dobiti podatke od korisnika i promijeniti visinu Piramida na temelju onoga što izlaz. Tako ćemo učiniti. Dakle, ovaj put, kada mi zovemo runMario, ne samo zvati Mario izravno. Naslov ovog jednog je. Delegat. To je vrlo zanimljivo. Što je delegat? Ja ću staviti sebe ovdje. A mi ćemo vidjeti što to znači kasnije. Dakle, ovdje smo zapravo stvorili specifičan slučaj naziva UI upozorenja Pogled. Pogled UI upozorenje u osnovi ono što će vidim svaki put nešto cura i vas pita za ulaz, kao što će se dogoditi kada pokušavate kupiti nešto na App Store. Osim toga, nakon što stvoriti ga, mi samo pokazati upozorenja. U redu, neka je samo brzo test će to raditi ili ne. To je vrlo cool. Sada zapravo stvoriti unos za UI upozorenja. Ovo je način kako ćemo to učiniti. I mi bi trebali imati ulaz Pogled na oprezu. Vrlo kul. Recimo samo 10. To ne radi ništa dobro sada, jer poziv je zapravo nisu promijenili za izvršenje Mario. Dakle, to je postalo malo malo čudno, jer kad god pritisnemo tipku prema dolje, kad god pritisnite gumb u pogledu upozorenja, nešto treba dogoditi, ali to se ne događa. Kako smo uhvatiti taj? Kako znamo da je korisnik odbacio je pogled upozorenja i već upisali broj, jer je sada ništa se zapravo događa. Pa, možda ste pogodili to pravo, izaslanstva. Dakle, uz sve ove izjave, moramo dodati novi izaslanstvo u to se zove UI pogled upozorenja delegata. Tako da je svaki pojedini Interakcija ili događaj da ćemo imati s pogledom UI upozorenja će biti obrađene naš razred, kao dobro. Dakle, osim toga, bit će Dojava gumb View Kliknite na indeksu. To je postignut. Dakle, u tom slučaju imamo already-- pa imamo doznao je protokol koji će nositi slučajevima kada mi kliknite gumb Gotovo na pogled upozorenja. Dakle, svaki put smo odbaciti Pogled na oprezu, to bi se trebalo dogoditi. Dopustite mi da ga testirati vrlo brzo. Pa zapravo, došli smo do ovdje. Pa evo, što nećemo zapravo dobili je zapravo dobili the-- Tako želimo izaći Tekst koji smo prethodno ušao u pogledu upozorenja. I na temelju teksta, mi smo će prikazati Mario. To je vrlo brzo se ispostavilo Ako je to stvarno radi ili ne. Dakle, u tom slučaju, ako se ulaz, recimo, 10, trebamo vidjeti 10. Vrlo dobar, mi smo ovdje broj. To je prilično dobro. Sada posljednji korak će be-- Pa Posljednji korak moramo učiniti upravo sada je samo nazvati Mario s razini temelji se na ulazu da smo stavili u pogledu upozorenja. Dakle, moramo pretvoriti ovaj niz u iOS. Statički overflow je vrlo strašan. A onda smo jednostavno nazvati sebe marioWithLevels vrijednost. Da vidimo hoće da zapravo rade ili ne. Već si dao piramidu. Idemo pokušati promijeniti visinu. To zapravo radi. To je prilično cool. Tako da se sada možete jednostavno ulazna bilo koja vrijednost koju želite. Recimo samo četiri. To je prilično strašan. Dakle, to je u osnovi stvarno brzo primjer Upute za izradu projekta u kodu i kako se jako brzo žice gore neki stvarno jednostavne događaje i funkcije. Dakle, izvor ide da se stavi na internetu kasnije. Dakle, ako ste zainteresirani U tome iOS Mario radi, Ja ću staviti isti Projekti na web stranici CS50 kasnije. Mi zapravo smo učinili s ljeto, i prije nego što smo završili Samo želim vam ukazati dečki neki stvarno strašan sredstva koja su dostupni na internetu. Očito Apple dokumentacija će biti vrlo korisno. No, osim toga, ja pogotovo Preporučujemo četiri izvora, kod školske, Tree House, AppCoda i WWDC videa. Kod škola i drvo Kuća se Dva online edukaciji web stranice, koji je posebno usredotočiti o programskog inženjerstva. Pogotovo za kodova školu, oni imaju jako dobar tutorial na iOS. To je stvarno brzo primjer za to. Oni su zapravo stvorili stvarno cute-- pogledaj onu malu slatka iPhone dude tamo, to je prilično strašan. I način na koji oni objašnjavaju cilj C sintaksa je savršeno jasno. Tree kuća je ista. I AppCoda je forum. To je zapravo blog koji je trčanje je jako iskusan Objective C programer. I svi ti tutoriali u AppCoda su prilično kratak i jednostavan za implementaciju, Preporuča. A ako ste programer, svakako ići provjeriti Kako se WWDC video u kojem možete naučiti o najnovijim iOS programiranje tehnike, API i knjižnicama. Dakle, to je prilično puno to za seminar. Hvala vam toliko. I nadam se da se zabavite stvaranje vlastite iOS.