Tianyu Liu: Hei, miten se menee kaikille? Ja tämä on iOS App ohjelmointi tavoitteen c seminaari. Ja nimeni on Tianyu Liu. Olen Lowell junior juuri nyt, keskittämällä tietotekniikassa. Joten tässä seminaarissa olen menossa opettaa teitä hieman siitä, miten tehdä app. Jee, innostu siitä. Joten ennen kuin edes aloittaa sukellus varsinaiseen ohjelma-puolella, Haluan vain todella nopeasti puhua miksi ehkä haluat rakentaa iOS-sovellus? Miksi iOS niin mahtava? Joten ensimmäinen ongelma, ensimmäinen asia, joka on aika mahtava meille, erityisesti CS50 Opiskelija, että iOS käyttää Tavoite C. No, on uusi kieli nimeltään Swift, mutta emme aio käyttää, että tässä seminaarissa. Jos olet kiinnostunut Swift, siellä on itsenäinen seminaari siitä. Mutta Tavoite C on pohjimmiltaan pääjoukko C. Merkitys että kaikki käytät C voi käännettävä Tavoite C hyvin helposti. Kuten saatat nähdä myöhemmin, että todellakin on olemassa joitakin erittäin Syntaksi, ovat periaatteessa täsmälleen sama, C ja tavoite C. Joten, koska olet ottanut CS50 tätä pitkälle, olet jo tietää Tavoite C, vähintään 40%. Myös Apple on todella vankka API iOS. On paljon todella hullu mitä voi tehdä. Yksi mikä on joku todella luotu iOS-sovellus ohjaamiseksi autoja, jotka on aika mielenkiintoinen. Luultavasti helikopteri on jännittävämpää. Mutta se, miten voimakas iOS API voi olla. Ja saatat olla tajunnut juuri nyt, pinon ylivuoto on luultavasti yksi Tärkein verkkoaineistot käytössäsi. Ja hyvä uutinen, joka yhden ongelman voit mahdollisesti ajattele samalla rakentaa Opinnäytetyö Tavoite C, on todennäköisesti pinon ylivuoto vastaus. Se on aivan mahtava. Sen lisäksi, että iOS on todella alusta jossa voit tavoittaa valtava Yleisö pienellä vaivalla. Se ei ole kuin Android, jossa kaikki on ihan hajanainen. Kaikki iOS on yhtenäinen. Ja niin kauan kuin luot sovellus iPhone, voit helposti portti, iPad, iPad mini, tai eri iPhone kokoja. Nämä ovat kaikki todella kätevä. Ja se on vain todella hyvä impressing ystävillesi. Voit vain pitää iPhonea ja kertoa ystävällesi hei, tämä on sovellus teen. Voit tehdä, että mitään työpöydän apps, mikä on mukavaa. Okei, nyt katsotaanpa itse saada kielelle Tavoite C. Joten miksi emme aloita joitakin todella Syntaksi. Kuten aiemmin mainitsin tavoitteen C Se on pohjimmiltaan pääjoukko C. Niin paljon Syntaksi ovat itse asiassa täsmälleen sama. Ilmoittaminen muuttuva ja lisäämällä kaksi muuttujat yhdessä on juuri niin kuin olemme tehneet Mario. Ei mitään uutta täällä. Samoin alivuokralaisen silmukka ja ehto on myös sama. Voit tehdä silmukan aivan kuten ovat teki Mario [kuultavissa]. Ja voit tehdä olosuhteet aivan kuten mitä ovat tehneet sinun aiempi s sarjaa. Kuitenkin Tavoite C ei ole täysin C ja siellä on jotain, joka on outo siitä. Ensimmäinen on se, että kun olet tekee C-ohjelmointi, voit yleensä soittaa kuuluu ja sitten kirjaston nimi. Mutta Tavoite C soitat että tuonti. Periaatteessa sanoen toimintoja, vain erilaisia ​​nimiä. Ja jouset ovat todella vähän outo. Voit nähdä, että ensimmäinen asia, joka on outo on, että sinulla on melko weird-- sorry-- sinulla melko outo NS kirjaudu tänne. Ja toinen juttu Sellainen outo on sinulla on merkki ennen todella julistaa merkkijono. Joten on merkki pohjimmiltaan merkitsee että merkkijono ei ole vain merkkijono, se on todella esine. Aiomme selittää että myöhemmin niin ei paniikki jos et ymmärtää, mitä se tarkoittaa. Ja tulostus konsoli on hieman erilaisia, koska C kutsumme printf, mutta tavoite C kutsumme [kuultavissa]. Saatat ihmetellä, mitä on, että. Tämä on periaatteessa Printf, vain eri kielellä. Täsmälleen sama käyttö, täsmälleen samat toiminnot. No se kääntyy pois, että Tavoite C oikeastaan on ns etuliitteen lähes kaikki, jokainen perustiedot tyyppi, NSString, nsarray, nsdictionary. Syynä on, että ns todella tarkoittaa Next Step, joka on yritys, joka Steve Jobs on perustettu, joka on yhtiö, jossa kieli Tavoite C on syntynyt. Joten tämä on periaatteessa perinne. Tiedän, että se on hieman outo, mutta se on Apple. Joten jotain, joka on vieläkin oudompi kuin että on tehtävä ilmoitus. Tämä on hyvin erilainen kuin mitä me katso C, koska tässä se todella ei näytä kuin C enää. Mitä sinulla on here-- mukaan tavalla tämä ei ole luetelmakohta, tämä on miinusmerkki. Sinulla on miinusmerkki suluissa mitätön ja sitten funktion nimi. Sanotaan vain, jos me on Hei maailma, sitten palautuva olisi mitätön koska palaamme mitään. Mikä saa todella outoa on, että kun olet joissa on enemmän kuin yksi parametri kulkeutumasta sama toiminto, joka on todella outoa kuten kuvassa. Meillä menetelmän nimi, kutsuttu addInt on [äänetön] ja olemme kulkee yksi parametri. Mutta sen jälkeen, meillä on lisää menetelmän nimi puhelun. Ja kun kanssa olemme kulkee toinen parametri. Tämä on itse asiassa hieman outo, mutta kaikki nämä toiminnot ilmoitukset noudattaa samaa kaavaa kuin tämä. Meillä on miinusmerkki aluksi. Miinusmerkki voisi olla plusmerkki joskus perustuu millaista menetelmää on se. Menetelmä on periaatteessa toinen nimi toimintoa. Ja me aiomme selittää, että myöhemmin, kun puhumme esine ohjelmointi. Ensin määrittää tuotto kirjoita Sulkeissa, jonka jälkeen tulee menetelmän nimi. Olet kulkee yksi parametri. Ja jos sinulla on enemmän parametreja sinun täytyy laajentaa menetelmän nimi ja pohjimmiltaan kirjoittaa jotain lisää täältä. Se voi olla mitä tahansa haluat. Meidän tapauksessamme se on mukana. Mutta voisi sanoa loppuun, tai tai tai abc koko baari, mitä haluat. Ja sitten sen jälkeen että olet kulkee parametri b. Tämä on todella outoa yleissopimuksen mutta olemme näkemään miksi Apple halusi tehdä sen hyvin nopeasti. Joten miten voit soittaa toiminto? Soittaminen toiminto tavoite C on myös erilainen C. Oikeastaan, jossa toiminto Tavoite C on enemmän kuin puhut jonkun. Täällä meillä on itsenäinen, joka kutsutaan objekti. Olet pohjimmiltaan kertoo vastustaa itse sanoa "Hello World!" Eli miten soittaa toiminnon. Objekti ja menetelmän nimi yhdistellä keskenään. Ja tässä outo laajentaminen varten menetelmän nimi todella tulee pelata. Katsotaanpa toinen esimerkki. Me vain määritellään menetelmä nimeltä addInt kanssa blah blah blah. Joten tässä tapauksessa, kun soitat että erityiset [? Viestin?] se menee näyttää itse addInt: 10: 2. Se kuulostaa Englanti. Vaikka toimintoa toiminto ilmoitus on outo, kohta Tavoite C: n menetelmä ilmoituksen malli, on, että kun soitat funktio tai menetelmä se kuulostaa todellinen Englanti. Joten se on erittäin intuitiivinen kun saat sen. Varsinkin tässä tapauksessa, jossa voit periaatteessa nähdä, että funktion nimi on tavallaan dokumentointia itse. Et tarvitse mitään lisää selitys nähdä mitä tapahtuu, mitä täsmälleen yksi parametri tekemässä. Going pidemmälle, Puhutaanpa hieman vähän siitä olio-ohjelmoinnin. Olio-ohjelmointi on yksi perustavanlaatuinen ohjelmointi tekniikoita tai kuvioita, jotka on käyttämät Tavoite C. Tavoite C kutsutaan Tavoite C, ei C, todella hyvä syy. Joten ennen kuin pääsemme Tavoite C syntaksi, Katsotaanpa todella nopeasti tarkastella mitä on esine. Olemme luultavasti tehnyt jotain kuten objekti ennen, joka kutsutaan struct kun olet täytäntöönpanosta puu tai linkitetty lista tai [? kokeile. ?] Niin, se on pohjimmiltaan kuin struct, mutta se on paljon tehokkaampi kuin. Esine on menetelmiä ja ominaisuuksia. Menetelmät ovat pohjimmiltaan toimintoja. Periaatteessa toimii, että johonkin tiettyyn kohteeseen. Ja ominaisuudet ovat pohjimmiltaan kenttä määrität struct. Joten jokainen esine meillä on joitakin ominaisuus että on joitakin muuttujia, jotka ovat ominaisia ​​objekti. Ja meillä on joitakin toimintoja, joita ovat myös erityisiä kohteeseen. Ja funktiot menetelmät ja muuttujat kutsutaan ominaisuuksia. Se on vain hieno nimi. Vaikka et itse asiassa jokainen näkymä näet samalla avaat iOS-sovellus, Sanotaan vain Twitter tai Facebook, jokainen näkymä näet on esine. Ja vaikka koko sovellus on objekti aloittaa. Erittäin mielenkiintoinen käsite. Ja miksi me haluamme esine ohjelmointi? Joten voitte kuvitella, että kun ohjelma se saa melko monimutkainen. Sanotaan vain, kun olet täytäntöönpanosta shakkilauta, logiikka on menossa olla todella monimutkainen. Sinulla on 36 eri kappaletta, joten jos haluat kirjoittaa logiikka kaikille 36 eri kappaletta shakki, että tulee olemaan paljon eri toimintoja ja muuttujia. Se on paljon vaivaa. Ja luultavasti aiot kirjoittaa eri menetelmää tai eri toimintoa kunkin pala juuri valvoa, mitä he tekevät. Mutta jos et olio ohjelmointi, kaikki nämä palaset voidaan abstrahoituvat osaksi yhden objektin. Ja objekti on joitakin yhteisiä ominaisuudet, kuten millainen pala se on? Mikä väri se on? Miten se voi liikkua? Ja näin sinulla on suuresti yksinkertaistettu logiikka sen. Joten se on vain todella hyvä tapa tehdä monimutkaisia ​​ohjelmia, ja hierarkkinen suhde ohjelman sisällä, hyvin yksinkertainen. Kuten tulette näkemään miksi hyvin nopeasti, kun olemme todella tekee programming-- kun olemme todella tekee S-koodin Ohjelmointi myöhemmin. No sen lisäksi, olio-ohjelmoinnin on vain hauskaa. Sinun täytyy suunnitella oman esineen. Sinun täytyy suunnitella mitä se näyttää itse. Ei ole oikeaa vastausta. Ja se on täysin mielenkiintoinen. Joten olio-ohjelmoinnin, kahta perusperiaatetta on luokan ja esimerkiksi. Luokka on pohjimmiltaan malli esine. Ja esimerkiksi on pohjimmiltaan yksi erityinen kohde. Sanotaan vain teet evästeen. Tällöin jokainen cookie voit itse päätyä tulee olemaan objekti. Mutta eväste levy käytät leipoa kaikki evästeet luokkaa. Luokka on periaatteessa mallin. Ja esimerkiksi on yksi erityinen objekti luotu pois tämän luokan. Ja esimerkiksi luodaan perustuvat luokan ilmoitus, kuten näemme myöhemmin dioja. Joten itse tehdä todella nopea esimerkki [kuultavissa]. Sanotaan olemme julistamisesta esine kissa. Objektin have-- kissa luokka olisi on joitakin ominaisuuksia ja menetelmiä. Millaisia ​​ominaisuuksia on luokan have-- olisi kissa on? Esimerkiksi väri, ikä ja rotu, ne on muuttujia, ovat kullekin kissalle. Ja ne ovat asioita että käytämme kuvaamaan kissan. Millainen menetelmä, tai mitä kissa tehdä? Nopea esimerkkejä olisi Chase hiiri, syö kalaa tai vain miau. Tämä on todella nopea Esimerkiksi kissan luokan. Ja todella erityistä kissa kohde on kissa jossa täsmennetään väri, ikä ja rotu. Tällöin meidän esine on enää luokkaa enää. Me kopioi mallin luokasta ja me määrittää kuhunkin tiedot kyseiseen tiettyyn kohteeseen että se on riippumaton. Ja kun soitat menetelmä sisällä kohteen, voit vain soittaa miau objektin, joka on kissa juuri loit. Todennäköisesti voit tulostaa jotain "Hello World! Miau. " Aika söpö. Okei, katsotaanpa vain päästä joitakin yksityiskohtia ja katso mitä tämä kääntää ollessa iOS ohjelmointi. Joten iOS ohjelmointi jokaisen luokka toteutetaan kaksi tiedostoa. Yksi tiedosto on täällä, joka kutsutaan rajapinta. Toinen tiedosto on täällä, joka kutsutaan täytäntöönpanoa. Tyypillisesti rajapinta on extension.h kuten olemme nähneet C-kirjastoja. Ja täytäntöönpano tiedosto on menossa on extension.n. Se on tavallaan outo. Mutta .N tarkoittaa itse asiassa .c, ei ole mitään perustavanlaatuinen ero näiden kaksi. Joten tässä tapauksessa, voimme nähdä, että olemme julistamisesta käyttöliittymä, Cat: esine. Tätä kutsutaan perintö. Olemme periaatteessa periä kissa luokan objektin luokka. Joten jokaisen kiinteistön ja menetelmä, joka oli aikaisemmin määritelty objektin luokka automaattisesti määritelty vuonna kissa luokassa samoin. Lisäksi, että me määrittelemme väri, rotu ja ikä, kolme muuttujaa. Se todella näyttää jotain olet tehnyt ennen. Se näyttää struct. Tämä on pohjimmiltaan syntaksi varten struct ilmoitus, ja joka on täysin oikea. Ja koska aiemmin mainitsin, ero struct ja kohde, joka on yksi perustavaa laatua olevat erot on se, että esine on menetelmä, vaikka struct vain muuttujia. Niin lisäksi ominaisuuksia tai muuttujat olemme luotu objekti, me tarkentaa joitakin menetelmä. Sanotaan vain täällä meillä kaksi menetelmää, yksi on Miau, toinen on jahdata hiiri. Me luultavasti halua olla ohi parametri perustuu edellisessä menetelmässä ilmoituksen malli. Et luultavasti halua olla kulkee hiiri. Ja varmaan palata bool merkityksenannon Jos kissasi on onnistuneesti kiinni hiirtä tai ei. Tämä on käyttöliittymä, mutta voimme nähdä, että käyttöliittymä todella ei tee mitään. Se vain kertoo ohjelman mitä exists-- mitä olemassa kissa luokassa. Joten jotta ohjelma tehdä jotain, tarvitsemme toteuttamiseen tiedostoja. Joten tässä, ensimmäinen asia mitä teemme on ilmeisesti tuomme käyttöliittymä. Kun tuomme käyttöliittymä, me määrittelemme menetelmällä. Sanotaanko täällä miau olisi vain tulostaa "Hello World!" konsoliin. Toteuttamista ja sen jälkeen tiedosto, olemme melko paljon tehnyt. Tämä on pohjimmiltaan luokka ilmoitus yhdelle tunnille. Joten nyt kysymys on, Miten julistaa muuttuja? Miten käytät luokan luoda objekti Tavoite C on kirjoitettu täällä. Olet ensimmäinen määrittää, että tämä on kissa osoitin, koska jokaisen esineen tavoite C on vihdoin toteutettu osoitin. Ja soitat luokka, soita heille kuten Alloc, joka on pohjimmiltaan malloc, kertoo käyttöjärjestelmä, että olet Tarvitsen muistia tämän objektin. Tämän jälkeen sinun on esine jo ja juuri alustaa sen. Tämä on vain yleissopimus. Tiedän, että se on hieman outo, mutta tämä on todella miten Apple tekee juttuja. Määrittäminen ominaisuuksien oikeastaan ​​aika yksinkertainen. Se on hyvin samankaltainen mitä teet, kun olet osoitetaan tiettyjä alan sisällä struct. Sinun täytyy vain muuttuja nimi, kiinteistön nimi, ja antaa erityistä arvoa sille. Ja soittamalla menetelmä on hyvin samankaltainen. Kutsuvan menetelmä on periaatteessa mitä puhun soitosta tahansa menetelmällä Tavoite C. Olet kulkee esine, vuonna Tässä tapauksessa se tulee olemaan myCat, ja olet kulkee menetelmän nimi. Ikään kuin puhut objekti, myCat, että sinun pitäisi miau. Se on aika mielenkiintoinen. Sen jälkeen, on olemassa yksi olennaisempaa suunnittelumalli että meidän täytyy puhua ennen kuin paneudun todellista S koodia. Tämä suunnittelumalli on nimeltään tapahtumaohjattua ohjelmointi. Tämä on myös luultavasti yksi perusajatuksista iOS ohjelmoinnin. Joten luultavasti tiedä mitä tarkalleen on tapahtuma ajetaan ohjelmointi, mutta se ei oikeastaan ​​että pelottavaa. No itse asiassa, sinulla on jo tehnyt sitä aiemmin. Tämä on yksi riviä olet luultavasti jo kirjoitettu viime [äänetön] of CS50, google.maps.event.addListener (merkki, "Klikkaa", function () {}) :. Soittamalla tätä linjaa olet olennaisesti kertoo tietokone että aina kun tapahtuma nimeltä "Klikkaa" tapahtuu merkki, käyttää tätä toimintoa. Tämä on hyvin erilainen kuin mitä teet mario.c. Vuonna mario.c voit vain ajaa ohjelman kerran, se antaa sinulle tuotos, ja olet valmis. Nämä ovat tavallaan kuin yksi laukaus ohjelmia. Tapahtuma ajetaan ohjelmia ovat hyvin, hyvin erilaisia. Kuvitellaan, jos Facebook on yksi laukaus ohjelma se ei ole todella hyvä. Sinä vain mennä Facebookiin kerran ja se on tehty. Se antaa sinulle joitakin lähtö ja et koskaan saanut sitä takaisin. Et koskaan saanut mitään lisää. Joten tässä, varsinkin kuvio käytämme on tapahtuma ajetaan siten, että jokainen toiminto kiinni perusteella, mitä tapahtuma on tapahtunut. Esimerkiksi jos meillä on nappia ja me määritä että aina, että painiketta napsautetaan, soita toiminto nimeltään "Hello World!" Näin voimme todella hallita toiminto logiikka virtaavat erittäin joustavasti. Käyttäjä voi tehdä tai soittaa toiminto joka on jo sanottu. Se on täysin sen mukaan, mitä käyttäjät tekevät. Voimme siis nähdä, että tämä on todella paljon parempi kuin mario.c. Ja hyvä uutinen on se, että se on oikeastaan ​​ei ole uusi käsite. Olette jo tehneet että viimeinen ongelma asetettu. Joten tavoite C on kolme eri kaaviot tapahtuman ajaa ohjelmointia. Ensimmäinen kaavio on nimeä kohde toimintaa, jossa voit sitoa painikkeen paina joidenkin toiminto. Sanotaan vain, kun valitset jotkut painiketta, soitat jonkin toiminnon. Tämä on hyvin yksinkertainen tavoite toimia. Toinen on oikeastaan ​​vaikein, sitä kutsutaan valtuuskunnan protokollaa. Aiomme selittää että hyvin yksityiskohtaisesti myöhemmin. Ja kolmas tapa on ilmoituksen. Tämä ei oikeastaan ​​ole erittäin tärkeää sikäli kuten olemme huolissaan, koska mahdollisuus että aiot käyttää ilmoituksen lopullisessa projektissa on melko alhainen. Joten aiomme ohittaa, että osa. Ja me aiomme sukeltaa osaksi valtuuskunta protokollaa. Joten mitä on protokolla? Vai mitä on valtuuskunnan? Puhutaanpa protokolla aloittaa. Pöytäkirjat ovat vain tapahtumia. Mutta nämä tapahtumat annetaan sinulle Apple aloittaa. Esimerkiksi en ole täysin varma, kuinka moni teistä kaverit käyttää Applen alkuperäinen App postin tai yhteystietoja, mutta joka kerta kun selaa pöytä ja paina erityinen solun pöydällä, joka on tapahtuma. Ja jos haluat tehdä Tällöin itse, se on todella vähän vaikea. Joten Apple on antanut, että jopa sinulle niin että voit vain suoraan käyttää tapahtuma tehdä jotain omaa. Pöytäkirjat ovat todella todella, todella laajalti käytetty Tavoite C. No Itse asiassa jokainen app on jotain kiinni App edustaja. Sisältä herkkä on kaikki protokollia lastaus sovellus. Sanotaan vain on tapahtuma app teki kuorman. Mitä pitäisi tapahtua, kun olet luotu sovellus, kun avaat sovelluksen, kun suljet sovelluksen, tai sen jälkeen laitat iPhone nukkumaan. Nämä ovat kaikki tapahtumat, jotka on jo annettu sinulle. Ja alunperin sisällä nämä hiukkaset ei tule täytäntöönpanoa. Apple juuri kertonut teille, että tämä toiminto tapahtuu, kun jokin tapahtuma tapahtuu, mutta mitä teet, että toiminto on täysin sinun. Valtuuskunta on pohjimmiltaan kertoo luokka että sinun pitäisi käsitellä näitä protokollia. Se on hieman sekava, mutta se on paljon selkeämpi, kun teemme s koodit toiminnassa. Valtuuskunnan protokolla on oikeastaan erittäin vankka mekanismi siinä mielessä että jos teemme valtuuskunta tiettyyn luokkaan, voimme olennaisesti käsitellä kaikenlaisia ​​tapahtumia millä tahansa luokan meillä, erittäin kätevä työkalu. Joten yksi nopea esimerkki valtuuskunta protokolla on mitä juuri puhui. Tämä protokolla nimenomaan kutsutaan taulukkonäkymää [äänetön] valitaksesi rooli klo [? indeksi?] [? ohi. ?] Joten tämä Jos olisi kiinni, kun oikeastaan ​​kosketa tietyn solu teidän taulukkonäkymää, Sanotaan vain sähköpostin tai yhteystietojesi app. Sisällä toiminto oli perin tekemättä mitään. Toiminto ei tehdä mitään oletuksena. Mutta voit määrittää mitä toimintoa tekee, antanut mitä haluat ulos app. Erittäin kätevä työkalu. Ja kaikki, jotka on sanottu, olen periaatteessa kattaa joitakin erittäin Syntaksi ja perusajatus tavoitteen C ohjelmointi, ja voimme tehdä joitakin s-koodin. Paljon jännittävämpää. Joten s koodi on oikeastaan hieman ylivoimainen kun avaat sen ensimmäisen kerran. Yksi nopea huomautus, joten jos haluavat tehdä iOS kehitystä, Olen erittäin suositeltavaa on Mac. Koska teet iOS kehittäminen Windows on todella, todella kovaa. Se on toteutettavissa, mutta se on todella vaikea. Ja olet varmasti tehdä halua käyttää g muokata. Joten s koodin meillä useita eri alueita. Kun ensin avata s koodi näet navigointialueelta, joka pohjimmiltaan näyttää kaikki tiedostoja, jotka on teidän nykyinen projekti. Sinulla työkalurivialueella joka on pohjimmiltaan toimitusjohtaja näkemyksiä, tai jotkut pikku nopeasti Työkalut Tietoja s koodin itse. Ja tämä on todellinen toimittaja alueella. Tämä alue on hyvin samankaltainen g muokata, mutta paljon parempi kuin g muokata. Ja tätä oikeutta alueella, on kutsutaan apuohjelma alueella. Alue tulee todella kätevä, kun luot käyttöliittymän tai täsmentää Nopea asetelmia oman sovelluksen. Ja viimeinen ala on virheenkorjaus. Tämä alue sisältää konsolin. Joten kun sanot printf, tai nslog meidän tapauksessamme, kaikki tulokset ovat joudumme painamaan täällä. Kaikki kunnossa? Kai me todella nopeasti tehdä Esimerkiksi iOS ohjelmointia. Ja katsotaanpa todella avata s koodia. Joten joka kerta avata s koodia, se on tulossa esiin jotain sellaista. Se tulee kysyä Mitä haluat tehdä? Haluatko aloittaa jotain satunnainen, leikkipaikka, periaatteessa olet voi vain testata koodia ilman todella sitoutumalla tahansa App. Haluatko luoda uuden projektin? Vai haluatko jatkaa työskentelevät olevan projektin? Meidän tapauksessamme olemme menossa luoda uuden projektin. Joten se on todella mukavaa, S koodi todella on jo antanut sinulle joitakin malleja luoda esineitä. Jos haluat tehdä peli, s koodi todella on peli mallin sinulle, on sivu pohjaisia ​​sovelluksia, välilehti pohjainen sovellus. Tässä tapauksessa olemme menossa tehdä jotain hyvin yksinkertaista, ja aiomme käyttää yhden näkymän sovellus. Jälkeen, että vain mitä haluat soittaa tuote, ja mikä on nimesi, mikä on sinun tunniste, ja mitä kieltä käytät. Täällä ei halua Tarkista käyttäen Core Data. Core Data on pohjimmiltaan databasing iOS. Jos et Core Data, s koodi tulee määritellä paljon monimutkaisempi luokat sinulle. Joten pitää kaiken yksinkertainen, olemme juuri menossa tekemään ilman Core Data nyt. Ongelma aiomme olla käyttäen on that-- ongelma aiomme olla suunnittelemassa on, että me pohjimmiltaan haluat tuoda Mario C: ltä että iOS-sovellus. Joten kutsukaamme että Mario-iOS. Tietenkin voit määrittää, mitä haluavat laittaa projekti. Ja siellä mennään. Joten tämä on hieman ylivoimainen, mutta tämä on todella mitä me juuri nähnyt dioja. Ja ensimmäinen alue näemme nyt on periaatteessa suunnittelussa. Joten kaikki mitä haluat tehdä projekti, millainen laite, Sanotaan vain, millainen laite Haluatko sovelluksen näkyvän? Onko se iPhone, iPad tai universaali? Joten laite suunta, kaikki jutut. Ei kovin tärkeä, mutta voisi olla, mutta tämä on paikka, jossa voit määrittää projekti jos todella haluavat ottaa käyttöön Apple Store. Okei, katsotaanpa jotain, joka on sisällä meidän koodi. Mennään läpi tiedosto navigaattori. Ja nämä ovat kaikki tiedostot jo tuli kanssa mallin, erittäin mukava. Joten kun klikkaa yksi heistä tämä on mitä se näyttää. Hyvin samanlainen kuin g muokata. Mutta voit nähdä, että syntaksin korostus on luultavasti hieman mukavampaa. Ja se on todella paljon voimakas kuin g editointi. Ja voit automaattinen täydennys paljon asioita sinulle, kuten tulemme näkemään hyvin nopeasti. Avataan virheenkorjaus alueella samoin. Okei, kuten näemme, konsoli on täällä. Tämä on mitä aiot nähdä, missä olet printf tai nsloging jotain. Joten pitemmittä puheitta itse koota app ja katso mitä tapahtuu. Yksi olennainen ominaisuus s koodia, että s-koodi mukana iPhone simulaattori. Joten sinun ei tarvitse olla iPhone kokeilla projekti, s koodi voidaan simuloida että teitä, kuten voimme nähdä nyt. Se on aika kiva. Se otetaan vähän vähän aikaa koota ja pohjimmiltaan olemme tyhjä sovellus, joka todella tekee mitään. Mutta se kokoaa. Se on aika mahtava. Se on paljon parempi kuin C, vai? Selvä, sitten katsotaanpa yrittää lisätä jotain. Yksi tiedosto, joka on hieman outo täällä kutsutaan kuvakäsikirjoituksen. Tämä on todella suuri, mahtava ominaisuus s koodia. Koska s-koodin, voit itse vetää ja pudota osat päälle käyttöliittymä ja se suoraan näy. Kokeillaan sitä. Me pudota etiketti täällä "Hello World !!!" Voimme keskittää että. Aika siistiä. Nyt suorittaa tämän pysäkki simulointi. Täällä meillä on "Hello World !!!" Emme edes tee mitään koodausta vielä. Mitä hittoa tapahtuu? Tämä on, miten voimakas Interface Builder voi olla. Joku sanoi jopa, että voit luultavasti vain täydellinen sovellus kirjoittamatta luultavasti tuhat riviä koodia vain käyttämällä Interface Builder. Mutta se ei todennäköisesti ole Paras tapa tehdä se. Nyt todella saada alas koodaus. Joten tiedoston rakenteen on oikeastaan ​​todella mielenkiintoinen koska, sillä saatat nähdä, siellä ei päätehtävä missään. Katso? Kuten aiemmin mainittiin, voit nähdä, että tämä on täytäntöönpano tiedosto tietyn luokan. Mutta ei ole tärkein missään. Joten missä on tärkein? Oikeastaan ​​on tärkein, mutta tärkein on todella piilossa teiltä. Tärkein on täällä. Se näyttää tutulta. Joten periaatteessa mitä iOS tekee sisällä tärkein on, että aina tärkein on kutsutaan, joka on pohjimmiltaan kun sovellus suoritetaan, se luo esineen nimeltä AppDelegate. Kuten aiemmin mainitsin, koko sovellus on todella esine itse. Joten tällä tavalla, periaatteessa iOS-sovellus kertoo kääntäjä että OK, aion luoda tuotteen nimeltä AppDelegate, ja että tulee olemaan minun app. Joten sinun täytyy mennä kautta että AppDelegate ja katso, mitä se kaveri tekee. Työni on minulle tehnyt. Ja AppDelegate voit nähdä, että on olemassa joitakin todella outoa toimintoja, hyvin oikeastaan ​​menetelmiä, jotka Apple on jo antanut sinulle. Mitä nämä ovat? Nämä ovat oikeastaan ​​vain protokollia että puhuin. Joten nämä ovat tapahtumia, Apple on antanut teille aloittaa. Mikään joissakin toiminnoista juuri nyt, mutta jos haluamme alustaa jotain meidän app ennen päästä näyttämään missään, me teemme sen täällä. Voit vain lukea nimi ja kai tapahtuma on oikeastaan ​​todella selvä. Joten nyt tärkein on luonut esine AppDelegate. Ja mitä AppDelegate aikoo tehdä on todella myös teiltä piilossa. AppDelegate aikoo aloittaa Lataus ViewController varastossa. Joten se on pohjimmiltaan aikoo aloittaa lataamisen kaikki näkemykset, että sinulla on ja vain tehdä näkymä perustuu hierarkiaan. Joten tässä tapauksessa meillä on vain yksi näkymä, joka on täällä. Niin, että on ainoa näkymä että menee kutsua. ViewController logiikka on täällä. Tämä on koodi, joka tosiasiallisesti ohjaa mieltä me juuri nähnyt. Selvä, tehdään jotain täällä. Joten viewDidLoad kuulostaa tapahtuma, kun itse asiassa tämä on myös valtuutettu, tämä on myös protokolla. Joten mitä mieltä on ladattu, kaikki sisällä toiminto kutsutaan. Tässä tapauksessa meidän pitäisi nähdä "Hei Tianyu! ", Jos otamme ohjelmaan. Se on tulossa hieman hidas kokoamisessa kuvakäsikirjoituksen tiedostoja. No todellakin, emme näe sille ulostulo. Se on aika siistiä. Nyt itse tehdä Mario. Aion määritellä toimiakseen hyvin nopeasti. marioWithLevels: (int) taso tuloksia. Okei, tämä on todella mahtava piirre n koodin auto loppuun. Joten kun kirjoitat ja kirjoita kirjoita, se on jo luopunut mallin sinulle, joka on aika siistiä. Sen pitäisi näyttää todella tutulta kaverit. Anteeksi, se on minun vikani. Okei, viileä. Tämä logiikka pitäisi näyttää todella tutulta teille kaverit, varsinkin juuri Mario. Mutta me nyt tulostaa ulos konsoli joka ikinen kerta, koska haluamme jotenkin pitää Seuraa mitä olemme tulostettaessa. Aiomme käyttää lopputulos jotenkin myöhemmin, näyttää print ulos johtavat käyttäjälle. Joten sen sijaan olemme vain nslogging kaiken, joka me tallentamiseen kaiken osaksi funktiokutsu tulos, mutta logiikka on täsmälleen sama. Kun päätämme sen, me vain tulostaa meidän tuloksia. Ja tässä sen sijaan tulostamisen minun nimi, aiomme soittaa toiminto. Katsotaan, mitä tapahtuu. Oho, ilmeisesti. Meillä on mukava pikku pyramidi täällä. Tämä on pohjimmiltaan C, olemme vain manipuloimalla jossa soitat toiminto ja miten toiminta näyttää. Ei ole mitään erilaista. Mutta tämä on todella ei kovin jännittävä täällä, koska emme näkemään mitään iPhone. Joten jos sinulla todella on iPhone app-- jos todella on Mario iOS oikeus nyt, et tule nähdä mitään, on mitään tekemistä Mario koska kaikki nämä lähdöt tulee konsoliin ovat piilossa käyttäjältä. Tämä on mitä näet, joka on "Hello World !!!" Ei hyvä. Nyt yritetään tehdä käyttäjän katso mitä me tulostamalla. Meidän ei siis tarvitse merkitä enää. Yritetään keksiä jotain muuta, että voisi olla hyödyllistä. On oikeastaan ​​yksi elementti, joka on nimeltään tekstikenttään, joka voisi olla erittäin hyödyllistä meille. Se pohjimmiltaan näyttää alueen tekstiä, jota voidaan muokata. Niin että näyttää todella hyödyllinen. Nyt vedä ja pudota se. Vau, meillä on teksti näkymä mielestämme todella hieno. Se on hieman liian iso. Tehdään se pienempi. Laita se keskelle. Tee se pienempi samoin. Nyt meillä on teksti näkymä, jota voisi käyttää näyttämään meidän lopullinen tulos. Mutta nyt se on todellakaan ole menossa töihin koska siellä on no-- ViewController me vain määritelty ei tiedä, että on tekstinäkymä siellä. Joten meidän täytyy jotenkin linkki tekstinäkymä me vain luotu luokka, joka on jo tullut meille. Miten teemme, että on oikeastaan ​​todella maaginen. Joten avata kuvakäsikirjoituksen. On erityinen [äänetön] nimeltään [? avustaja?] [kuultavissa]. Kun klikkaat että se on menossa avata kaksi tiedostoa. Yksi on luokka ja toinen on vastaava näkymä siitä. Se on hyvin, hyvin avulias. Ja haluan vain kulkee .h tiedosto. Ohjaus, tämä on [kuultavissa] logiikkaa. Paina Ohjaus ja vedä teksti näkymän ilmoituksen. Aiomme soittaa että outputView. Yhdistä. Joten tässä olemme julisti uuden omaisuus meidän ViewController luokassa. Ja uusi ominaisuus on vain tekstiä näkymä olemme luoneet käyttöliittymän rakennuksessa. Joten tällä tavalla voisimme pääsy kaikkiin tietoihin ja käsitellä kaikkea, mikä on sisällä lähtö mieltä, mikä on mahtava. Joten meidän todellinen koodi, Tehdään jotain. Joten tällä kertaa, kun olemme kuin tulostus ulos lopullinen tulos Mario, olemme ei kirjautumisen mitään. Tarkoitan voisimme pitää hakkuut selvitys. Lisäksi, että me Lähetä lukema me vain luotu tuotos mieltä, joka on UI textview me juuri luotu. Katsotaanpa nyt, mitä tapahtuu. Vau. Meillä on pyramidi app juuri nyt. Joten käyttäjä voi nähdä meidän Lähtöön olemme kopioitu tuotos meidän koodi meidän käyttöliittymä. Se on aika hyvä. Se on oikeastaan ​​ole niin jännittävää, koska me can-- Kaikki sovellus tekee on osoittaa pyramidin teille, ja ei ole mitään voit tehdä asialle. Se ei ole erityisen jännittävä. Joten nyt tehkäämme painiketta että tyhjentää näkemyksiä. Näyttää siltä, ​​että painike on hyötyä. Vedä ja pudota. Button yksi. Button kaksi. Joten kun klikkaa vasemmalla -painiketta, näkymä pitäisi tyhjentää. Ei pitäisi olla mitään ruudulla. Ja kun me sitten oikealla painikkeella, Mario, näkemys tulee uudelleen näkyviin. Joten näin teemme myös taika kamaa, ohjaus ja vedä luokkaan ilmoitus vuonna avustaja director-- vuonna avustaja katsoja. Tässä tapauksessa olemme täsmennetään että pitäisi olla toimintaa. clearMario. Joten tässä olemme jo luoneet ele clearMario, joka on menetelmä, joka olisi nimeltään aina kun painat painiketta selvä. Joten meidän todella koodin, haluan vain laittaa tuotoksen teksti ja lähtö näkymä olemattomiin, ja näin se näyttää olevan selvä. Sen lisäksi, katsotaanpa luoda toinen menetelmä kutsutaan runMario. Voi anteeksi, että ei pitäisi olla omaisuutta. Okei, että olisi olla toiminnan samoin. Ja kun tämä toiminto on nimeltään, me vain ajaa Mario kymmenen. Toivottavasti se on hieno. Onko se kääntää? Kyllä. Nyt meillä on näkymä. Meillä on lähtö. Ja haluan vain nähdä, mitä tapahtuu. Se on mennyt. Se takaisin. Joten tässä olemme tarkentaneet millainen toiminta soitetaan, kun me kirjoittaa jotain, kun painat tiettyä näppäintä. Tämä on periaatteessa kohdennettu toimi järjestelmässä varten tapahtumaohjattua ohjelmointi Tavoite C. Sen lisäksi, että se ei ole kovin jännittävä koska emme voi todella muuttaa kuinka suuri pyramidi on, joten me varmaan jotenkin saada käyttäjän syötettä ja muuttaa korkeutta pyramidi perusteella, mitä he tuotos. Joten aiomme tehdä. Joten tällä kertaa, kun me kutsumme runMario, emme vain soittaa Mario suoraan. Tämä otsikko. Edustajan. Tämä on hyvin mielenkiintoinen. Mikä on edustaja? Aion laittaa itsensä täällä. Ja me aiomme nähdä mitä se tarkoittaa myöhemmin. Joten tässä olemme pohjimmiltaan luoneet nimenomaisessa tapauksessa kutsutaan UI hälytys mieltä. UI hälytys näkymä on periaatteessa mitä haluatte katso aina jotain ponnahtaa ylös ja kysyy tulo, kuten mitä tapahtuu, kun yrität ostaa jotain App Storesta. Sen lisäksi, kun luo se, näytämme vain hälytys. Okei, katsotaanpa vain nopeasti Testi että työ tai ei. Se hyvin viileä. Nyt itse luoda syöttökenttään UI hälytys. Näin me sen teemme. Ja meillä pitäisi olla tulo näkymä hälytys. Very cool. Sanotaan vain 10. Se ei tee mitään oikein nyt, koska puhelun itse ei muuttunut suorittamiseksi Mario. Joten tämä on tullut hieman vähän outo koska aina painamme nappia alas, kun me paina painiketta hälytyksen mielestä jotakin tapahtuu, mutta se ei tapahdu. Miten kiinni siitä? Mistä tiedämme, että käyttäjä on hylännyt hälytyksen näkymä ja jo tullut useita, koska nyt mitään todella tapahtuu. No, arvata saattoi se oikea, valtuuskunta. Joten lisäksi kaikki nämä julkilausumat, meidän täytyy lisätä uuden valtuuskunnan se kutsutaan UI hälytys mieltä edustaja. Niin että jokainen vuorovaikutus tai tapahtuma että me aiomme olla UI hälytys mieltä aiotaan käsitellä meidän luokan samoin. Niin sen lisäksi, että on hälytys Näkymä Klikkaa painiketta indeksi. Tämä on saavutettu. Joten tässä tapauksessa meillä on already-- joten meillä on selville protokolla, joka hoitaa tapahtuman me klikkaa Valmis-painiketta varuillaan mieltä. Joten joka kerta kun hylkää hälytys mielestä tämän pitäisi tapahtua. Haluan vain testata sitä hyvin nopeasti. No todellakin, olemme päässeet tänne. Joten tässä, mitä emme itse saada on todella saada the-- Joten haluamme päästä ulos teksti, joka meillä on aikaisemmin merkitty hälytyksen mieltä. Ja perustuu tekstiin, olemme menossa näyttämään Mario. Tämä hyvin nopeasti ilmi, jos se todella toimii tai ei. Joten siinä tapauksessa, jos me tulo, sanotaanko, 10, meidän pitäisi nähdä 10. Erittäin hyvä, meillä on useita täällä. Se on aika hyvä. Nyt viimeinen vaihe be-- Niin viimeinen askel meidän täytyy tehdä juuri nyt on vain soittaa Mario kanssa tasolla tulon perusteella että olemme otettu hälytys mieltä. Joten meidän täytyy muuttaa Tämä merkkijono iOS. Staattinen ylivuoto on erittäin mahtava. Ja sitten me vain soittaa itse marioWithLevels arvo. Katsotaanpa tahdon, että todella toimii tai ei. Olemme jo antanut pyramidi. Yritetään muuttaa korkeutta. Se todella toimii. Se on aika siistiä. Niin, että nyt voit vain syöttää minkä tahansa haluamasi arvon. Sanotaan vain neljä. Se on aika mahtava. Joten tämä on periaatteessa todella nopea esimerkki miten luoda projektin s koodi ja miten todella nopeasti johdottaa joitakin todella yksinkertaisia ​​tapahtumia ja toimintoja. Joten lähde on menossa voidaan toteuttaa verkossa myöhemmin. Joten jos olet kiinnostunut miten iOS Mario toimii, Aion laittaa täsmälleen sama hankkeet päälle CS50 sivuilla myöhemmin. Olemme periaatteessa tehdä Kesällä ja ennen päätämme Haluan vain huomauttaa teille kaverit joitakin todella mahtava resursseja, ovat saatavilla verkossa. Ilmeisesti Apple asiakirjat tulee olemaan erittäin hyödyllistä. Mutta lisäksi, että olen erityisen Suosittelen neljästä lähteestä, koodi koulun, puumaja, AppCoda ja WWDC videoita. Koodi koulu ja puumaja ovat kaksi verkossa Educating sivustot, jossa nimenomaan keskitytään ohjelmistojen suunnittelu. Erityisesti koodi koulun, he on todella hyvä opetusohjelma iOS. Se on todella nopea esimerkki siitä. He itse luoda todella cute-- katsoa, ​​että pikku söpö iPhone jätkä tuolla ihan mahtava. Ja miten he selittävät Tavoite C syntaksi on täysin selvä. Tree House on sama. Ja AppCoda on foorumi. Se on oikeastaan ​​blogi, joka ajettiin jota todella kokenut Tavoite C ohjelmoija. Ja kaikki ne, opetusohjelmia AppCoda ovat melko lyhyt ja helppo toteuttaa, erittäin suositeltavaa. Ja jos olet kehittäjä, ehdottomasti mennä tarkistaa miten WWDC videoita, jossa voit oppia uusimmat iOS ohjelmointi tekniikoita, API ja kirjastot. Niin, että on melko paljon sen seminaarin. Kiitos niin paljon. Ja Toivottavasti sinulla on hauskaa luoda oman iOS-sovellus.