TIANYU LIU: Hey, hvernig er það að fara alla? Og þetta er iOS App forritun Objective C námskeið. Og nafn mitt er Tianyu Liu. Ég er Lowell yngri núna, einbeita í tölvunarfræði. Svo í þessari ráðstefnu ég að fara að kenna ykkur svolítið um hvernig á að gera app. Yay, fá spenntur fyrir því. Svo áður en við byrjum jafnvel köfun í raun forritun hlið, við skulum bara mjög fljótt tala um hvers vegna þú might vilja til að byggja upp IOS app? Hvers vegna er iOS svo ógnvekjandi? Svo fyrsta vandamál, fyrsta hlutur sem er nokkuð ógnvekjandi fyrir okkur, sérstaklega þar sem CS50 nemandi, er að iOS notar Markmið C. Jæja, það er nýtt tungumál sem heitir Swift, en við erum ekki að fara að nota það í þessari ráðstefnu. Ef þú hefur áhuga á Swift er sjálfstæð málstofa um það. En Objective C er í grundvallaratriðum a superset C. Merking að allt sem þú notar í C ​​geta vera þýdd á Objective C mjög auðveldlega. Eins og þú might sjá síðar, að örugglega það eru sumir mjög undirstöðu setningafræði, eru grundvallaratriðum nákvæmlega sama, C og Objective C. Svo, þar sem þú hefur tekið CS50 upp þetta langt, þú nú þegar vita Objective C, að minnsta kosti 40%. Einnig, Apple hefur virkilega sterkur API fyrir IOS. There ert a einhver fjöldi af mjög brjálaður hlutir sem þú getur gert við það. Einn sem er einhver í raun búið til IOS app til að stjórna bílum, sem er nokkuð áhugavert. Sennilega þyrla er meira spennandi. En það er hvernig öflugur IOS API getur verið. Og eins og þú gætir hafa mynstrağur út núna, stafla flæða er sennilega einn af mikilvægustu auðlindir online í boði fyrir þig. Og góðar fréttir, fyrir hvert einn vandamál þú getur hugsanlega hugsa um á meðan að byggja þinn Lokaverkefni í Objective C, það er líklegt að stafla flæða svarið. Það er bara frábært. Í samlagning til þessi, iOS er í raun vettvangur þar sem þú getur náð a gríðarstór áhorfendur með smá fyrirhöfn. Það er ekki eins og Android, þar allt er nokkuð brotakennd. Allt iOS er sameinað. Og svo lengi sem þú býrð app fyrir iPhone, þú getur mjög auðveldlega tengi sem að iPad, iPad Mini, eða mismunandi stærðum iPhone. Þetta eru allt mjög þægilegt. Og það er bara mjög gott fyrir impressing vinum þínum. Þú getur bara haldið iPhone og segja vini þínum hey, þetta er app sem ég gera. Þú getur gert það fyrir einhverjar skrifborð apps, sem er gott. Allt í lagi, nú skulum raunverulega fá í tungumálið Objective C Svo hvers vegna eigum við ekki að byrja með sumir raunverulega undirstöðu setningafræði. Eins og ég nefndi áður Objective C Það er í grundvallaratriðum a superset C. Svo mikið af undirstöðu setningafræði eru raun nákvæmlega það sama. Lýsa breytu og að bæta við tveimur breytum saman er nákvæmlega eins og við höfum gert í Mario. Ekkert nýtt hér. Á sama hátt, lodger fyrir lykkju og ástand er einnig það sama. Þú getur gert a for lykkju eins og þú hafa gerði í Mario [inaudible]. Og þú getur gert skilyrði bara eins og það sem þú hafa verið að gera í fyrri p setur þinn. Hins vegar, Objective C er ekki alveg C, og það er eitthvað sem er góður af skrýtið um það. Sú fyrsta er sú að þegar þú ert gera C forritun, kalla þú venjulega eru og þá nafn bókasafn. En í Objective C þú kalla þessi innflutning. Grundvallaratriðum að segja virkni, bara mismunandi nöfn. Og strengir eru reyndar svolítið undarlegt. Þú getur séð að fyrsta hlutur sem er góður af skrýtið er að þú ert ansi weird-- sorry-- þú hafa a laglegur undarlegt NS undirrita hérna. Og annar hlutur það er góður af skrýtið er þú ert með á skilti áður raun að lýsa yfir strenginn. Svo á skilti táknar grundvallaratriðum að strengur er ekki bara band, það er í raun hlutur. Við erum að fara að útskýra sem síðar svo ekki læti ef þú ert ekki skilja hvað það þýðir. Og prentun til hugga er svolítið öðruvísi vegna þess að í C við köllum printf, en í Objective C við köllum [inaudible]. Þú gætir verið að spá í hvað er að. Það er í grundvallaratriðum printf, bara mismunandi tungumál. Nákvæmlega það sama notkun, nákvæmlega sama virkni. Jæja það kemur í ljós að Objective C raun hefur NS undan í næstum allt, hvert undirstöðu gögn gerð, nsstring, nsarray, nsdictionary. Ástæðan er sú að NS reyndar stendur fyrir næsta skref, sem er fyrirtæki sem Steve Jobs hefur stofnað, sem er fyrirtæki þar sem Tungumál Markmið C er fæddur. Svo er þetta í rauninni hefð. Ég veit að það er svolítið undarlegt, en það er Apple. Svo eitthvað sem er jafnvel weirder en það er fall yfirlýsing. Þetta er mjög ólíkt því sem við eigum sjá í C, því hér það í raun lítur ekki eins og C lengur. Það sem þú hefur here-- komi vegur þetta ekki bullet lið, þetta er mínus merki. Þú ert með mínus merki sviga niður og þá virka nafn. Segjum bara ef við hafa Halló heimur, þá aftur gerð yrði ógilt vegna þess að við aftur neitt. Hvað fær mjög undarlegt er að þegar þú ert hafa fleiri en einn stika liggur í sama virka sem verður mjög undarlegt eins og sýnt er hér. Við höfum aðferð nafn, kallað addInt til [inaudible] og við erum að brottför einn stika. En eftir það, við höfum meira nafn aðferð kalla með. Og eftir með við erum liggur seinna viðfangið. Þetta er í raun svolítið skrýtið, En allt þetta virka yfirlýsingar fylgja sama munstri og þetta. Við höfum mínusmerki til að byrja með. Mínus merki gæti verið plús merki stundum byggt á hvers konar aðferð er það. Aðferð er í grundvallaratriðum annað nafn fyrir virka. Og við erum að fara að útskýra það seinna þegar við erum að tala um hlut Name forritun. Þú verður að tilgreina fyrst aftur tegund inni sviga, eftir sem kemur aðferðin nafn. Þú ert liggur einn stika. Og ef þú ert með fleiri breytur þú þarft að lengja aðferð nafn og í rauninni skrifa eitthvað meira hér. Það gæti verið eitthvað sem þú vilt. Í okkar tilviki er það með. En þú gætir sagt enda, eða eða eða abc fullur bar, hvað sem þú vilt. Og síðan eftir að þú ert brottför breytu b. Þetta er mjög undarlegt samningur en við erum fara að sjá hvers vegna Apple vildi að gera það mjög fljótt. Svo hvernig gera þú kallar virka? Kalla fram aðgerðir í Objective C er einnig mismunandi frá C. Reyndar kalla a virka í Objective C er meira eins og þú ert að tala við einhvern. Hér höfum við sjálf, sem er kallað mótmæla. Þú ert í rauninni að segja að mótmæla sjálf að segja "Halló heimur!" Það er hvernig á að hringja í aðgerð. Hlut og aðferð nafn sameina við hvert annað. Og þetta er þar sem undarlegt eftirnafn fyrir nafn aðferð í raun kemur inn í leik. Við skulum líta á annað dæmi. Við skilgreind bara aðferð sem kallast addInt með bla bla bla. Þannig að í þessu tilfelli þegar þú ert að hringja í sem sérstakur [? skilaboð?] það er að fara að líta út eins og sjálf addInt: 10 með: 2. Það hljómar eins og ensku. Þótt virka virka yfirlýsing er undarlegt, að benda á Objective C áratugnum aðferð yfirlýsingu mynstur, er að þegar þú ert að hringja fallið eða aðferð það hljómar eins og raunverulegt ensku. Svo það er mjög leiðandi þegar þú fá inn í það. Sérstaklega í þessu tilfelli, þar sem þú getur í rauninni sjá að fallið nafn er konar skrásetja sig. Þú þarft ekki allir meira útskýring til að sjá hvað nákvæmlega er að gerast, hvað nákvæmlega ein færibreyta gera. Fara út að við skulum tala svolítið hluti um Hlutbundin forritun. Hlutbundin forritun er einn af grundvallar forritun tækni eða mynstur sem er nota Objective C. Objective C er kallað Objective C, ekki C, fyrir mjög góð ástæða. Svo áður en við komum inn Objective C setningafræði, Við skulum virkilega fljótt að líta á hvað nákvæmlega er hlutur. Við höfum líklega gert eitthvað eins hlut áður, sem er kallað struct þegar þú ert framkvæmd tré eða tengdan lista eða [? reyna. ?] Svo er það grundvallaratriðum eins strúktúrinn, en það er miklu öflugri en það. Hlut hefur aðferðir og eiginleika. Aðferðir eru í grundvallaratriðum aðgerðir. Í grundvallaratriðum aðgerðir sem sérstaklega við tiltekinn hlut. Og eiginleika eru í grundvallaratriðum reit þú tilgreinir í strúktúrinn. Svo fyrir hvert einasta hlut við höfum einhverja eign sem hefur einhverja breytur sem eru fyrir hlut. Og við höfum nokkrar aðgerðir sem eru einnig sérstaklega við hlut. Og aðgerðir eru kallaðir aðferðir og breytur eru kallaðir eignir. Það er bara fínt nafn. Þó að þú raun, hvert einasta sýn þú sérð á meðan þú opnar IOS app, við skulum bara segja Twitter eða Facebook, hvert einasta útsýni sem þú sérð er hlutur. Og jafnvel alla app er hlut til að byrja með. Mjög áhugavert hugtak. Og hvers vegna viljum mótmæla stilla forritun? Svo þú getur ímyndað sér að þegar þér program það fær nokkuð flókið. Segjum bara þegar þú ert framkvæmd taflborð, röksemdafærsla er að fara að vera mjög flókið. Þú hefur 36 mismunandi stykki, þannig að ef þú langar að skrifa rökfræði fyrir alla 36 mismunandi stykki í skák, það er að fara til vera a einhver fjöldi af mismunandi aðgerðir og breytur. Það er a einhver fjöldi af vandræðum. Og sennilega þú ert að fara að skrifa Önnur aðferð eða mismunandi virka fyrir hvert stykki til að nákvæmlega stjórna því hvað þeir gera. En ef þú gerir mótmæla stilla forritun, allar þessar stykki Hægt er að abstracted inn í einn einn hlut. Og mótmæla mun hafa nokkrar algengar eiginleika, eins hvers konar stykki er það? Hvaða litur er það? Hvernig getur það að færa? Og á þann hátt sem þú hefur stórlega einfaldað rökfræði af því. Svo það er bara mjög góð leið að gera flókið forrit, og hierarchic samband innan áætlunarinnar, mjög einfalt. Eins og við erum að fara að sjá hvers vegna mjög fljótt þegar við erum í raun að gera programming-- þegar við erum í raun og veru gera S kóða forritun fundur síðar. Jæja í viðbót við það, Hlutbundin forritun er bara mjög gaman. Þú verður að hanna eigin hlut þinn. Þú verður að hanna hvað virkar það líta út eins sjálfur. Það er ekkert rétt svar við henni. Og það er alveg áhugavert. Svo í Object oriented Forritun, tveir grundvallarhugmyndum verður bekknum og dæmi. A flokkur er í grundvallaratriðum sniðmát fyrir hlut. Og dæmi er í grundvallaratriðum einn tiltekinn hlut. Segjum bara að þú ert að gera köku. Í þessu tilviki, í hvert eitt kex þú endar í raun upp með er að fara að vera hlutur. En kex plata sem þú notar til baka allar smákökur verða flokki. A flokki er í grundvallaratriðum a sniðmát. Og dæmi mun vera einn sérstakur hlut búið út af þeim flokki. Og dæmi mun vera búið byggt á bekknum yfirlýsingu, eins og við munum sjá í síðari skyggnur. Svo skulum gera í raun mjög fljótur dæmi [inaudible]. Segjum að við erum að lýsa hlut fyrir kött. Hluturinn ætti have-- kötturinn bekknum ætti hafa sumir eiginleika og aðferðir. Hvers konar eignir Ætti flokki have-- ætti kötturinn að hafa? Til dæmis, litur, aldur og kyn, þá verður breytur sem eru sérstaklega við hvert kött. Og þeir eru nokkur atriði sem við notum til að lýsa kött. Hvers konar aðferð, eða hvað er hægt a köttur gert? Sumir fljótur dæmi væri elta mús, borða fisk eða bara meow. Þetta er mjög fljótur dæmi um köttur flokki. Og mjög sérstakur köttur mótmæla mun vera köttur þar sem við tilgreinir lit, aldur og kyn. Í því tilfelli, mótmæla okkar er ekki lengur flokki lengur. Við afrita sniðmát úr bekknum og við að skilgreina hvert tilteknar upplýsingar það tiltekna hlut til að gera það sjálfstætt. Og þegar þú ert að hringja í Aðferð inni í hlut, þú hringir bara meow á hlut, sem er kötturinn þú bjóst bara. Sennilega þú prentar út eitthvað eins og "Halló heimur! Meow. " Pretty sætur. Allt í lagi, við skulum bara fá inn einhverjar upplýsingar og sjá hvað nákvæmlega er að þýða að iOS forritun. Svo í iOS forritun hverjum einasta flokki verður framkvæmd í tveimur skrám. Ein skrá er hér, sem er kallað tengi. Annar skrá er hér, sem er kallað framkvæmd. Venjulega tengi mun hafa extension.h eins og við höfum séð í bókasöfnum C. Og framkvæmd skrá er fara að hafa extension.n. Það er góður af skrýtið. En .n þýðir í raun .c, það er engin grundvallarmunur á þeim tvö. Þannig að í þessu tilfelli getum við séð að við erum lýsa tengi, Cat: hlut. Það er kallað arfleifð. Við erum í grundvallaratriðum erfi köttur flokki frá mótmæla bekknum. Svo hvert eign og aðferð sem var og áður var skilgreint í í Object- verður sjálfkrafa skilgreind í köttur flokki eins vel. Í samlagning til þessi, skilgreinum við lit, kyn og aldur, þrjár breytur. Sem raunverulega lítur út eins eitthvað sem þú hefur gert áður. Það lítur út eins og strúktúrinn. Það er í grundvallaratriðum the setningafræði fyrir struct yfirlýsingu, og það er algerlega rétt. Og þar sem ég nefndi áður, munurinn a struct og hlut, einn af grundvallar munur er að hlutur hefur aðferð, meðan struct hefur aðeins breytur. Svo til viðbótar við eiginleika eða breytur sem við höfum búið til fyrir hlutnum, við að skilgreina einhverja aðferð. Segjum bara hér höfum við tvær aðferðir, er einn meow, annað er elta mús. Við viljum líklega að vera farið a breytu byggt á fyrri aðferð okkar yfirlýsing mynstur. Þú vilt sennilega að vera brottför mús. Og þú munt sennilega vilja að skila bool kynna ef kötturinn þinn hefur tekist lent músina eða ekki. Þetta er tengi, en við getum sjá að viðmótið raun gerir ekki neitt. Það segir bara forrit sem exists-- hvað er í köttur bekknum. Svo í röð til að forrit til að gera eitthvað, við þurfum að hafa framkvæmd skrár. Svo hér er það fyrsta sem við gerum er augljóslega við innflutning tengi. Eftir að við flytjum tengi, við skilgreina aðferðina. Segjum bara hér meow myndi bara prenta út "Hello World!" að hugga. Og eftir framkvæmd skrá, við erum ansi mikið gert. Þetta er í grundvallaratriðum a tegund Yfirlýsing fyrir einn flokk. Svo nú verður spurningin, hvernig gera þú lýsa breytu? The vegur þú notar flokk til að búa til hlut í Objective C er skrifað hér. Þú tilgreinir fyrst að þetta er köttur músina, því hvern hlut í Objective C er loksins til framkvæmda sem bendill. Og þú hringja í bekknum, kalla þá sem Alloc, sem er í grundvallaratriðum malloc, segja stýrikerfi sem þig þurfa sumir minni fyrir þennan hlut. Eftir að þú hefur hlut nú þegar og þú frumstilla bara það. Þetta er bara samningur. Ég veit að það er er svolítið skrítið, en þetta er í raun hvernig Apple gerir efni. Úthlutun eiginleika er í raun frekar einfalt. Það er mjög svipað hvað þú ert að gera þegar þú ert að framselja sumir sérstakur reit inni strúktúr. Þú verður bara breytu nafn, eign nafn, og úthluta ákveðna gildi við það. Og kallar aðferð er mjög svipuð. The kalla aðferð er grundvallaratriðum það sem ég tala um fyrir starf hvaða aðferð í Objective C Þú ert liggur hlut í þetta mál það er að fara að vera myCat, og þú ert að hleypa aðferð nafn. Eins og ef þú ert að tala við hlut, myCat, að þú ættir að meow. Það er nokkuð áhugavert. Eftir það, það er einn meira ómissandi hönnun mynstur að við þurfum að tala um áður en að komast að raunverulegum S kóða. Að hönnun munstrið heitir atburður ekið forritun. Þetta er líka sennilega einn af mest grundvallaratriði hugmyndir í iOS forritun. Svo þú sennilega veist ekki hvað nákvæmlega er atburður ekið forritun, en það er í raun ekki að skelfilegt. Jæja í raun, hefur þú þegar gert það áður. Þetta er einn af þeim línum sem þú hefur sennilega þegar skrifað í síðustu [inaudible] af CS50, google.maps.event.addListener (merki, "Smellur", virka () {}) :. Með því að kalla þessa línu sem þú ert meginatriðum segja tölvuna að þegar atburður heitir "Smellur" gerist á merki, nota þessi aðgerð. Þetta er mjög mismunandi frá hvað þú gerir í mario.c. Í mario.c þú keyrir bara forritið einu sinni, gefur það þér framleiðsla, og þú ert búinn. Þetta eru eins konar eins og einu skoti forrit. Viðburður ekið forrit eru mjög, mjög mismunandi. Við skulum ímynda sér, ef Facebook er einn skot program það er ekki mjög gott. Þú ferð bara á Facebook einu sinni og það er gert. Það gefur þér framleiðsla og þú aldrei fengið það aftur. Þú fékk aldrei neitt meira. Svo hér, sérstaklega mynstur sem við notum er atburður rekinn, þannig að hvert hlutverk mun vera veiddur miðað við það atburður hefur gerst. Til dæmis, ef við höfum a hnappur og við tilgreint að þegar að smellt er á, hringja í fall sem kallast "Hello World!" Þannig getum við í raun stjórna virka rökfræði rennsli í mjög sveigjanlegan hátt. The notandi geta gera eða hringja í aðgerð sem hefur þegar verið kallað. Það er algjörlega byggt á hvað notendur gera. Svo við getum séð að þetta er í raun miklu betri en mario.c. Og góðar fréttir er að það er reyndar ekki nýtt hugtak. Þú krakkar hafa þegar gert að á síðasta vandamáli sett. Svo í Objective C eru þrjár mismunandi skýringarmyndir fyrir atburð ekið forritun. Fyrsta mynd er kallað aðgerð miða, þar sem þú binda hnappinn ýttu með nokkrum virka. Segjum bara, þegar þú smellir sumir hnappur, þú kalla sumir virka. Þetta er mjög einfalt skotmark aðgerð. The second einn er reyndar erfiðasta einn, það heitir sendinefnd á siðareglur. Við erum að fara að útskýra að í smáatriðum síðar. Og þriðja leiðin er tilkynning. Þetta er í raun ekki mjög mikilvægt eins langt eins og við erum að ræða, vegna þess að tækifæri að þú ert að fara að nota tilkynningu í lokaverkefni þitt er mjög lágt. Þannig að við erum að fara að sleppa þeim hluta. Og við erum að fara að kafa í sendinefnd á siðareglur. Svo hvaða einmitt er siðareglur? Eða hvað nákvæmlega er sendinefnd? Við skulum tala um siðareglur til að byrja með. Bókanir eru ekkert annað en atburði. En þessir atburðir eru gefin til þú af Apple til að byrja með. Til dæmis, ég er ekki alveg viss um hvernig margir af þú krakkar nota upprunalega Apple app mail eða tengilið, en í hvert skipti sem þú flettir að borð og ýta á ákveðna frumu á borðið, það er viðburður. Og ef þú vilt gera að atburður sjálfur, það er í raun svolítið erfitt. Svo Apple hefur gefið að jafnvel við þig þannig að þú getur bara beint að nota atburður að gera eitthvað á eigin spýtur. Siðareglur eru í raun virkilega, virkilega mikið notað í Objective C. vel í staðreynd, hvert einasta app hefur eitthvað lent app fulltrúa. Inni viðkvæmt er allt af samskiptareglur fyrir hleðslu app. Við skulum bara segja að það er atburður fyrir app gerði álag. Svo hvað ætti að gerast þegar þú hefur búin að app, eftir að þú opnar forritið, eftir að þú lokar app, eða eftir þú setur iPhone að sofa. Þetta eru allir atburðir sem hefur þegar verið gefið. Og upphaflega inni þessara agna það verður engin framkvæmd. Apple bara sagt þér að þetta fall mun gerast þegar sumir atburður gerist, en hvað þú gerir við það virka er alveg undir þér komið. Sendinefnd er í grundvallaratriðum segja bekknum að þú ætti að höndla þessar siðareglur. Það er svolítið truflandi, en það mun vera miklu skýrari þegar við gerum að s númerin í aðgerð. Sendinefnd á siðareglur er í raun Mjög sterkur vélbúnaður í þeim skilningi að ef við gerum sendinefnd við ákveðinn flokk, við getum í raun séð alls konar viðburði nota hvaða tegund sem við höfum, mjög þægilegt tól. Svo einn fljótur dæmi fyrir sendinefnd á siðareglur verður það sem ég talaði bara um. Þessi samskiptamáti sérstaklega er kallað Tableview [inaudible] velja hlutverk á [? Vísitala?] [? fortíð. ?] Þannig að þetta er atburður sem myndi vera veiddur þegar þér raun tappa á a sérstakur fruma í Tableview þinni, segjum bara í póstinn þinn eða á tengiliðalistanum app. Inni fall var upphaflega að gera ekki neitt. Fallið er ekki gera neitt sjálfgefið. En þú getur tilgreint hvað aðgerðin tekur, gefið það sem þú vilt út úr forritinu þínu. Mjög þægilegt tól. Og með allt sem að segja, ég í rauninni ná einhverjum mjög undirstöðu setningafræði og grundvallaratriði hugtak fyrir Objective C forritun, og við getum gert nokkrar s kóða. Miklu meira spennandi. Svo er s kóða raun svolítið yfirþyrmandi þegar þú opnar það í fyrsta skipti. Einn fljótur athugið, þannig að ef þú langar að gera IOS þróun, Ég mæli þú ert með Mac. Því að gera IOS þróun á Windows er mjög, mjög erfitt. Það er mögulegt, en það er mjög erfitt. Og þú örugglega ekki að nota g breyta. Svo í s kóða við höfum mismunandi svæðum. Þegar þú opnar upp s kóða þú munt sjá flakk svæði, sem í grundvallaratriðum sýnir þér alla skrár sem er í núverandi verkefni. Þú ert með tólastiku svæði, sem er í grundvallaratriðum stjórna skoðunum, eða einhver smá fljótur verkfæri um s sjálft. Og þetta er í raun ritstjóri svæði. Þetta svæði er mjög svipuð g breyta, en miklu betra en g breyta. Og í þessu rétt svæði er kallað gagnsemi svæði. Svæðið verður mjög vel þegar þú ert að búa tengi eða tilgreina sumir fljótur skipulag fyrir app. Og endanleg svæði er kembiforrit. Þetta svæði inniheldur vélinni. Svo þegar þú segir printf, eða nslog í okkar tilviki, Allar niðurstöður eru að fara að prenta hér. Allt í lagi? Ég held að við getum í raun fljótt gera dæmi fyrir iOS forritun. Og við skulum opna raun upp s kóða. Svo í hvert skipti sem þú opnar upp s kóða, það er fara að mæta eitthvað svoleiðis. Það er að fara að biðja þig hvað viltu gera? Viltu byrja eitthvað handahófi, leiksvæði, í grundvallaratriðum þú getur bara prófa kóðann án raun fremja hvaða app. Viltu búa til nýtt verkefni? Eða viltu halda áfram vinna á núverandi verkefni? Í okkar tilviki erum við að fara til að búa til nýtt verkefni. Svo það er mjög gaman, s númer hefur reyndar þegar gefið þér nokkrar sniðmát til að búa til hluti. Ef þú vilt gera leik, s kóða reyndar hefur leik sniðmát fyrir þig, hefur síðu undirstaða umsókn, flipann undirstaða umsókn. Í þessu tilfelli erum við að fara að gera eitthvað mjög einfalt, og við erum að fara að nota a einn útsýni umsókn. Eftir það bara hvað þú vilt hringja vöruna, og hvað er nafnið þitt, hvað er heiti þitt, og hvaða tungumál þú notar. Hér við viljum ekki að athuga með Core Data. Core Data er í grundvallaratriðum a databasing iOS. Ef þú gerir Core Data, s númer er að fara að skilgreina mikið flóknara flokkar fyrir þig. Svo til að halda öllu einfalt, við erum bara að fara að gera án Core Data núna. Vandamálið sem við erum að fara að vera nota er that-- vandamálinu við erum að fara að búa til er að við grundvallaratriðum vilt flytja Mario frá C til IOS app. Svo skulum kalla það Mario-IOS. Auðvitað þú tilgreinir hvað þér vilja til setja í verkefninu. Og þar sem við förum. Þannig að þetta er svolítið yfirþyrmandi, en þetta er í raun það sem við sáum bara stóð. Og fyrsta svæði sem við sjáum núna er í grundvallaratriðum verkefni stillingar. Svo allt sem þú vilt gera Verkefnið, hvers konar tæki, við skulum bara segja hvers konar tæki viltu app til að birtast á? Er það iPhone, iPad eða alhliða? Svo tæki stefnumörkun, allt þetta efni. Ekki mjög mikilvægt, en gæti verið, en þetta er staður þar sem þú setur upp verkefni ef þú í raun og veru langar að senda til Apple Store. Allt í lagi, við skulum líta á eitthvað sem er inni kóða. Við skulum fara í gegnum skrá Navigator. Og þetta eru allar skrár sem þegar kom með sniðmáti, mjög gott. Svo þegar við smellur einn af þeim þetta er það sem það lítur út. Mjög svipað g breyta. En þú getur séð að setningafræði auðkenning er líklega svolítið betur. Og það er í raun miklu meira öflugri en g klippingu. Og þú getur sjálfvirkt lokið a einhver fjöldi af hlutur fyrir þig, eins og við munum sjá mjög fljótt. Við skulum opna kembiforrit svæði eins og heilbrigður. Allt í lagi, eins og sjá má, hugga er hérna. Þetta er það sem þú ert að fara að sjá hvar þú ert í printf eða nsloging eitthvað. Svo án frekari fjaðrafok, við skulum í raun þýða forritið og sjá hvað gerist. Eitt mikilvægt lögun fyrir s kóða, er að s kóða koma með iPhone hermir. Svo þú þarft ekki að hafa iPhone til að reyna verkefni, s kóða má líkja að fyrir þú, eins og við getum séð núna. Það er nokkuð gott. Það tekur smá smá tíma til að safna saman og í rauninni höfum við tómt umsókn, sem reyndar gerir ekki neitt. En það safnar. Það er nokkuð ógnvekjandi. Það er miklu betra en C, ha? Allt í lagi, þá skulum reyna að bæta eitthvað. Ein skrá sem er svolítið undarlegt hér er kallað storyboard. Þetta er í raun frábær, ógnvekjandi lögun fyrir s kóða. Vegna þess að í s kóða, getur þú í raun draga og falla þætti á tengi og það verður beint mæta. Við skulum reyna það. Við falla merki hér, "Hello World !!!" Við getum sent það. Laglegur kaldur. Nú skulum keyra þetta stöðva uppgerð. Hér höfum við "Hello World !!!" Við vildum ekki einu sinni gera allir erfðaskrá ennþá. Hvað Heck er að gerast? Þetta er hvernig öflugur Interface Builder getur verið. Einhver sagði einu sinni að þú getur sennilega bara ljúka app án þess að skrifa sennilega þúsund línur af kóða bara með því að nota Interface Builder. En það er líklega ekki besta leiðin til að gera það. Nú skulum fá í raun niður til erfðaskrá. Svo uppbyggingu á skrána er reyndar mjög áhugavert vegna þess, eins og þú sérð, það er engin Helsta hlutverk hvar. Sjá? Eins og við umtal áður, þú getur séð að þetta er framkvæmd skrá í ákveðinn flokk. En það er engin helsta hvar sem er. Svo hvar er main? Reyndar, það er helsta, en Helstu er í raun hulin. The aðalæð er hér. Það lítur þekki. Svo í rauninni hvað iOS er að gera inni helsta er að þegar helstu er heitir, sem er í grundvallaratriðum þegar app er keyrð, það skapar hlut sem kallast AppDelegate. Eins og ég nefndi áður, allt app er í raun hlutur af sjálfu sér. Svo á þennan hátt, í grundvallaratriðum iOS app er að segja þýðanda það í lagi, ég ætla að búa til vara heitir AppDelegate, og það er að fara að vera app minn. Svo þú þarft að fara gegnum þessi AppDelegate og sjá hvað þessi strákur er að gera. Starf mitt er gert fyrir mig. Og í AppDelegate þú getur séð að það eru sumir raunverulega furðulegur aðgerðir, vel í raun aðferðir, sem Apple hefur nú þegar gefið þér. Hvað eru þessir? Þetta eru í raun bara samskiptareglur að ég var að tala um. Svo þetta eru viðburðir sem Apple hefur gefið þér til að byrja með. Það er ekkert í sumar af hlutverkum núna, en ef við viljum að frumstilla eitthvað fyrir app okkar áður hafa komist sýna allir að skoða, gera við það hér. Þú getur bara lesið nafn og ég held atburður er reyndar mjög skýr. Svo nú helsta hefur skapað hlut fyrir AppDelegate. Og hvað AppDelegate er að fara að gera er í raun einnig hulin. The AppDelegate er að fara að byrja hleðslu ViewController lager. Svo það er í rauninni að fara að byrja hleðslu allt skoðanir sem þú hefur og bara láta þá skoðun byggt á stigveldi. Svo í þessu tilfelli höfum við aðeins Ein skoðun, sem er hér. Svo er að bara skoðað það er að fara að vera kölluð. The ViewController rökfræði er hérna. Þetta er kóðinn sem raunverulega stýrir útsýni við sáum bara. Allt í lagi, við skulum gera eitthvað hérna. Svo viewDidLoad hljómar eins atburði, þegar í raun er þetta líka fulltrúi, þetta er líka siðareglur. Svo hvað útsýnið er hlaðinn, Allt inni í virka verður kallaður. Í þessu tilfelli erum við að sjá "Hello Tianyu! "Ef við hlaupa the program. Það er að fá svolítið hægur gerð storyboard skrár. Vel örugglega, við sjáum framleiðsla fyrir það. Það er laglegur kaldur. Nú skulum gera í raun Mario. Ég ætla að skilgreina virka mjög fljótt. marioWithLevels: (int) stigi niðurstöður. Allt í lagi, þetta er í raun ógnvekjandi eiginleiki s kóða farartæki lokið. Svo þegar þú skrifar fyrir og slá inn, það hefur nú þegar gefið upp sniðmát fyrir þig, sem er laglegur kaldur. Það ætti að líta raunverulega þekki til ykkur. Því miður, það er mér að kenna. Allt í lagi, flott. Það rökfræði ætti að líta mjög kunnugleg að ykkur, einkum rétt Mario. En við munum nú prenta út til hugga hvert einasta sinn, vegna þess að við viljum að einhvern veginn að halda utan um það sem við erum að prenta. Við erum að fara að nota niðurstöður einhvern veginn seinna, til að birta prenta út leiða til notanda. Þannig að í stað að við erum bara nslogging allt, sem við erum að geyma allt í virka kalla vegna, en rökfræði er nákvæmlega sú sama. Eftir að við klára það, við bara prenta niðurstöður okkar. Og hér í stað þess að prenta út minn nafn, við erum að fara að hringja í aðgerð. Við skulum sjá hvað gerist. Úbbs, vitanlega. Við höfum gott litla pýramída út hér. Þetta er í grundvallaratriðum C, við erum bara notfæra þar sem þú hringja í aðgerð og hvernig virkar fall líta út. Það er ekkert öðruvísi. En þetta er í raun ekki mjög spennandi hér, vegna þess að við erum ekki að sjá allt frá iPhone app. Svo ef þú ert í raun iPhone app-- ef þú ert í raun Mario IOS rétt nú, þú ert ekki að fara að sjá eitthvað sem hefur eitthvað að gera með Mario því allir þessir framleiðsla í vélinni eru falin frá notanda. Þetta er það sem þú sérð, sem er "Hello World !!!" Ekki gott. Nú skulum reyna að gera notanda að sjá hvað nákvæmlega við erum að prenta út. Þannig að við þurfum ekki að merkja lengur. Við skulum reyna að reikna út eitthvað annað sem gæti verið gagnlegt. Það er í raun einn þáttur sem heitir texti sviði, sem gæti verið mjög gagnlegt fyrir okkur. Það birtir í grundvallaratriðum svæði texta sem hægt er að breyta. Svo lítur það mjög gagnlegt. Nú skulum draga það og sleppa því. Vá, höfum við texta útsýni að okkar mati, mjög fínt. Það er svolítið of stór. Við skulum gera það minna. Setjið það í miðju. Minnkað hana eins og heilbrigður. Nú höfum við texta útsýni, sem við gátum nota til að sýna endanlega niðurstöðu okkar. En núna er það örugglega ekki að fara að vinna vegna þess að það er no-- að ViewController við bara skilgreind veit ekki að það er texti útsýni þarna úti. Þannig að við þurfum að einhvern veginn tengja texta útsýni við bara búin með bekknum sem hefur nú þegar komið með okkur. Leiðin sem við gerum sem er reyndar mjög töfrandi. Svo opna Sögulínur. Það er sérstakt [inaudible] heitir [? aðstoðarmaður?] [inaudible]. Þegar þú smellir það, það er að fara að opna tvær skrár. Einn er í flokki og hitt er samsvarandi sýn fyrir það. Það er mjög, mjög gagnlegt. Og við skulum bara fer í gegnum .h skrá. Control, þetta er [inaudible] rökfræði. Ýttu Control og dragðu Textayfirlit í yfirlýsingunni. Við erum að fara að kalla það outputView. Tengja. Svo hér höfum við lýst nýtt eign fyrir ViewController bekknum. Og nýja eign er bara texti útsýni við höfum búið í tengi byggingu. Svo á þann hátt að við gætum aðgang að öllum gögnum og vinna allt sem er inni framleiðsla útsýni, sem er ógnvekjandi. Svo í raun númerið okkar, við skulum gera eitthvað við það. Þannig að þetta skipti þegar við erum eins prentun út endanlega niðurstöðu fyrir Mario, við erum í ekki að skrá þig neitt. Ég meina við gætum haldið skógarhögg yfirlýsingu. Í samlagning til þessi, við senda aflestri við bara búin að framleiðsla útsýni, sem er UI textview við bjuggum bara. Nú skulum sjá hvað gerist. Vá. Við höfum pýramída í app núna. Svo getur notandinn séð framleiðsla okkar vegna við höfum afrita úttak kóða okkar að trufla þig. Það er nokkuð gott. Það er í raun ekki að spennandi vegna þess að við can-- Allt app er að gera er sýna pýramída til þín, og það er ekkert sem þú getur gert það. Það er ekki sérlega spennandi. Svo nú skulum gera hnappinn sem mun hreinsa skoðanir. Virðist sem hnappur vilja vera hjálpsamur. Draga og sleppa. Button einn. Button tvö. Svo þegar við smellur vinstri hnappinn, útsýnið ætti að hreinsa. Það ætti að vera ekkert á skjánum. Og þegar við smellur the hægri hnappinn, Mario, útsýnið er að fara að birtast aftur. Þannig að þetta leiðin sem við gerum líka galdur efni, eftirlit og draga á bekknum yfirlýsingu í aðstoðarmaður director-- í aðstoðarmaður áhorfandi. Í þessu tilfelli erum við að tilgreina að það ætti að vera aðgerð. clearMario. Svo hér höfum við nú þegar búið aðgerð kallast clearMario, sem er aðferð sem myndi vera kallað þegar við ýta á hnappinn skýr. Svo í raun númerið okkar, við skulum bara setja framleiðsla texta og framleiðsla útsýni í ekki neitt og þannig það mun birtast að vera skýr. Í samlagning til þessi, við skulum búa til önnur aðferð sem kallast runMario. Oh miður, sem ætti ekki að vera eign. Allt í lagi, það ætti vera aðgerð eins vel. Og þegar að virka er heitir, við að keyra bara Mario tíu. Vonandi að verður fínt. Er það saman? Já. Nú höfum við útsýni. Við höfum framleiðsla. Og við skulum bara sjá hvað gerist. Það er farið. Það er aftur. Svo hér höfum við tilgreint hvers konar starfsemi verður kallað þegar við tegund í eitthvað, þegar við stutt ákveðna hnappinn. Þetta er í grundvallaratriðum miða aðgerð kerfi fyrir atburði ekið forritun í Objective C Í samlagning til þessi, það er ekki mjög spennandi vegna þess að við getum í raun ekki breytt hversu hár pýramída verður, þannig að við viljum líklega að einhvern veginn fá inntak frá notanda og breyta hæð á pýramída byggt á því sem þeir framleiðsla. Þannig að við erum að fara að gera það. Þannig að þetta skipti þegar við köllum runMario, eigum við ekki bara að kalla Mario beint. Titill þessa manns. Fulltrúi. Þetta er mjög áhugavert. Hvað er fulltrúi? Ég ætla að setja sjálf hér. Og við erum að fara að sjá hvað það þýðir síðar. Svo hér höfum við í rauninni búið a sérstakur dæmi kallast UI viðvörun útsýni. A UI viðvörun útsýni er grundvallaratriðum hvað þú munt sjá hvert skipti sem eitthvað birtist upp og biður þig um inntak, eins hvað mun gerast þegar þú ert að reyna til að kaupa eitthvað á app birgðir. Í samlagning til þessi, eftir þig skapa það, birtum við bara viðvörun. Allt í lagi, við skulum bara fljótt próf verður að vinna eða ekki. Það er mjög svalt. Nú skulum við búa í raun inntak sviði fyrir HÍ varðbergi. Þetta er hvernig við gerum það. Og við ættu að hafa inntak útsýni fyrir varðbergi. Mjög flott. Segjum bara 10. Það er ekki að gera neitt rétt nú vegna þess að hringja í raun breyttist ekki fyrir framkvæmd Mario. Svo hefur þetta orðið svolítið svolítið skrýtið því hvenær við að ýta á hnapp niður, þegar við ýta á hnappinn í viðvörun útsýni, eitthvað ætti að gerast, en það gerist ekki. Hvernig eigum við skilið það? Hvernig vitum við að notandi hefur vísað frá sér sýn og þegar slegið númer, vegna núna ekkert er í raun að gerast. Jæja, þú might hafa giska það rétt, sendinefnd. Svo til viðbótar við allt Yfirlýsingar þessar, við þurfum að bæta við nýjum sendinefndinni það heitir UI vakandi view fulltrúa. Þannig að hver einasta samskipti eða atburð að við erum að fara að hafa með UI viðvörun útsýni er að fara að meðhöndla með bekknum okkar eins og heilbrigður. Svo til viðbótar við þessi, mun vera viðvörun skoða smella á hnappinn á vísitölu. Þetta er náð. Svo í því tilfelli sem við höfum already-- þannig að við höfum fann út siðareglur sem höndlar atburðinn þegar við smella á hnappinn Lokið á viðvörun útsýni. Svo í hvert skipti sem við segja að vakandi útsýni, þetta ætti að gerast. Leyfðu mér að prófa bara það mjög fljótt. Jæja reyndar höfum við náð hér. Svo hér, hvað við munum ekki í raun að fá er í raun fá the-- Þannig að við viljum fá út textinn sem við höfum áður færð í viðvörun útsýni. Og byggt á texta, erum við fara að sýna Mario. Þetta kemur mjög fljótt út ef það virkar í raun eða ekki. Svo í því tilfelli, ef við inntak, segjum, 10, við ættum að sjá 10. Mjög gott, gera við höfum fjölda hér. Það er nokkuð gott. Nú síðasta skrefið verður be-- Svo síðasta skrefið sem við þurfum að gera núna er bara að hringja Mario með stigi byggt á inntak sem við höfum sett í viðvörun útsýni. Þannig að við þurfum að breyta þetta band í IOS. Static flæða er mjög ógnvekjandi. Og þá erum við að hringja bara sjálf marioWithLevels gildi. Við skulum sjá mun að í raun vinna eða ekki. Við erum nú þegar gefið pýramída. Við skulum reyna að breyta hæð. Það virkar í raun. Það er laglegur kaldur. Svo að nú getur þú bara inntak hvaða gildi þú vilt. Segjum bara fjórir. Það er nokkuð ógnvekjandi. Svo er þetta í rauninni mjög fljótur dæmi fyrir hvernig á að búa til verkefni í s kóða og hvernig á að í raun fljótt víra upp sumir mjög einföld viðburðir og aðgerðir. Svo heimildar er að fara til að setja á netinu síðar. Svo ef þú hefur áhuga í hvernig iOS Mario virkar, Ég ætla að setja nákvæmlega það sama verkefni inn á CS50 heimasíðu seinna. Við erum í grundvallaratriðum með sumar, og áður en við ljúkum Ég vil bara að benda ykkur á að sumir mjög ógnvekjandi úrræði sem eru í boði á netinu. Augljóslega Apple skjöl er að fara að vera mjög hjálpsamur. En í viðbót við það, ég sérstaklega mæla fjórum heimildum kóða skóla, tré hús, AppCoda og WWDC myndbönd. Code skóla og tré hús eru tveir á netinu mennta vefsíður, sem sérstaklega leggja áherslu á hugbúnaðarverkfræði. Sérstaklega fyrir kóða skóla, þeir hafa mjög góða einkatími á IOS. Það er mjög fljótur dæmi um það. Þeir búa í raun mjög cute-- líta á að lítill sætur iPhone náungi þarna, það er nokkuð ógnvekjandi. Og hvernig þeir útskýra Objective C setningafræði er fullkomlega ljóst. Tree House er sú sama. Og AppCoda er vettvangur. Það er í raun blogg sem var að keyra með mjög reyndur Objective C forritari. Og allir þessir námskeið í AppCoda eru mjög stutt og auðvelt að hrinda í framkvæmd, mjög mælt með. Og ef þú ert forritari, ákveðið að fara athuga hvernig á WWDC vídeó þar sem þú getur læra um nýjustu IOS forritun tækni, API og bókasöfn. Svo er það ansi mikið það fyrir námskeiðinu. Þakka þér svo mikið. Og ég vona að þú hafir gaman búa til eigin IOS app.