TIANYU LIU: Hey, jinsi ya ni kwenda kila mtu? Na hii ni iOS App programu ya lengo c semina. Na jina langu ni Tianyu Liu. Mimi nina Lowell junior sasa hivi, kuzingatia katika sayansi ya kompyuta. Hivyo katika semina hii mimi nina kwenda kufundisha guys kidogo kuhusu jinsi ya kufanya programu. Yay, kupata msisimko kwa ajili yake. Basi, kabla ya hata sisi kuanza mbizi katika halisi upande programu, hebu tu kweli haraka majadiliano juu ya nini huenda unataka kujenga programu iOS? Kwa nini ni iOS hivyo kushangaza? Hivyo tatizo kwanza, ya kwanza kitu ambacho ni pretty kutisha kwa ajili yetu, hasa kama CS50 mwanafunzi, ni kwamba iOS anatumia Lengo C. Naam, kuna Lugha mpya iitwayo Swift, lakini sisi siyo kwenda kutumia katika semina hii. Kama wewe ni nia katika Swift, kuna ni semina huru juu ya hilo. Lakini Lengo C kimsingi ni superset ya C. Maana kwamba kila kitu wewe kutumia katika C unaweza kutafsiriwa katika Lengo C kwa urahisi sana. Kama unaweza kuona baadaye, kuwa ni kweli kuna baadhi ya syntax ya msingi sana, ni kimsingi sawa, C na Lengo C. Hivyo, tangu wewe wamechukua CS50 up hii mbali, tayari kujua Lengo C, angalau 40%. Pia, Apple ina kweli robust API kwa iOS. Kuna mengi ya kweli mambo mambo unaweza kufanya hivyo. Moja ambayo ni mtu kweli kuundwa programu iOS kwa ajili ya kudhibiti magari, ambayo ni pretty kuvutia. Pengine helikopta ni zaidi ya kusisimua. Lakini hiyo ni jinsi nguvu API iOS wanaweza kuwa. Na kama unaweza kuwa na figured nje sasa hivi, stack kufurika pengine ni moja ya muhimu zaidi online rasilimali inapatikana na wewe. Na habari njema, kwa kila tatizo moja unaweza uwezekano kufikiria wakati kujenga yako mradi wa mwisho katika Lengo C, kuna uwezekano stack kufurika jibu. Ni tu kutisha. Mbali na kwamba, iOS ni kweli jukwaa ambapo unaweza kufikia kubwa watazamaji kwa juhudi kidogo. Siyo kama Android, ambapo kila kitu pretty kugawanyika. Kila kitu iOS ni umoja. Na kwa muda mrefu kama wewe kujenga programu kwa ajili ya iPhone, unaweza kwa urahisi sana bandari kwamba iPad, iPad mini, au ukubwa tofauti iPhone. Haya yote ni kweli rahisi. Na ni kweli tu nzuri kwa hisia rafiki yako. Unaweza tu kushikilia iPhone na kumwambia rafiki yako hey, hii ni programu mimi kufanya. Unaweza kufanya hivyo kwa yeyote programu desktop, ambayo ni nzuri. Haki zote, sasa hebu kweli kupata katika lugha ya Lengo C. Hivyo kwa nini sio sisi kuanza na baadhi syntax kweli ya msingi. Kama nilivyoeleza hapo awali Lengo C Ni kimsingi superset ya C. Hivyo mengi ya syntax ya msingi ni kweli sawa. Kutangaza kutofautiana na kuongeza vigezo mbili pamoja ni hasa kama tumefanya katika Mario. Hakuna jipya hapa. Vile vile, lodger kwa kitanzi na hali ni pia moja. Unaweza kufanya kwa kitanzi tu kama wewe kuwa alifanya katika Mario [inaudible]. Na unaweza kufanya hali ya tu kama nini wamekuwa wakifanya katika p seti yako ya zamani. Hata hivyo, Lengo C si kabisa C, na kuna kitu ambacho ni aina ya weird kuhusu hilo. moja ya kwanza ilikuwa kwamba wakati wewe ni kufanya C programu, kwa kawaida wewe kuwaita pamoja na kisha jina maktaba. Lakini katika Lengo C wewe piga kwamba kuagiza. Kimsingi akisema utendaji, majina tofauti tu. Na masharti ni kweli kidogo weird. Unaweza kuona kwamba kwanza jambo kuwa ni aina ya weird ni kwamba una pretty weird-- sorry-- una NS pretty weird ishara zaidi ya hapa. Na jambo la pili hiyo ni aina ya weird ni una ishara kabla kweli kutangaza kamba. Hivyo katika ishara kimsingi kunaashiria kwamba kamba si tu kamba, ni kweli kitu. Sisi ni kwenda kueleza kwamba baadaye hivyo si hofu kama huna kuelewa kwamba maana yake nini. Na uchapishaji na console ni kidogo tofauti kwa sababu katika C sisi kuwaita printf, lakini katika C Lengo sisi kuwaita [inaudible]. Unaweza kuwa anashangaa ni kwamba. Hiyo ni kimsingi printf, tu lugha tofauti. Hasa matumizi huo, hasa utendaji huo. Naam zinageuka kuwa Lengo C kweli ina ns kiambishi awali karibu katika kila kitu, kila data aina ya msingi, nsstring, nsarray, nsdictionary. sababu ikiwa ni kwamba ns kweli anasimama kwa Next Hatua, ambayo ni kampuni ya kwamba Steve Jobs ina ilianzishwa, ambayo ni kampuni ambapo Lugha Lengo C ni kuzaliwa. Hivyo hii ni kimsingi utamaduni. Najua ni kidogo weird, lakini ni Apple. Hivyo kitu ambacho ni hata weirder zaidi ya kwamba ni kazi azimio. Hii ni tofauti sana na kile sisi kuona katika C, kwa sababu hapa ni kweli haina kuangalia kama C tena. Nini una here-- na njia hii si risasi uhakika, hii ni ishara minus. Una ishara minus mabano utupu na kisha jina kazi. Hebu sema tu kama sisi kuwa hodi dunia, basi aina ya kurudi itakuwa batili kwa sababu sisi kurudi chochote. Nini kweli anapata weird ni kwamba wakati uko kuwa parameter zaidi ya moja kupita katika kazi hiyo hiyo itakuwa kweli weird kama inavyoonekana hapa. Tuna mbinu jina, kuitwa addInt kwa [inaudible] na sisi ni kupita parameter moja. Lakini baada ya kuwa, tuna zaidi njia jina wito kwa. Na baada ya na sisi ni kupita parameter pili. Hii ni kweli kidogo weird, lakini maazimio hayo yote kazi kufuata mfano huo kama hii. Tuna minus ishara kwa kuanzia. Ishara minus inaweza kuwa pamoja na ishara wakati mwingine kulingana na aina gani ya mbinu ni yake. Method kimsingi ni jina la mtu mwingine kwa ajili ya kazi. Na tunakwenda kueleza kwamba baadaye wakati tunazungumzia kitu oriented programu. Wewe kwanza kutaja kurudi aina mabano ndani, baada ya ambayo huja njia jina. Wewe ni kupita parameter moja. Na kama una vigezo zaidi unahitaji kupanua njia jina na kimsingi kuandika kitu zaidi hapa. Ni inaweza kuwa kitu chochote unataka. Katika kesi yetu ni pamoja. Lakini unaweza kusema mwisho, au au, au abc full bar, chochote unataka. Na kisha baada ya kwamba wewe ni kupita parameter b. Hii ni kweli weird mkataba lakini sisi ni kwenda kuona nini Apple alitaka kufanya hivyo kwa haraka sana. Hivyo ni jinsi gani wewe piga kazi? Wito kazi katika Lengo C pia ni tofauti na C. Kweli, wito kazi katika C Lengo ni zaidi kama wewe ni kuzungumza na mtu. Hapa tuna binafsi, ambayo inaitwa kitu. Wewe ni kimsingi kuwaambia kitu binafsi kusema "Hello World!" Hiyo ni jinsi ya simu kazi. kitu na njia jina pamoja na kila mmoja. Na hii ni mahali ambapo ugani weird kwa njia jina kweli anakuja katika kucheza. Hebu tuangalie mfano wa pili. Sisi tu defined njia kuitwa addInt na blah blah blah. Hivyo katika kesi hii wakati wewe ni wito kwamba [maalumu? ujumbe?] ni kwenda kuangalia kama ubinafsi addInt: 10 kwa: 2. Inaonekana kama Kiingereza. Ingawa kazi kazi tamko ni weird, hatua ya Lengo C ya njia tamko mfano, ni kwamba wakati wewe ni wito kazi au njia itakuwa kuonekana kama halisi Kiingereza. Hivyo ni Intuitive sana mara moja kupata ndani yake. Hasa katika kesi hii, ambapo unaweza kimsingi kuona kwamba jina kazi ni aina ya kumbukumbu yenyewe. Huna haja yoyote maelezo zaidi kuona nini hasa kinachotokea, nini hasa parameter moja kufanya. Kwenda nje ya kwamba, hebu majadiliano kidogo kidogo kuhusu kitu oriented programu. Object oriented programu ni moja ya programu ya msingi mbinu au mwelekeo kwamba ni kutumiwa na Lengo C. Lengo C inaitwa Lengo C, si C, kwa sababu nzuri kwa kweli. Hivyo kabla ya sisi kupata katika Lengo C syntax, Hebu kweli haraka kuangalia nini hasa ni kitu. Tumekuwa pengine amefanya kitu kama kitu kabla, ambayo inaitwa struct wakati wewe ni kutekeleza mti au orodha wanaohusishwa au [? kujaribu. ?] Hivyo, ni kimsingi kama struct, lakini ni zaidi ya hapo nguvu. kifaa ina mbinu na mali. Mbinu kimsingi ni kazi. Kimsingi kazi zake kwamba maalum kwa kitu fulani. Na mali kimsingi ni uwanja wewe taja katika struct. Hivyo kwa kila kitu kimoja tuna baadhi ya mali ambayo ina baadhi ya vigezo ambayo ni maalum kwa kitu. Na tuna baadhi ya majukumu ambayo pia ni maalum kwa kitu. Na kazi ni kuitwa mbinu na vigezo walioitwa mali. Ni tu jina dhana. Wakati wewe kweli, kila mtazamo single unaweza kuona wakati wewe kufungua programu iOS, hebu tu kusema Twitter au Facebook, kila mtazamo single unaweza kuona ni kitu. Na hata programu nzima ni kitu ya kuanza kwa. Kuvutia sana dhana. Na kwa nini tunataka kitu oriented programu? Hivyo unaweza kufikiria kwamba wakati wewe mpango anapata pretty ngumu. Hebu sema tu wakati uko kutekeleza chessboard, mantiki ni kwenda kuwa kweli ngumu. Una 36 tofauti vipande, ili kwamba kama wewe unataka kuandika mantiki kwa wote 36 vipande mbalimbali katika Chess, kwamba kinaendelea kuwa mengi ya kazi mbalimbali na vigezo. Ni matatizo mengi. Na pengine wewe ni kwenda kuandika njia tofauti au kazi mbalimbali kwa kila moja ya kipande kwa hasa kudhibiti kile wanachokifanya. Lakini kama wewe kufanya kitu oriented programu, wote wa vipande hayo inaweza kuwa yanayotumika katika single kitu moja. Na kitu itakuwa na baadhi ya kawaida mali, kama ni aina gani ya kipande ni nini? Rangi ni nini? Jinsi gani wanaweza hoja? Na kwa njia hiyo una sana kilichorahisishwa mantiki yake. Hivyo ni njia tu mzuri kufanya mipango ngumu, na uhusiano wa kihierarkia ndani ya mpango, rahisi sana. Kama tunakwenda kuona nini haraka sana wakati sisi ni kweli kufanya programming-- wakati tuko kweli kufanya S code programu kikao baadaye. Vizuri katika Mbali na kwamba, kitu oriented programu ni tu mengi ya furaha. You got kubuni kitu yako mwenyewe. You got kubuni gani ni kuangalia kama wewe mwenyewe. Hakuna jibu haki yake. Na ni ya kuvutia kabisa. Hivyo katika kitu oriented programu, dhana mbili za msingi itakuwa darasani na mfano. darasa ni kimsingi kiolezo kwa ajili ya kitu. Na mfano ni kimsingi mmoja maalum kitu. Hebu tu kusema wewe ni kufanya cookie. Katika kesi hiyo, kila moja cookie kweli kuishia na ni kwenda kuwa kitu. Lakini sahani kuki unaweza kutumia ili kuandaa kuki zote itakuwa darasani. darasa ni kimsingi template. Na mfano itakuwa maalum moja kitu kuundwa nje ya darasa hilo. Na mfano zitapatikana kulingana na darasa tamko, kama tutaona katika slides baadaye. Basi hebu kweli kufanya kweli mfano haraka [inaudible]. Hebu kusema tuko kutangaza kitu kwa ajili ya paka. kitu lazima have-- paka darasa lazima kuwa na baadhi ya mali na mbinu. Ni aina gani ya mali lazima darasa have-- lazima paka na? Kwa mfano, rangi, umri na kuzaliana, wale itakuwa vigezo kwamba ni maalum kwa kila paka. Na wale ni baadhi ya mambo kwamba sisi kutumia kuelezea paka. Ni aina gani ya mbinu, au nini inaweza paka nini? Baadhi ya mifano ya haraka itakuwa baada ya panya, kula samaki au meow tu. Hii ni kweli haraka mfano wa paka darasani. Na kweli maalum paka kitu itakuwa paka ambapo sisi kutaja rangi, umri na kuzaliana. Katika kesi hiyo, kitu yetu ni tena darasani tena. Sisi nakala template kutoka darasani na sisi kutaja kila habari maalum na kwamba kitu maalum kufanya hivyo kujitegemea. Na wakati wewe ni wito njia ndani ya kitu, wewe tu wito meow juu ya kitu, ambayo ni paka wewe tu kuundwa. Pengine utakuwa magazeti nje kitu kama "Hello World! Meow. " Pretty cute. Haki wote, hebu tu kupata katika baadhi ya maelezo na kuona nini hasa gani kwamba kutafsiri katika kuwa programu iOS. Hivyo katika iOS programu kila moja darasa utatekelezwa katika files mbili. Faili moja ni hapa, ambayo inaitwa interface. Faili jingine ni hapa, ambayo inaitwa utekelezaji. Kwa kawaida interface itakuwa na extension.h kama tulivyoona katika maktaba C. Na faili utekelezaji ni kwenda na extension.n. Ni aina ya weird. Lakini ina maana .n kweli c, hakuna tofauti za msingi kati ya wale mbili. Hivyo katika kesi hii, tunaweza kuona kwamba sisi ni kutangaza interface, Cat: kitu. Hiyo inaitwa urithi. Sisi ni kimsingi kurithi paka darasa kutoka kifaa darasani. Hivyo kila mali na njia ambayo ilikuwa awali inavyoelezwa katika darasa kitu itakuwa moja kwa moja defined katika paka darasa vilevile. Mbali na kwamba, sisi kufafanua Michezo, kuzaliana, na umri, vigezo tatu. Kwamba kweli inaonekana kama kitu umefanya kabla. Inaonekana kama struct. Hiyo ni kimsingi syntax kwa struct tamko, na kwamba ni sahihi kabisa. Na tangu nilivyoeleza hapo awali, tofauti struct na kitu, moja ya tofauti za msingi ni kwamba kifaa ina mbinu, wakati struct tu ina vigezo. Hivyo kwa kuongeza mali au vigezo tumeunda kwa kitu, sisi kutaja njia fulani. Hebu tu kusema hapa tuna njia mbili, moja ni meow, mtu mwingine ni baada ya panya. Sisi pengine wanataka kuwa kupita parameter kulingana na njia yetu uliopita tamko mfano. Pengine wanataka kuwa kupita mouse. Na pengine utasikia wanataka kurudi bool imesimama kama paka wako ana mafanikio hawakupata panya au si. Hii ni interface, lakini tunaweza kuona kwamba interface kweli haina kufanya kitu chochote. Ni tu anaelezea mpango gani exists-- nini ipo katika paka darasani. Hivyo ili mpango wa kufanya kitu, tunahitaji kuwa na files utekelezaji. Hivyo hapa, jambo la kwanza sisi kufanya ni ni wazi sisi kuagiza interface. Baada ya sisi kuagiza interface, sisi kufafanua mbinu. Hebu tu kusema hapa meow ingekuwa tu magazeti nje "Hello World!" kwa console. Na baada ya utekelezaji file, tuko pretty much kufanyika. Hii ni kimsingi darasa tamko kwa ajili ya darasa moja. Hivyo sasa swali kuwa, jinsi gani unaweza kutangaza variable? njia ya kutumia darasa kujenga kitu katika Lengo C imeandikwa hapa. Wewe kwanza bayana kwamba hii ni paka pointer, kwa sababu kila kitu katika Lengo C hatimaye kutekelezwa kama pointer. Na wewe piga darasani, kuwaita kama alloc, ambayo kimsingi ni malloc, kuwaambia mfumo wa uendeshaji ambayo wewe haja ya baadhi ya kumbukumbu nafasi kwa ajili ya kitu hii. Baada ya kuwa una kitu tayari na wewe tu initialize. Hii ni mkataba tu. Najua ni ni kidogo weird, lakini hii ni kweli jinsi Apple gani mambo ya ajabu. Kumshirikisha mali ni kweli pretty moja kwa moja. Ni sawa na nini unafanya wakati wewe ni kumshirikisha baadhi maalum uwanja ndani ya struct. Wewe tu kuwa na kutofautiana jina, jina mali, na hawawajui thamani maalum yake. Na wito mbinu ni sawa sana. wito ni njia kimsingi nini mimi kuzungumza kuhusu kwa ajili ya wito mbinu yoyote katika Lengo C. Wewe ni kupita kitu, katika kesi hii ni kwenda kuwa myCat, na wewe ni kupita njia jina. Kama wewe ni kuzungumza na kitu, myCat, kwamba unapaswa meow. Ni pretty kuvutia. Baada ya kuwa, kuna moja muhimu zaidi kubuni muundo kwamba tunahitaji majadiliano juu ya kabla ya kupata halisi S code. Hiyo kubuni muundo inaitwa tukio inaendeshwa programu. Hii pia ni pengine ni moja ya wengi mawazo ya msingi katika programu iOS. Hivyo pengine hawajui nini hasa ni tukio inaendeshwa programu, lakini siyo kweli kwamba inatisha. Naam kwa kweli, una tayari amefanya hiyo kabla. Hii ni moja ya mistari wewe wameweza pengine tayari imeandikwa katika mwisho [inaudible] ya CS50, google.maps.event.addListener (marker, "Click", kazi () {}) :. By wito line huu wewe ni kimsingi kuwaambia kompyuta kwamba wakati wowote tukio kuitwa "Click" hufanyika kwenye marker, kutumia kazi hiyo. Hii ni tofauti sana na nini kufanya katika mario.c. Katika mario.c wewe tu kukimbia mpango mara moja, inakupa pato, na wewe ni kosa. Hizi ni aina ya kama moja programu risasi. Tukio inaendeshwa mipango ni sana, tofauti sana. Hebu fikiria, kama Facebook ni moja risasi mpango ni si mzuri. Wewe tu kwenda Facebook mara moja na ni kosa. Ni anakupa baadhi ya pato na kamwe got nyuma. Wewe kamwe got kitu chochote zaidi. Hivyo hapa, hasa mfano sisi kutumia ni tukio inayotokana, ili kila kazi mapenzi kuwa hawakupata kulingana na yale tukio lililotokea. Kwa mfano, kama tuna kifungo na sisi kutaja kwamba wakati wowote kwamba kifungo ni clicked, wito kazi kuitwa "Hello World!" Kwa njia hiyo tunaweza kweli kusimamia kazi mantiki kati yake kwa njia rahisi sana. mtumiaji anaweza kufanya au piga kazi ambayo tayari kuitwa. Ni kabisa kulingana na watumiaji nini. Hivyo tunaweza kuona kwamba hii ni kweli bora zaidi kuliko mario.c. Na habari njema ni kwamba ni kweli si dhana mpya. You guys wameshafanya kwamba katika tatizo la mwisho kuweka. Hivyo katika C Lengo kuna michoro tatu tofauti kwa ajili ya tukio inaendeshwa programu. mchoro kwanza ni kuitwa lengo hatua, ambapo kumfunga kifungo vyombo vya habari na baadhi ya kazi. Hebu tu kusema, wakati wowote wewe click baadhi ya kifungo, wewe piga baadhi ya kazi. Hii ni rahisi sana lengo action. moja ya pili ni kweli gumu moja, ni kuitwa ujumbe juu ya itifaki. Sisi ni kwenda kueleza kwamba katika kina kubwa baadaye. Na njia ya tatu ni notification. Hii ni kweli si muhimu sana kama mbali kama sisi ni wasiwasi, kwa sababu nafasi kwamba wewe ni kwenda kutumia taarifa katika mradi wako wa mwisho ni pretty chini. Hivyo sisi ni kwenda ruka sehemu hiyo. Na tunakwenda kupiga mbizi ndani ya ujumbe juu ya itifaki. Basi nini hasa ni itifaki? Au ni nini hasa ujumbe? Hebu majadiliano juu ya itifaki ya kuanza kwa. Itifaki ni kitu lakini matukio. Lakini matukio hayo ni aliyopewa wewe kwa Apple kuanza na. Kwa mfano, mimi nina si uhakika kabisa jinsi wengi wenu guys kutumia awali Apple programu ya barua pepe au kuwasiliana, lakini kila wakati wewe kitabu meza na waandishi wa habari kiini maalum juu ya meza, yaani tukio hilo. Na kama unataka kufanya kuwa tukio na wewe mwenyewe, ni kweli kidogo ngumu. Hivyo Apple ametoa kwamba hata na wewe hivyo kwamba unaweza tu moja kwa moja kutumia tukio kufanya kitu juu yako mwenyewe. Itifaki ni kweli kweli, kweli sana kutumika katika Lengo C. Naam katika kweli, kila programu moja ina kitu hawakupata programu mjumbe huyo. Ndani ya delicate ni wote wa itifaki kwa ajili ya kupakia programu. Hebu tu kusema kuna tukio kwa ajili ya programu alifanya mzigo. Hivyo kile lazima kutokea baada ya wewe wameweza umba programu, baada ya kufungua programu, baada ya kufunga programu, au baada ya kuweka iPhone kulala. Haya ni matukio yote ambayo tayari wamepewa na wewe. Na awali ndani ya chembe hizi hakutakuwa na utekelezaji. Apple aliiambia tu kwamba kazi hii kitatokea wakati baadhi ya tukio hutokea, lakini nini kufanya na kwamba kazi ni kabisa hadi wewe. Ujumbe kimsingi ni kuwaambia darasa kwamba unapaswa kushughulikia itifaki hizi. Ni kidogo utata, lakini itakuwa wazi sana wakati sisi kufanya codes s katika action. Ujumbe juu ya itifaki ni kweli robust sana utaratibu kwa maana kwamba kama tukifanya ujumbe darasani maalum, tunaweza kimsingi kushughulikia kila aina ya matukio kutumia darasa yoyote tuna, rahisi sana chombo. Basi mfano moja ya haraka kwa ajili ya ujumbe juu ya itifaki itakuwa nini mimi tu kuongelea. Itifaki hii hasa inaitwa tableview [inaudible] kuchagua jukumu katika [? index?] [? zamani. ?] Basi An hii tukio kwamba itakuwa hawakupata wakati kweli bomba kwenye maalum kiini katika tableview yako, hebu tu kusema katika barua pepe yako au katika mawasiliano yako programu. Ndani ya kazi kulikuwa awali ya kufanya chochote. kazi hana kufanya kitu chochote kwa default. Lakini unaweza bayana nini kazi gani, kutokana na kile unataka nje ya programu yako. Rahisi sana chombo. Na pamoja na yote kuwa alisema, mimi kimsingi kufidia baadhi syntax ya msingi sana na dhana ya msingi kwa ajili ya Lengo C programu, na tunaweza kufanya baadhi ya kanuni s. Kubwa zaidi ya kusisimua. Hivyo s code ni kweli kidogo balaa wakati wa kufungua kwa mara ya kwanza. Moja ya haraka kumbuka, hivyo kama wewe wanataka kufanya iOS maendeleo, Mimi sana kupendekeza una Mac. Kwa sababu kufanya iOS maendeleo ya Windows ni kweli, ngumu kweli kweli. Ni doable, lakini ni ngumu kweli kweli. Na wewe dhahiri kufanya si unataka kutumia g hariri. Hivyo katika s code tuna maeneo kadhaa tofauti. Wakati wewe kwanza kufungua s code utaona eneo urambazaji, ambayo kimsingi inaonyesha wote files kwamba ni katika mradi wako sasa. Una eneo toolbar, ambayo kimsingi ni kusimamia maoni, au baadhi kidogo haraka zana kuhusu s code yenyewe. Na hii ni halisi mhariri eneo hilo. Eneo hili ni sawa sana g hariri, lakini bora zaidi kuliko g hariri. Na katika eneo hili haki, ni kuitwa eneo shirika. eneo inakuwa kweli Handy wakati wewe ni kujenga interface au kubainisha baadhi setups haraka kwa ajili ya programu yako. Na eneo la mwisho ni debugging. Eneo hili lina console. Hivyo wakati wewe kusema printf, au nslog kwa upande wetu, matokeo yako yote ni kwenda kuwa kuchapishwa hapa. Wote haki? Nadhani tunaweza kweli haraka kufanya mfano kwa ajili ya programu iOS. Na hebu kweli kufungua s code. Hivyo kila wakati wewe kufungua s code, ni kwenda show up kitu kama hicho. Ni kwenda kuuliza unataka nini cha kufanya? Je, unataka kuanza kitu random, playground, kimsingi wewe unaweza tu mtihani code bila kweli kutenda na programu yoyote. Je, unataka kujenga mradi mpya? Au unataka kuendelea kufanya kazi katika mradi zilizopo? Katika kesi yetu tunakwenda kujenga mradi mpya. Hivyo ni kweli nice, s code kweli ina tayari kutokana na baadhi templates kwa ajili ya kujenga vitu. Kama unataka kufanya mchezo, s code kweli ina mchezo template kwa ajili yenu, ina ukurasa misingi maombi, tab makao maombi. Katika kesi hiyo, tunakwenda kufanya kitu rahisi sana, na sisi ni kwenda kutumia single mtazamo maombi. Baada ya kuwa tu unataka nini kuwaita bidhaa yako, na ni nini jina lako, nini kitambulisho yako, na Ni lugha gani unatumia. Hapa sisi hawataki kuangalia kutumia Core Data. Core Takwimu kimsingi ni databasing iOS. Kama wewe kufanya Core Data, s code ni kwenda kufafanua mengi madarasa ngumu zaidi kwa ajili yenu. Hivyo kuweka kila kitu rahisi, tuko tu kwenda kufanya bila Core Data hivi sasa. tatizo tunakwenda kuwa kutumia ni that-- tatizo tunakwenda kuwa na kujenga ni kwamba sisi kimsingi wanataka kuagiza Mario kutoka C kwa programu iOS. Basi hebu wito kwamba Mario-iOS. Bila shaka wewe taja nini wanataka kuweka katika mradi wako. Na kuna sisi kwenda. Hivyo hii ni kidogo balaa, lakini hii ni kweli kile sisi tu kuona kwenye slides. Na eneo la kwanza tunaona sasa hivi Kimsingi ni mradi wa usanidi. Kwa hiyo kila kitu unataka kufanya mradi, aina gani ya kifaa, hebu sema tu ni aina gani ya kifaa kufanya unataka programu yako kuonekana kwenye? Je, ni iPhone, iPad au zima? Hivyo kifaa mwelekeo, mambo haya yote. Si muhimu sana, lakini inaweza kuwa, lakini hii ni mahali ambapo wewe kuanzisha mradi wako kama kweli wanataka kupeleka dukani Apple. Haki wote, hebu tuangalie kitu ambacho ni ndani ya code yetu. Hebu kwenda kwa njia ya faili Navigator. Na hawa ni mafaili yote ambayo tayari alikuja na template, nzuri sana. Hivyo wakati sisi bonyeza mmoja wao hii ni nini inaonekana kama. Sawa na g hariri. Lakini unaweza kuona kwamba syntax mwangaza pengine kidogo nicer. Na ni kweli zaidi nguvu zaidi kuliko g editing. Na unaweza auto kamili mambo mengi kwa ajili yenu, kama tutaona kwa haraka sana. Hebu kufungua eneo debugging pia. Haki wote, kama tunaweza kuona, console ni haki hapa. Hii ni nini utaenda kuona ambapo uko katika printf au nsloging kitu. Hivyo bila wasiwasi zaidi, hebu kweli kukusanya programu na kuona nini kinatokea. Moja muhimu kipengele kwa s code, ni kwamba s code kuja na simulator iPhone. Hivyo huna haja ya kuwa na iPhone kujaribu mradi wako, s code inaweza kuiga kwamba kwa wewe, kama tunaweza kuona hivi sasa. Ni pretty nice. Ni kuchukua kidogo kidogo ya muda wa kukusanya na kimsingi tuna maombi tupu, ambayo kwa kweli haina chochote. Lakini inaandaa. Ni pretty kutisha. Ni bora zaidi kuliko C, huh? Haki wote, basi hebu kujaribu kuongeza kitu. Moja faili kwamba ni kidogo weird hapa inaitwa storyboard. Hii ni kweli kubwa, kushangaza kipengele kwa s code. Kwa sababu katika s code, unaweza kweli Drag na kuacha mambo kwenye interface na itakuwa moja kwa moja kuonyesha up. Hebu jaribu hilo. Sisi kuacha studio hapa, "Hello World !!!" Tunaweza kituo cha hiyo. Pretty baridi. Sasa hebu kukimbia hii simulation stop. Hapa tuna "Hello World !!!" Sisi hawakuwa hata kufanya coding yoyote. Nini heck kinachotokea? Hii ni jinsi nguvu Interface Builder wanaweza kuwa. Mtu hata alisema kuwa pengine unaweza tu kukamilisha programu bila kuandika pengine mistari elfu ya kanuni tu kwa kutumia Interface Builder. Lakini pengine si njia bora ya kufanya hivyo. Sasa hebu kweli kupata chini ya coding. Hivyo muundo kwa ajili ya faili ni kweli kweli kuvutia kwa sababu, kama unaweza kuona, kuna hakuna kazi kuu popote. Angalia? Kama sisi zilizotajwa kabla, unaweza kuona kwamba hii ni faili utekelezaji kwa ajili ya darasa maalum. Lakini hakuna mahali popote kuu. Kwa hiyo ambapo ni kuu? Kweli, kuna kuu, lakini kuu ni kweli siri kutoka kwenu. kuu ni hapa. Kwamba inaonekana familiar. Hivyo kimsingi nini iOS ni kufanya ndani ya kuu ni kwamba wakati wowote kuu ni kuitwa, ambayo kimsingi ni wakati wowote programu ni kunyongwa, ni inajenga kitu inaitwa AppDelegate. Kama nilivyoeleza hapo awali, nzima programu ni kweli kitu kwa yenyewe. Hivyo kwa njia hii, kimsingi iOS programu ni kuwaambia compiler kwamba OK, mimi nina kwenda kujenga bidhaa inayoitwa AppDelegate, na kwamba ni kwenda kuwa programu yangu. Hivyo haja ya kwenda njia ya kuwa AppDelegate na kuona nini kwamba guy anafanya. Kazi yangu ni kufanyika kwa ajili yangu. Na katika AppDelegate unaweza kuona kwamba kuna baadhi ya majukumu kweli weird, vizuri mbinu kweli, kwamba Apple tayari kupewa wewe. Nini hawa? Haya ni kweli itifaki tu kwamba nilikuwa kuzungumza juu. Hivyo haya ni matukio ambayo Apple amewapa ninyi kuanza na. Hakuna kitu katika baadhi ya kazi sasa hivi, lakini kama tunataka initialize kitu kwa ajili ya programu yetu kabla ya kuingia katika kuonyesha maoni yoyote, sisi kufanya hivyo hapa. Unaweza kusoma tu jina na mimi nadhani tukio hilo ni kweli kweli wazi. Hivyo sasa kuu imeunda kitu kwa ajili ya AppDelegate. Na nini AppDelegate ni kwenda kufanya ni kweli pia siri kutoka kwenu. AppDelegate ni kwenda kuanza kupakia ViewController hisa. Hivyo ni kimsingi kwenda kuanza kupakia up maoni yote kwamba una na tu kutoa maoni kulingana na uongozi. Hivyo katika kesi hii sisi tu maoni moja, ambayo ni hapa. Hivyo kwamba ni mtazamo tu kwamba kinaendelea kuitwa. Mantiki ViewController ni haki hapa. Hii ni kanuni kwamba kweli udhibiti maoni sisi tu kuona. Haki zote, hebu kufanya kitu hapa. Hivyo viewDidLoad inaonekana kama tukio hilo, wakati katika ukweli huu pia ni mjumbe, hii pia ni itifaki. Kwa hiyo chochote mtazamo ni kubeba, kila kitu ndani kazi wataitwa. Katika kesi hiyo tunapaswa kuona "Hello Tianyu! "Kama sisi kukimbia mpango. Ni kupata kidogo polepole kuandaa storyboard files. Naam kweli, hatuwezi kuona pato kwa ajili yake. Ni pretty cool. Sasa hebu kweli kufanya Mario. Mimi nina kwenda kufafanua kazi haraka sana. marioWithLevels: Matokeo (int) ngazi. Haki wote, hii ni kweli kutisha hulka ya s code kukamilika auto. Hivyo wakati wewe kuandika kwa na aina kuingia, tayari wamekata template ajili yenu, ambayo ni pretty cool. Kwamba lazima kuangalia kweli ukoo kwa nyie. Sorry, kwamba ni kosa langu. Haki wote, baridi. Mantiki kwamba lazima kuangalia kweli familiar na wewe guys, hasa tu Mario. Lakini sisi sasa magazeti nje kwa console kila mara moja, kwa sababu tunataka namna fulani kuweka wimbo wa nini sisi ni kuchapisha. Sisi ni kwenda kutumia matokeo namna fulani baadaye, kuonyesha magazeti nje kusababisha kwa mtumiaji. Hivyo badala tuko tu nslogging kila kitu, ambayo sisi ni kuhifadhi kila kitu katika matokeo ya kazi ya wito, lakini mantiki ni sawa. Baada ya sisi kumaliza, sisi tu magazeti matokeo yetu. Na hapa badala ya uchapishaji nje yangu jina, sisi ni kwenda kuwaita kazi. Hebu kuona nini kinatokea. Oops, ni wazi. Sisi kufanya kuwa nzuri piramidi kidogo kutoka hapa. Hii ni kimsingi C, tuko tu kufanyia ambapo wewe piga kazi na jinsi gani kazi kuangalia kama. Kuna kitu tofauti. Lakini hii ni kweli si kusisimua sana hapa, kwa sababu sisi siyo kuona kitu chochote kutoka programu iPhone. Hivyo kama wewe kweli kuwa iPhone app-- kama kweli una Mario iOS haki sasa, wewe si kwenda kuona chochote kwamba ina chochote cha kufanya na Mario kwa sababu wale matokeo yote katika console ni siri kutoka kwa mtumiaji. Hii ni nini unaweza kuona, ambayo ni "Hello World !!!" Si nzuri. Sasa hebu jaribu kufanya user kuona nini hasa sisi ni uchapishaji nje. Hivyo hatuna haja ya studio tena. Hebu jaribu na takwimu nje kitu kingine kwamba inaweza kuwa na manufaa. Kwa kweli kuna moja kipengele kiitwacho Nakala shamba, ambayo inaweza kuwa na manufaa sana kwetu. Ni kimsingi maonyesho mkoa Nakala ya ambayo inaweza kuwa mwisho. Hivyo kwamba inaonekana kweli kusaidia. Sasa hebu Drag na kushuka. Wow, sisi kuwa na mtazamo Nakala katika mtazamo wetu, kwa kweli dhana. Hiyo ni kidogo kubwa mno. Hebu kufanya hivyo vidogo vidogo. Kuiweka katika kituo hicho. Matokeo yake ni ndogo pia. Sasa tuna mtazamo asilia, ambayo tunaweza kutumiwa kuonyesha matokeo yetu ya mwisho. Lakini sasa hivi ni dhahiri si kwenda kufanya kazi kwa sababu kuna no-- ViewController sisi tu defined hajui kwamba kuna maoni Nakala huko nje. Hivyo tunahitaji namna fulani kiungo mtazamo Nakala sisi tu kuundwa kwa darasa kwamba tayari kuja pamoja nasi. njia ya sisi kufanya hivyo ni kweli kweli kichawi. Hivyo kufungua storyboard. Kuna maalum [inaudible] kuitwa [? msaidizi?] [inaudible]. Wakati bonyeza kwamba, ni kwenda kufungua files mbili. Moja ni darasani na mtu mwingine ni maoni sambamba kwa ajili yake. Ni sana, inasaidia sana. Na hebu tu huenda kwa njia ya h file. Kudhibiti, hii ni [inaudible] mantiki. Press Kudhibiti na Drag Nakala mtazamo katika azimio. Sisi ni kwenda kuwaita kwamba outputView. Kuungana. Hivyo hapa sisi wametangaza mpya mali kwa ajili ya darasa letu ViewController. Na mali mpya ni tu mtazamo Nakala tumeunda katika jengo interface. Hivyo kwa njia ambayo tunaweza upatikanaji data zote na kuendesha kila kitu ambacho ni ndani ya mtazamo pato, ambayo ni ajabu. Hivyo katika kanuni zetu halisi, hebu kufanya kitu kwa hayo. Hivyo wakati huu ambapo sisi ni kama uchapishaji nje matokeo ya mwisho kwa ajili ya Mario, tuko katika si magogo chochote. I mean tunaweza kuweka magogo taarifa. Mbali na kwamba, sisi kutuma readout sisi tu kuundwa kwa mtazamo pato, ambayo ni UI textview sisi tu kuundwa. Sasa hebu angalia nini kinatokea. Wow. Tuna piramidi katika programu hivi sasa. Hivyo user unaweza kuona pato yetu kwa sababu tuna kunakiliwa pato kutoka kanuni zetu kwa interface yetu. Ni nzuri sana. Ni kweli si kwamba kusisimua kwa sababu sisi can-- All programu ni kufanya ni kuonyesha piramidi na wewe, na kuna kitu unaweza kufanya kuhusu hilo. Ni si hasa ya kusisimua. Hivyo sasa hebu kufanya kifungo kwamba itakuwa wazi maoni. Inaonekana kwamba kifungo itakuwa na manufaa. Drag na kuacha. Button moja. Button mbili. Hivyo wakati sisi bonyeza kushoto kifungo, mtazamo lazima wazi. Ni lazima kuwe na kitu juu ya screen. Na wakati sisi bonyeza haki ya kifungo, Mario, mtazamo ni kwenda kuonekana tena. Hivyo njia hii sisi pia kufanya uchawi stuff, kudhibiti na Drag tamko darasa katika director-- msaidizi katika mtazamaji msaidizi. Katika kesi hii sisi ni kubainisha kwamba lazima action. clearMario. Hivyo hapa sisi tayari umba hatua inayoitwa clearMario, ambayo ni njia ambayo itakuwa inaitwa wakati sisi waandishi wa habari kifungo wazi. Hivyo katika kweli kanuni zetu, hebu tu kuweka pato Nakala na pato mtazamo ndani ya kitu, na kwamba njia yataonekana kuwa wazi. Mbali na kwamba, hebu kujenga njia nyingine inaitwa runMario. Oh sorry, kwamba wanapaswa kuwa mali. Haki wote, kwamba lazima kuwa hatua kama vizuri. Na wakati kazi ambayo ni kuitwa, sisi kukimbia tu Mario kumi. Hopefully kwamba itakuwa vizuri. Je, ni kukusanya? Ndiyo. Sasa tuna maoni. Tuna pato. Na hebu tu kuona nini kinatokea. Hiyo ni gone. Ni tena. Hivyo hapa tuna maalum aina gani ya kazi wataitwa wakati sisi aina katika kitu, wakati sisi waandishi wa habari kifungo maalum. Hii ni kimsingi lengo hatua mpango kwa ajili ya tukio inaendeshwa programu katika Lengo C. Mbali na kwamba, si kusisimua sana kwa sababu hatuwezi mabadiliko ya kweli jinsi ya juu piramidi itakuwa, hivyo sisi pengine wanataka namna fulani kupata pembejeo kutoka kwa mtumiaji na mabadiliko ya urefu wa piramidi kulingana na kile pato. Hivyo sisi ni kwenda kufanya hivyo. Hivyo wakati huu ambapo sisi kuwaita runMario, hatuwezi kuwaita tu Mario moja kwa moja. Ilani hiyo ya mtu. Mjumbe huyo. Hii ni ya kuvutia sana. Ni mjumbe nini? Mimi nina kwenda kuweka binafsi hapa. Na sisi ni kwenda kuona nini maana ya baadaye. Hivyo hapa tuna yanaumbwa mfano maalum aitwaye tahadhari UI maoni. Mtazamo tahadhari UI ni kimsingi nini wewe kuona kila wakati kitu pops juu na anauliza wewe kwa ajili ya pembejeo, kama nini kitatokea wakati wewe ni kujaribu kununua kitu juu ya kuhifadhi App. Mbali na kwamba, baada ya kujenga ni, sisi tu kuonyesha tahadhari. Haki wote, hebu tu haraka mtihani mapenzi kazi hiyo au la. Hiyo ni baridi sana. Sasa hebu kweli kujenga pembejeo shamba kwa tahadhari UI. Hii ni jinsi sisi kufanya hivyo. Na tunapaswa kuwa pembejeo maoni kwa tahadhari. Baridi sana. Hebu tu kusema 10. Ni si kufanya kitu chochote haki sasa kwa sababu wito kweli hakuna mabadiliko kwa ajili ya utekelezaji Mario. Hivyo hii imekuwa kidogo kidogo weird kwa sababu wakati wowote sisi waandishi wa habari kifungo chini, wakati sisi waandishi wa habari kifungo katika mtazamo tahadhari, kitu lazima kutokea, lakini haina kutokea. Jinsi gani sisi kupata hiyo? Jinsi gani tunajua kwamba user imekanusha mtazamo tahadhari na tayari aliingia idadi, kwa sababu haki sasa hakuna ni kweli yanatokea. Naam, unaweza kuwa guessed ni haki, ujumbe. Hivyo pamoja na yote maazimio hayo, tunahitaji kuongeza ujumbe mpya ni kuitwa UI tahadhari mtazamo mjumbe huyo. Hivyo kwamba kila moja mwingiliano au tukio kwamba tunakwenda kuwa na na tahadhari UI mtazamo ni kwenda kuwa kubebwa na darasa yetu pia. Hivyo katika Mbali na kwamba, itakuwa tahadhari mtazamo click kifungo katika index. Hii ni kufikiwa. Hivyo katika kesi hiyo tuna already-- hivyo tuna kupatikana nje itifaki ambayo kushughulikia tukio wakati sisi bonyeza kifungo Done juu ya mtazamo tahadhari. Hivyo kila wakati sisi kumfukuza tahadhari maoni, hii lazima kutokea. Hebu ni mtihani tu kwa haraka sana. Naam hakika, tumefikia hapa. Hivyo hapa, nini sisi si kweli kupata ni kweli kupata the-- Hivyo tunataka kupata nje Nakala kwamba tuna awali aliingia katika mtazamo tahadhari. Na kulingana na maandishi, tuko kwenda kuonyesha Mario. Hii haraka sana zinageuka kama ni kweli kazi au la. Hivyo katika kesi hiyo, kama sisi pembejeo, hebu sema, 10, tunapaswa kuona 10. Nzuri sana, sisi kufanya kuwa na idadi hapa. Ni nzuri sana. Sasa hatua ya mwisho itakuwa be-- Hivyo hatua ya mwisho tunahitaji kufanya hivi sasa ni tu wito Mario na kiwango kulingana na pembejeo kwamba tuna kuweka katika tahadhari maoni. Hivyo tunahitaji kubadili kamba huu katika iOS. Static kufurika ni wa kushangaza sana. Na kisha sisi kuwaita tu binafsi marioWithLevels thamani. Hebu angalia mapenzi kwamba kweli kazi au la. Sisi ni tayari kutolewa piramidi. Hebu kujaribu kubadili urefu. Hiyo kweli kazi. Ni pretty cool. Hivyo kwamba sasa unaweza tu pembejeo thamani yoyote unataka. Hebu tu kusema minne. Hiyo ni pretty kutisha. Hivyo hii ni kimsingi mfano kweli haraka jinsi ya kujenga mradi katika s code na jinsi ya kweli haraka waya up baadhi ya matukio kweli rahisi na kazi. Hivyo chanzo ni kwenda kuwekwa online baadaye. Hivyo kama wewe ni nia ya jinsi iOS Mario kazi, Mimi nina kwenda kuweka sawa miradi kwenye CS50 tovuti baadaye. Sisi ni kimsingi kufanyika kwa majira ya joto, na kabla ya sisi kumaliza Mimi nataka tu kumweka wewe guys kwa baadhi ya rasilimali kweli kutisha kwamba zinapatikana online. Ni wazi nyaraka Apple ni kwenda kuwa na manufaa sana. Lakini pamoja na kwamba, mimi hasa kupendekeza vyanzo nne, kanuni za shule, mti nyumba, AppCoda na WWDC video. Kanuni shule na nyumba mti ni mbili online kuelimisha ya Nje, ambayo hasa kuzingatia juu ya programu uhandisi. Hasa kwa ajili ya shule code, wao kuwa mafunzo mzuri juu ya iOS. Hiyo ni mfano kweli haraka kwa ajili yake. Wao kweli kujenga kweli cute-- kuangalia kwamba kidogo cute iPhone dude zaidi ya hapo, ni pretty kutisha. Na njia wao kueleza Lengo C syntax ni wazi kabisa. Mti nyumba ni sawa. Na AppCoda ni jukwaa. Ni kweli blog kwamba ilikuwa kukimbia na kweli uzoefu Lengo C programu. Na tutorials wale wote katika AppCoda ni pretty fupi na rahisi kutekeleza, ilipendekeza sana. Na kama wewe ni developer, dhahiri kwenda kuangalia jinsi video WWDC ambapo unaweza kujifunza kuhusu iOS programu latest mbinu, APIs na maktaba. Hivyo kwamba ni pretty much ni kwa ajili ya semina. Asante sana. Na mimi Natumaini kuwa na furaha kujenga iOS programu yako mwenyewe.