TIANYU LIU: Hey, kif l dan kulħadd tmur? U dan huwa l-App IOS ipprogrammar ta 'seminar c oġġettiva. U l-isem tiegħi huwa Tianyu Liu. I'ma junior Lowell dritt issa, jikkonċentraw fix-xjenza tal-kompjuter. Allura f'dan is-seminar jien ser jgħallmu guys ftit dwar kif tagħmel app. Yay, nikseb eċċitati għal dan. Għalhekk qabel we anki tibda għadis fil-ġenb attwali ta 'programmar, ejja biss verament malajr jitkellmu dwar għaliex jista inti tixtieq li jibnu app IOS? Għaliex hija IOS hekk tal-biża? Allura l-ewwel problema, l-ewwel ħaġa li hija pjuttost tal-biża għalina, speċjalment bħala CS50 student, huwa li IOS użi Għan C. Ukoll, hemm lingwa ġdida msejħa Swift, imma aħna ma tkunx qed tmur biex tuża dik f'dan is-seminar. Jekk int interessat fl Swift, hemm huwa seminar indipendenti dwar dan. Iżda Għan C hija bażikament superset ta C. Tifsira li kollox inti tuża fis-C jista jiġi tradott fil-Objettiv C faċilment ħafna. Kif inti tista 'tara wara, li fil-fatt hemm xi sintassi bażika ħafna, huma bażikament eżattament l-istess, C u Għan C. Allura, peress li inti ħadt CS50 up s'hawn, inti diġà jafu Għan C, mill-inqas 40%. Ukoll, Apple għandha verament API robusta għall IOS. Hemm ħafna ta 'verament crazy affarijiet li tista 'tagħmel magħha. Wieħed minnhom huwa xi ħadd attwalment ħolqot app IOS għall-karozzi jikkontrollaw, li hija pjuttost interessanti. Probabbilment ħelikopter huwa aktar eċċitanti. Imma dak li kif qawwija l-API IOS jista 'jkun. U kif inti jista 'jkollok dehret dritt issa, l-overflow munzell huwa probabilment waħda mill ir-riżorsi online l-aktar importanti disponibbli lilek. U aħbar tajba, għal kull problema waħda li tista 'possibbilment think ta 'filwaqt li jibnu tiegħek proġett finali Għan C, x'aktarx hemm tweġiba overflow munzell. Huwa biss tal-biża. B'żieda għal dan, IOS huwa verament pjattaforma fejn inti tista 'tilħaq enormi udjenza bi ftit sforz. Mhuwiex simili Android, fejn tal pretty frammentat kollox. Kollox IOS hija unifikata. U sakemm inti toħloq app għal iPhone, inti tista 'faċilment port li biex iPad, mini iPad, jew id-daqsijiet iPhone differenti. Dawn huma kollha verament konvenjenti. U huwa biss verament tajba għall impressing ħbieb tiegħek. Tista 'biss jkollhom iPhone u għid ħabib tiegħek ħej, dan huwa l-app I jagħmlu. Tista 'tagħmel dan għal xi apps desktop, li huwa sabiħ. Kull dritt, issa ejja fil-fatt tikseb fil-lingwa Għan C. Allura għaliex ma we tibda bil xi sintassi verament bażiku. Kif semmejt qabel Għan C Huwa bażikament superset ta C. Allura ħafna ta 'sintassi bażika huma attwalment eżattament l-istess. Li tiddikkjara varjabbli u żżid żewġ varjabbli flimkien huwa eżattament kif għamilna fil Mario. Xejn ġdid hawn. Bl-istess mod, il-kerrej għal loop u l-kondizzjoni hija wkoll l-istess. Tista 'tagħmel għall loop eżatt kif inti jkunu għamlu fil Mario [inaudible]. U inti tista 'tagħmel kondizzjonijiet eżatt kif dak li inti kienu jagħmlu f'settijiet tiegħek p preċedenti. Madankollu, Objettiv C mhuwiex kompletament C, u hemm xi ħaġa li huwa tip ta stramb dwar dan. L-ewwel waħda hija li meta inti tagħmel programmazzjoni C, inti tipikament sejħa jinkludu u mbagħad l-isem librerija. Iżda fl-Għan C inti sejħa dik l-importazzjoni. Bażikament tgħid funzjonalità, ismijiet biss differenti. U l-kordi huma attwalment ftit stramb. Tista 'tara li l-ewwel ħaġa li huwa tip ta stramb huwa li inti għandek pretty weird-- sorry-- għandek NS pretty stramb sinjal minn hawn. U t-tieni ħaġa thats it-tip ta stramb qed ikollok fuq sinjal qabel attwalment tiddikjara l-sekwenza. Allura l-fuq sinjal bażikament ifisser li string mhix biss string, huwa attwalment oġġett. Aħna ser jispjegaw li aktar tard sabiex ma paniku jekk inti ma jifhmu dak li tfisser. U l-istampar għall-console huwa ftit differenti għaliex fit C nitolbu printf, iżda fl-Għan C nsejħu [inaudible]. Inti jista 'jistaqsi x'inhu dak. Dan huwa bażikament printf, biss lingwa differenti. Eżattament l-istess użu, eżattament l-istess funzjonalità. Ukoll jirriżulta li Għan C attwalment Has ns prefiss fi kważi kollox, kull tip ta 'data bażika, nsstring, nsarray, nsdictionary. Ir-raġuni hija li ns attwalment stands għall-Pass li Jmiss, li hija kumpannija li Steve Jobs bbaża, li hija kumpannija fejn l- lingwa Għan C titwieled. Allura dan huwa bażikament tradizzjoni. Naf huwa ftit stramb, imma hija Apple. Allura xi ħaġa li huwa saħansitra weirder minn dak hija dikjarazzjoni funzjoni. Dan huwa differenti ħafna minn dak li aħna tara fil C, għaliex hawnhekk huwa attwalment ma look like C jibqgħalu. Dak li għandek here-- mill- mod din mhix punt bulit, dan huwa sinjal minus. Għandek parentesi sinjal minus vojt u mbagħad l-isem funzjoni. Ejja ngħidu biss jekk aħna jkollhom bonjour dinja, allura it-tip ta 'ritorn se jkun null għaliex aħna ritorn xejn. Dak gets verament stramb hija li meta int li jkollhom aktar minn parametru wieħed tgħaddi ġo istess funzjoni li se tkun verament stramb kif muri hawn. Għandna l-isem metodu, imsejħa addInt għal [inaudible] u aħna qed tgħaddi parametru wieħed. Iżda wara dan, aħna jkollhom aktar isem Metodu sejħa bil. U wara ma we qed tgħaddi it-tieni parametru. Dan huwa attwalment ftit stramb, iżda dawn id-dikjarazzjonijiet tal-funzjoni kollha isegwu l-istess mudell bħal dan. Għandna sinjal minus biex tibda bil. Is-sinjal minus jista 'jkun sinjal plus kultant ibbażati fuq liema tip ta 'metodu huwa. Metodu huwa bażikament isem ieħor għall-funzjoni. U aħna qed tmur biex jispjegaw dan aktar tard meta aħna qed jitkellem dwar oġġett programmazzjoni orjentati. Inti l-ewwel tispeċifika r-ritorn tip parentesi ġewwa, wara li taqa l-isem metodu. Inti tgħaddi parametru wieħed. U jekk ikollok parametri aktar għandek bżonn biex testendi l-isem metodu u bażikament jiktbu xi ħaġa aktar hawn. Dan jista 'jkun xi ħaġa li trid. Fil-każ tagħna huwa ma. Iżda int tista 'tgħid il-għan, jew jew, jew abc bar sħiħa, tkun xi tkun trid. U allura wara li int tgħaddi parametru b. Din hija verament stramb konvenzjoni iżda aħna ser tara għaliex Apple riedu biex tagħmel dan malajr ħafna. Allura kif taħseb li sejħa funzjoni? Sejħat funzjoni f'Oġġettiv C huwa differenti wkoll minn C. Attwalment, sejħa funzjoni fil Għan C huwa aktar simili qed tkellem lil xi ħadd. Hawnhekk għandna awto, li huwa msejjaħ oġġett. Inti bażikament javżak l- joġġezzjonaw awto li jgħidu "Hello World!" Dan huwa kif jsejħu l-funzjoni. Oġġett u isem metodu kkombinati ma 'xulxin. U dan huwa fejn l-estensjoni stramb għall-isem il-metodu verament tidħol fis-play. Ejja nħarsu lejn l-tieni eżempju. Aħna biss definita metodu msejjaħ addInt ma blah blah blah. Allura f'dan il-każ meta qed iċċempel li [speċifika? messaġġ?] li għaddej lill-dehra addInt awto: 10 bi: 2. Din tinstema 'qisha Ingliż. Għalkemm il-funzjoni Dikjarazzjoni funzjoni huwa stramb, il-punt ta 'l-Għan C mudell dikjarazzjoni metodu, hija li meta inti qed iċċempel il-funzjoni jew il-metodu se ħoss bħal attwali Ingliż. Allura huwa ħafna intuwittivi ladarba inti tikseb fis dan. Speċjalment f'dan il-każ, fejn inti tista bażikament jara li l-isem funzjoni huwa tip ta 'jiddokumentaw innifsu. Inti ma għandekx bżonn xi aktar spjegazzjoni biex tara x'inhi eżattament jiġri, dak li eżattament parametru wieħed isir. Li jmur oltre dak, ejja nitkellmu ftit ftit dwar oġġett orjentati programmazzjoni. Għan programmazzjoni orjentata hija wieħed mill-ipprogrammar fundamentali tekniki jew mudelli li hija użat mill-Objettiv C. Għan C huwa msejjaħ Għan C, mhux C, għal raġuni verament tajba. Allura qabel we jsibu rwieħhom Sintassi Għan C, Ejja verament malajr tħares lejn x'inhi eżattament oġġett. Imxejna probabbilment jsir xi ħaġa bħal oġġett qabel, li huwa msejjaħ il-Struct meta inti implimentazzjoni ta 'siġra jew lista marbuta jew [? tipprova. ?] Għalhekk, huwa bażikament bħal Struct, imma hija ferm aktar b'saħħtu minn dak. Oġġett jkollu metodi u proprjetajiet. Metodi huma bażikament funzjonijiet. Bażikament funzjonijiet li speċifiċi għal ċertu oġġett. U l-proprjetajiet huma bażikament l- qasam inti tispeċifika fil-Struct. Allura għal kull oġġett wieħed għandna xi proprjetà li għandha xi varjabbli li huma speċifiċi għall-oġġett. U aħna għandna xi funzjonijiet li huma wkoll speċifiċi għall-oġġett. U l-funzjonijiet huma msejħa metodi u l-varjabbli huma msejħa proprjetajiet. Huwa biss l-isem fancy. Filwaqt li inti fatt, kull fehma waħda tara waqt li inti tiftaħ app IOS, ejja biss jgħidu Twitter jew Facebook, kull fehma waħda li inti tara huwa oġġett. U anki l-app kollu huwa oġġett biex jibdew bihom. Kunċett interessanti ħafna. U għaliex irridu oġġett programmazzjoni orjentati? Allura tista 'timmaġina li meta inti programm jiġrilha pretty ikkumplikata. Ejja ngħidu biss meta int implimentazzjoni chessboard, il-loġika se jiġu verament ikkumplikata. Inti għandek 36 differenti biċċiet, b'tali mod li jekk inti jridu jiktbu loġika għal kulħadd 36 biċċiet differenti fil-ċess, li għaddej biex jkun hemm ħafna ta ' funzjonijiet u varjabbli differenti. Huwa ħafna problemi. U probabbilment int ser jiktbu metodu jew funzjoni differenti differenti għal kull wieħed mill-biċċa li eżattament jikkontrollaw dak li jagħmlu. Imma jekk inti tagħmel oġġett orjentati lejn ipprogrammar, kollha ta 'dawn il-biċċiet jistgħu jiġu estratt fis wieħed oġġett wieħed. U l-oġġett se jkollhom xi komuni proprjetajiet, bħall liema tip ta 'biċċa huwa? X'inhu kulur huwa dan? Kif tista 'timxi? U f'dak il-mod inti għandek ħafna simplifikata l-loġika ta 'dan. Allura huwa biss mod verament tajjeb biex jagħmlu programmi kumplikata, u r-relazzjoni ġerarkika fi ħdan il-programm, sempliċi ħafna. Kif aħna qed tmur biex tara għaliex malajr ħafna meta aħna qed fil-fatt jagħmlu programming-- meta aħna qed attwalment tagħmel kodiċi S sessjoni programmazzjoni aktar tard. Ukoll b'żieda ma 'dik, oġġett orjentati lejn programmazzjoni huwa biss ta 'gost. You ltqajna biex disinn oġġett tiegħek stess. You ltqajna biex jiddisinjaw x'jinkludi look like mill yourself. M'hemm l-ebda dritt risposta għaliha. U huwa totalment interessanti. Allura fil-għan orjentati ipprogrammar, żewġ kunċetti fundamentali se tkun tal-klassi u eżempju. A klassi hija bażikament mudell għall-oġġett. U eżempju hija bażikament oġġett speċifiku wieħed. Ejja ngħidu biss int tagħmel cookie. F'dan il-każ, kull waħda cookie inti attwalment jispiċċaw ma ' se tkun oġġett. Iżda l-pjanċa cookie li tuża biex bake l-cookies se jkun klassi. A klassi hija bażikament template. U l-eżempju se jkun speċifiku wieħed oġġett maħluq minn dik il-klassi. U eżempju ser ikunu maħluqa ibbażati fuq id-dikjarazzjoni tal-klassi, kif se naraw fil slajds aktar tard. Mela ejja fil-fatt jagħmlu verament Eżempju quick [inaudible]. Ejja ngħidu aħna qed tiddikjara oġġett għal qattus. L-oġġett għandu have-- il-klassi qattus għandu għandhom xi proprjetajiet u l-metodi. Liema tip ta 'proprjetajiet għandu l- klassi have-- għandu l-qattus għandhom? Per eżempju, kulur, età u razza, dawk Se jkun varjabbli li huma speċifiċi għal kull qattus. U dawk huma xi affarijiet li nużaw biex jiddeskrivu qattus. Liema tip ta 'metodu, jew dak li jista qattus tagħmel? Xi eżempji ta 'malajr ikun chase ġurdien, jieklu ħut jew biss meow. Din hija tassew mgħaġġla Eżempju tal-klassi qattus. U verament speċifiku oġġett qattus se jkun qattus fejn aħna tispeċifika l- kulur, l-età u r-razza. F'dak il-każ, oġġett tagħna huwa m'għadux klassi jibqgħalu. Aħna kopja tal-mudell mill-klassi u aħna speċifika kull informazzjoni speċifika biex dak l-oġġett speċifiku li jagħmilha indipendenti. U meta inti qed iċċempel metodu ġewwa oġġett, inti biss sejħa meow fuq l-oġġett, li hija l-qattus inti biss maħluqa. Probabbilment inti se print out xi ħaġa bħal "Hello dinja! Meow. " Pretty ħelu. Kull dritt, ejja biss jsibu rwieħhom xi dettalji u ara dak eżattament ma dik tittraduċi fis-benesseri programmazzjoni IOS. Għalhekk fl IOS programmazzjoni kull wieħed u klassi se jiġu implimentati f'żewġ fajlijiet. Fajl Wieħed huwa hawnhekk, li huwa msejjaħ l-interface. Fajl ieħor hija hawnhekk, li huwa msejjaħ implimentazzjoni. Tipikament l-interface se jkollhom extension.h kif rajna fil-libreriji Ċ. U l-fajl implimentazzjoni huwa ser ikollhom extension.n. Huwa tip ta 'stramb. Iżda ifisser .n attwalment .c, m'hemm l-ebda differenza fundamentali bejn dawk tnejn. Allura f'dan il-każ, nistgħu naraw li aħna qed tiddikjara interface, Cat: oġġett. Li tissejjaħ wirt. Aħna qed bażikament jiret il- klassi qattus mill-klassi oġġett. Allura kull proprjetà u l-metodu li kien preċedentement definiti fil-klassi oġġett Se jiġu definiti awtomatikament fi klassi qattus kif ukoll. B'żieda għal dan, aħna jiddefinixxu kulur, razza, u l-età, tliet varjabbli. Li attwalment tidher qiesha xi ħaġa li għamiltu qabel. Jidher qisu Struct. Dan huwa bażikament l-sintassi għal dikjarazzjoni Struct, u li hija totalment korretta. U peress semmejt qabel, id-differenza ta 'Struct u oġġett, wieħed mill- differenzi fundamentali hija li oġġett ikollu metodu, filwaqt li Struct biss għandha varjabbli. Allura minbarra l-proprjetajiet jew varjabbli konna maħluqa għall-oġġett, aħna jispeċifikaw xi metodu. Ejja ngħidu biss hawnhekk għandna żewġ metodi, wieħed huwa meow, ieħor huwa ġurdien chase. Aħna probabbilment tixtieq li tkun tgħaddi parametru ibbażati fuq il-metodu preċedenti tagħna mudell dikjarazzjoni. Inti probabilment tixtieq li tkun tgħaddi ġurdien. U inti probabilment jridu biex jirritornaw jfisser BOOL jekk qattus tiegħek b'suċċess qabad il-maws jew le. Dan huwa l-interface, iżda nistgħu tara li l-interface attwalment ma tagħmel xejn. Hija biss jgħidlekx programm liema exists-- dak li jeżisti fil-klassi qattus. Allura sabiex il- programm biex tagħmel xi ħaġa, għandna bżonn li jkollhom fajls ta 'implimentazzjoni. Allura hawnhekk, l-ewwel ħaġa li għandna nagħmlu huwa ovvjament aħna l-importazzjoni l-interface. Wara aħna l-importazzjoni l-interface, niddefinixxu l-metodu. Ejja ngħidu biss hawn meow kien biss jistampa "Hello World!" mal-console. U wara l-implimentazzjoni fajl, aħna qed pretty ħafna jsir. Dan huwa bażikament klassi dikjarazzjoni għal klassi waħda. Allura issa l-mistoqsija ssir, kif taħseb li tiddikjara varjabbli? Il-mod inti tuża klassi biex tinħoloq oġġett fil Għan C huwa miktub hawn. Inti l-ewwel jispeċifikaw li dan huwa pointer qattus, għaliex kull oġġett fil Għan C tiġi finalment implementata bħala pointer. U inti sejħa-klassi, jsejħulhom kif ALLOC, li hi bażikament malloc, javżak-sistema operattiva li inti bżonn xi spazju memorja għal dan l-oġġett. Wara li inti għandek oġġett diġà u inti biss initialize dan. Dan huwa biss il-konvenzjoni. Naf huwa huwa ftit stramb, imma dan huwa attwalment kif Apple ma Jittieħed. Assenjar proprjetajiet qed attwalment pjuttost sempliċi. Huwa simili ħafna għal dak li qed tagħmel meta int tassenja xi speċifiku qasam ġewwa tal Struct. Inti sempliċiment għandek l-varjabbli isem, l-isem tal-proprjetà, u tassenja valur speċifiku għaliha. U ssejjaħ metodu huwa simili ħafna. Il ssejjaħ metodu huwa bażikament dak I jitkellmu dwar għal sejħa kwalunkwe metodu f'Oġġettiv C. Inti tgħaddi oġġett, fl F'dan il-każ li għaddej biex tkun myCat, u int tgħaddi l-isem metodu. Peress li jekk inti qed jitkellem għall-oġġett, myCat, li inti għandek meow. Huwa pretty interessanti. Wara dan, hemm wieħed mudell tad-disinn aktar essenzjali li għandna bżonn biex jitkellmu dwar qabel ma jkollna l-kodiċi attwali S. Li mudell tad-disinn huwa msejjaħ avveniment programmazzjoni misjuqa. Din hija wkoll probabilment waħda mill-aktar ideat fundamentali fl-ipprogrammar IOS. Allura inti probabilment ma tafx x'inhu eżattament huwa l-ipprogrammar misjuqa avveniment, iżda mhuwiex verament dak scary. Ukoll fil-fatt, inti għandek diġà għamlu dan qabel. Din hija waħda mill-linji inti stajt probabilment diġà bil-miktub fl-aħħar [inaudible] ta CS50, google.maps.event.addListener (markatur, "Ikklikkja", il-funzjoni () {}) :. Billi ċċempel din il-linja inti essenzjalment javżak il-kompjuter li kull meta l-avveniment imsejjaħ "Ikklikkja" jiġri fuq il-markatur, jużaw dik il-funzjoni. Dan huwa differenti ħafna minn dak li inti tagħmel fil mario.c. Fil mario.c inti biss tmexxi l-programm ladarba, tagħtik output, u qed isir. Dawn huma tip simili programmi sparatura waħda. Programmi misjuqa Avveniment huma ħafna, differenti ħafna. Ejja jimmaġina, jekk Facebook huwa wieħed programm shot mhuwiex verament tajba. Inti biss jmorru għall Facebook darba dan isir. Dan jagħtik xi output u int qatt ma ltqajna lura. Inti qatt ma ltqajna xejn aktar. Allura hawnhekk, speċjalment il-mudell nużaw hija avveniment misjuqa, b'tali mod li kull funzjoni se jinqabdu ibbażati fuq dak avveniment ġara. Per eżempju, jekk ikollna buttuna u aħna jispeċifikaw li kull meta dik il-buttuna hija għafast, sejħa tal-funzjoni msejħa "Hello World!" B'dan il-mod nistgħu verament jamministra l-loġika funzjoni fluss b'mod flessibbli ħafna. L-utent tista 'tagħmel jew sejħa funzjoni li diġà ġie msejjaħ. Huwa kompletament ibbażati fuq liema utenti do. Allura nistgħu naraw li dan huwa fil-fatt ħafna aħjar minn mario.c. U aħbar tajba hija li huwa attwalment mhux kunċett ġdid. You guys diġà għamlu li fl-aħħar problema sett. Allura fl-Għan C hemm tliet dijagrammi differenti għall-ipprogrammar misjuqa avveniment. L-ewwel dijagramma huwa imsejħa azzjoni fil-mira, fejn inti torbot buttuna istampa ma 'xi funzjoni. Ejja ngħidu biss, kull meta inti ikklikkja xi buttuna, inti sejħa xi funzjoni. Dan huwa l-azzjoni fil-mira sempliċi ħafna. It-tieni waħda hija attwalment l-agħar wieħed, huwa msejjaħ delegazzjoni fuq protokoll. Aħna ser jispjegaw li f'dettall kbir aktar tard. U t-tielet mod huwa notifikazzjoni. Dan huwa attwalment mhux importanti ħafna safejn kif aħna qed kkonċernat, għax iċ-ċans li int ser tuża notifika fil-proġett finali tiegħek hija pjuttost baxxa. Allura aħna qed tmur biex skip dik il-parti. U aħna qed tmur biex adsa fis delegazzjoni fuq protokoll. Allura x'inhi eżattament huwa protokoll? Jew x'inhi eżattament delegazzjoni? Ejja nitkellmu dwar protokoll biex jibdew bihom. Protokolli huma xejn imma l-avvenimenti. Iżda dawn l-avvenimenti huma mogħtija lil inti minn Apple biex tibda bil. Per eżempju, jien ma kompletament ċert kif ħafna minnkom guys jużaw Apple oriġinali mail app jew kuntatt, imma kull darba li inti iscroll l- mejda u agħfas il-phone speċifiku fuq il-mejda, li huwa avveniment. U jekk inti tixtieq li tagħmel F'dak il-każ minnek, huwa attwalment ftit iebsa. Allura Apple peress illi anki lilek sabiex inti tista 'biss direttament tuża l-avveniment li jagħmel xi ħaġa fuq tiegħek. Protokolli huma attwalment tassew, tassew użati ħafna fl-Għan C. Well fl fatt, kull app wieħed għandu xi ħaġa maqbuda delegat app. Ġewwa l delikat hija kollha ta 'l- protokolli biex jitgħabbew il app. Ejja ngħidu biss m'hemm avveniment għal app għamlet tagħbija. Allura dak li għandu jiġri wara inti stajt ħolqot app, wara li inti tiftaħ il-app, wara inti qrib il-app, jew wara inti tpoġġi l-iPhone biex torqod. Dawn huma avvenimenti kollha li għandha diġà ngħatat lilek. U oriġinarjament ġewwa dawn il-partiċelli se jkun hemm ebda implimentazzjoni. Apple biss qallek li din il-funzjoni se jiġri meta jiġri xi avveniment, imma dak li inti tagħmel ma 'dak funzjoni huwa kompletament sa inti. Delegazzjoni hija bażikament javżak il-klassi li inti għandek jimmaniġġjaw dawn il-protokolli. Huwa daqsxejn ftit konfużjoni, iżda se tkun ħafna iktar ċara meta nagħmlu il-kodiċijiet i fl-azzjoni. Delegazzjoni fuq protokoll huwa attwalment mekkaniżmu robust ħafna fis-sens li jekk nagħmlu delegazzjoni għal klassi speċifika, nistgħu essenzjalment jimmaniġġaw kull tip ta 'avvenimenti tuża kwalunkwe klassi għandna, għodda konvenjenti ħafna. Allura eżempju wieħed ta 'malajr għall- delegazzjoni fuq protokoll se jkun dak I biss tkellem dwar. Dan il-protokoll speċifikament tissejjaħ tableview [inaudible] irwol tagħżel fi [? Indiċi?] [? passat. ?] Allura dan xi F'każ li tkun maqbuda meta inti attwalment vit fuq speëifiku ċellula fil tableview tiegħek, ejja biss jgħidu fil-posta tiegħek jew fil-kuntatti app tiegħek. Ġewwa funzjoni kien hemm oriġinarjament tagħmel xejn. Il-funzjoni ma tagħmel xejn fil-kontumaċja. Iżda int tista 'tispeċifika dak l-funzjoni ma, mogħti dak li trid mill-app tiegħek. Għodda konvenjenti ħafna. U b'dak kollu li being said, I bażikament ikopru wħud sintassi bażika ħafna u kunċett fundamentali għall-Objettiv C programmazzjoni, u nistgħu nagħmlu xi kodiċi s. Ħafna aktar eċċitanti. Allura kodiċi s huwa attwalment ftit daqsxejn qawwija meta inti tiftaħ lilha għall-ewwel darba. Wieħed innota malajr, hekk jekk inti trid tagħmel l-iżvilupp IOS, I jirrakkomanda ħafna li inti għandek Mac. Minħabba tagħmel żvilupp IOS fuq Windows hija tassew, tassew iebsa. Huwa doable, imma huwa verament diffiċli. U inti definittivament tagħmel ma tridx li jużaw g jeditjaw. Allura fil-kodiċi s għandna diversi oqsma differenti. Meta inti l-ewwel tiftaħ s-kodiċi se tara żona navigazzjoni, li bażikament turi li inti l- fajls li huwa fil-proġett attwali tiegħek. Għandek żona toolbar, li hija bażikament ġestjoni fehmiet, jew xi ftit quick għodod dwar kodiċi s innifsu. U dan huwa l-qasam editur attwali. Dan il-qasam huwa g teditja simili ħafna, iżda ħafna aħjar minn g jeditjaw. U f'dan il-qasam id-dritt, huwa imsejjaħ il-qasam utilità. Iż-żona isir verament handy meta int ħolqien interface jew li tispeċifika xi setups malajr għall app tiegħek. U l-erja finali huwa l-debugging. Dan il-qasam fih l-console. Allura kull meta inti tgħidli printf, jew nslog fil-każ tagħna, riżultati kollha tiegħek huma ser jiġu stampati hawn. Kull dritt? I raden nistgħu verament malajr jagħmlu eżempju għall-ipprogrammar IOS. U ejja fil-fatt jiftħu s-kodiċi. Allura kull darba li inti tiftaħ i kodiċi, huwa ser juru up xi ħaġa bħal dik. Li għaddej biex nitolbuk dak li tridu li tagħmel? Do inti tixtieq li tibda xi ħaġa każwali, bitħa, inti bażikament tista 'biss jittestjaw kodiċi mingħajr attwalment b'impenn għal kwalunkwe app. Do inti tixtieq li joħolqu proġett ġdid? Jew tridu li tkompli jaħdmu fuq il-proġett eżistenti? Fil-każ tagħna aħna qed tmur li jinħoloq proġett ġdid. Allura huwa tassew sbieħ, i kodiċi attwalment diġà tak xi templates għall-ħolqien oġġetti. Jekk inti tixtieq li tagħmel logħba, i kodiċi attwalment għandha template logħba għalik, għandha l-applikazzjonijiet page bbażati, tab bbażata l-applikazzjoni. F'dan il-każ, aħna qed tmur biex tagħmel xi ħaġa sempliċi ħafna, u aħna qed tmur biex tuża applikazzjoni fehma waħda. Wara li biss dak li inti tixtieq li sejħa prodott tiegħek, u x'hemm isem tiegħek, x'hemm identifikatur tiegħek, u f'liema lingwa tuza. Hawnhekk aħna ma rridux li iċċekkja jużaw Core Data. Core Data hija bażikament databasing IOS. Jekk inti tagħmel Core Data, i kodiċi se tiddefinixxi lott klassijiet aktar ikkumplikati għalik. Allura biex iżommu kollox sempliċi, aħna qed biss se tagħmel mingħajr Core Data dritt issa. Il-problema aħna qed tmur biex tkun użu huwa that-- l-problema aħna qed tmur biex tkun ħolqien hu li aħna bażikament tixtieq li l-importazzjoni Mario minn C għal app IOS. Mela ejja sejħa li Mario-IOS. Of course inti tispeċifika dak li inti tixtieq li tqiegħed fil-proġett tiegħek. U hemm immorru. Allura dan huwa ftit kbira, iżda dan huwa attwalment dak li aħna biss raw fuq il-pjastri. U l-ewwel qasam naraw dritt issa hija bażikament konfigurazzjoni proġett. Allura kollox inti tixtieq li tagħmel proġett, liema tip ta 'mezz, ejja biss jgħidu liema tip ta 'apparat tridu app tiegħek li jidhru fuq? Huwa iPhone, iPad jew universali? Allura orjentazzjoni mezz, dan kollu Jittieħed. Mhux importanti ħafna, imma jista 'jkun, iżda dan huwa post fejn inti twaqqaf proġett tiegħek jekk inti fil-fatt tixtieq li tuża għall-maħżen Apple. Kull dritt, ejja nħarsu lejn xi ħaġa li huwa ġewwa kodiċi tagħna. Ejja jgħaddu mill-navigator fajl. U dawn huma kollha l-fajls li diġà daħal mal-mudell, sbieħ ħafna. Allura meta aħna ikklikkja waħda minnhom dan huwa dak li jidher qisu. Simili ħafna għal g jeditjaw. Iżda int tista 'tara li l- sintassi tenfasizza huwa probabbilment ftit nicer. U huwa attwalment ħafna aktar b'saħħtu minn g editjar. U inti tista auto komplet ħafna affarijiet għalik, kif se naraw malajr ħafna. Ejja tiftaħ il-qasam debugging kif ukoll. Kull dritt, kif nistgħu naraw, il-console huwa dritt hawn. Dan huwa dak li inti qed tmur biex tara fejn int fil printf jew nsloging xi ħaġa. Allura mingħajr aktar dewmien, ejja fil-fatt jikkompilaw l-app u tara x'jiġri. Wieħed karatteristika essenzjali għall kodiċi s, huwa dan il-kodiċi s jiġi ma 'simulatur iPhone. Allura inti m'għandekx bżonn li jkollhom iPhone li jippruvaw proġett tiegħek, kodiċi s tista jissimulaw li għal inti, bħala nistgħu naraw dritt issa. Huwa pretty sbieħ. Huwa jieħu ftit ftit ta 'żmien biex jikkompilaw u bażikament għandna applikazzjoni vojta, li attwalment ma xejn. Iżda huwa jikkompila. Huwa pjuttost tal-biża. Huwa ħafna aħjar minn C, huh? Kull dritt, allura ejja tipprova żżid xi ħaġa. Fajl wieħed li huwa ftit stramb hawnhekk huwa msejjaħ storyboard. Dan huwa attwalment kbir, Karatteristika tal-biża għall-kodiċi s. Minħabba fil-kodiċi s, inti tista 'attwalment drag u qatra l-elementi fuq l-interface u se juru up direttament. Ejja nippruvaw dan. Aħna qatra tikketta hawnhekk, "Hello World !!!" Nistgħu center dak. Pretty jibred. Issa ejja run din simulazzjoni stop. Hawnhekk għandna "Hello World !!!" Aħna lanqas biss tagħmel xi kodifikazzjoni s'issa. X'inhu l-Heck li qed jiġri? Dan huwa kif qawwija Interface bennej jista 'jkun. Xi ħadd anke qal li probabbilment inti tista 'sempliċement tlesti app mingħajr kitba probabbilment elf linji ta 'kodiċi biss billi tuża l-bennej Interface. Iżda huwa probabbilment mhux l-aħjar mod biex tagħmel dan. Issa ejja fil-fatt tikseb l isfel għall-kodifikazzjoni. Allura l-istruttura għall-fajl huwa attwalment verament interessanti għaliex, kif inti tista 'tara, hemm l-ebda funzjoni prinċipali kullimkien. Ara? Kif aħna imsemmi qabel, inti tista 'tara li dan huwa fajl implimentazzjoni għal klassi speċifika. Imma m'hemm l-ebda imkien prinċipali. Għalhekk, fejn hija prinċipali? Attwalment, hemm ewlenija, iżda l- prinċipali hija attwalment moħbija mill inti. Il-prinċipali hawnhekk. Li jistenna familjari. Allura bażikament dak IOS qed tagħmel ġewwa prinċipali huwa li kull meta prinċipali huwa imsejħa, li hi bażikament kull meta l-app hija esegwita, dan joħloq oġġett imsejħa AppDelegate. Kif semmejt qabel, l kollu app huwa attwalment oġġett minnu stess. Allura f'dan il-mod, bażikament il- app IOS huwa javżak il-kumpilatur li OK, jien ser joħolqu prodott imsejjaħ AppDelegate, u li se tkun app tiegħi. Allura għandek bżonn biex tmur permezz ta 'dak AppDelegate u ara dak li qed jagħmel dak Guy. Ix-xogħol tiegħi isir għalija. U fil AppDelegate tista 'tara li hemm xi funzjonijiet verament stramb, sew fil-fatt il-metodi, li Apple diġà tak. Liema huma dawn? Dawn huma attwalment biss protokolli li kien I jitkellem dwar. Allura dawn huma avvenimenti li Apple tak biex jibdew bihom. M'hemm xejn f'xi tal-funzjonijiet dritt issa, imma jekk irridu li initialize xi ħaġa għal app tagħna qabel ma jkollna fis wiri kwalunkwe fehma, aħna nagħmlu dan hawnhekk. Tista 'biss taqra l-isem u I raden l-avveniment huwa attwalment verament ċara. Allura issa prinċipali ħoloq oġġett għall AppDelegate. U dak AppDelegate huwa se jagħmel huwa attwalment moħbija wkoll mill inti. Il AppDelegate se jibda tagħbija tal-istokk ViewController. Allura huwa bażikament ser tibda tagħbija sa l-opinjonijiet li għandek u biss jirrendi l-fehma ibbażata fuq il-ġerarkija. Allura f'dan il-każ aħna biss perspettiva waħda, li huwa hawn. Allura dan huwa l-uniku fehma li għaddej biex tkun imsejħa. Il-loġika ViewController huwa dritt hawn. Dan huwa l-kodiċi li attwalment jikkontrolla l-fehma aħna biss raw. Kull dritt, ejja nagħmlu xi ħaġa hawn. Allura viewDidLoad ħsejjes bħal avveniment, meta fil-fatt dan huwa wkoll delegat, dan huwa wkoll il-protokoll. Allura x'ikun il-fehma hija mgħobbija, kollox ġewwa l-funzjoni se tkun imsejħa. F'dan il-każ għandna naraw "Hello Tianyu! "Jekk aħna tmexxi l-programm. Huwa jkollna ftit kajman kkompilati files storyboard. Well tabilħaqq, we do tara output għal dan. Huwa pretty jibred. Issa ejja fil-fatt jagħmlu Mario. Jien ser jiddefinixxu l- jiffunzjonaw malajr ħafna. marioWithLevels: riżultati (int) livell għoli. Kull dritt, dan huwa effettivament il-biża karatteristika ta 'kodiċi s auto-tlestija. Allura meta inti tikteb u t-tip jidħol, hija diġà rrinunzjaw il-template ghalik, li huwa pretty jibred. Dan għandu tfittex verament familjari inti guys. Jiddispjacini, dak tort tiegħi. Dritt Kollha, berred. Li l-loġika għandha tfittex verament familjari li inti guys, speċjalment eżatt Mario. Iżda aħna issa se jistampa biex il-console kull wieħed ħin, għaliex irridu li b'xi mod jżommu rekord ta 'dak li aħna qed istampar. Aħna ser tuża l- jirriżulta b'xi wara, li juri l-istampar out tirriżulta għall-utent. Allura minflok we qed biss nslogging kollox, li aħna qed jaħżnu kollox fi riżultat sejħa funzjoni, iżda l-loġika hija eżattament l-istess. Wara aħna finitura dan, aħna biss print-riżultati tagħna. U hawn minflok ta 'stampar tiegħi isem, aħna qed tmur biex sejħa funzjoni. Ejja naraw x'jiġri. Oops, ovvjament. We do jkollhom sympathique ftit piramida out here. Dan huwa bażikament C, aħna qed biss timmanipula fejn inti sejħa funzjoni u kif ma funzjoni look like. M'hemm xejn differenti. Iżda dan huwa attwalment mhux eċċitanti ħafna hawn, għaliex aħna mhux qed jaraw xejn mill-app iPhone. Mela jekk inti fil-fatt ikollhom iPhone app-- jekk inti fil-fatt ikollhom id-dritt Mario IOS issa, int mhux ser biex tara xi ħaġa li tkun xi ħaġa li tagħmel ma 'Mario minħabba dawk kollha outputs ġo console huma moħbija mill-utent. Dan huwa dak li tara, li huwa "Hello World !!!" Mhux tajjeb. Issa ejja jippruvaw jagħmlu l-utent jara dak eżattament aħna qed istampar out. Allura aħna ma bżonn li tikketta jibqgħalu. Ejja nippruvaw u figura xi ħaġa inkella li jista 'jkun utli. Hemm attwalment wieħed element li tissejjaħ qasam tat-test, li jista jkun utli ħafna għalina. Bażikament juri reġjun ta 'test li jistgħu jiġu editjati. Allura li jistenna verament utli. Issa ejja drag u qatra. Ara naqra, aħna għandna ħsieb test fil-fehma tagħna, verament fancy. C'est ftit wisq kbar. Ejjew nagħmluha iżgħar. Poġġi dan fil-ċentru. Jagħmluha iżgħar kif ukoll. Issa għandna ħsieb test, li nistgħu jintużaw biex juru riżultat finali tagħna. Imma issa dritt huwa żgur li mhux se taħdem għaliex hemm no-- l ViewController aħna biss definiti ma kinitx taf li hemm ħsieb test hemmhekk. Għalhekk għandna bżonn li b'xi mod jorbtu l-fehma test aħna biss maħluqa bl-klassi li ġa magħna. Il-mod kif nagħmlu dan hu attwalment verament maġika. Allura jiftħu storyboard. Hemm [inaudible] speċjali imsejħa [? assistent?] [inaudible]. Meta inti ikklikkja dan, huwa ser tiftaħ żewġ fajls. Wieħed huwa klassi u l-ieħor hija fehma korrispondenti għal dan. Huwa ħafna, utli ħafna. U ejja biss tmur permezz tal-fajl .h. Kontroll, dan huwa [inaudible] loġika. Kontroll Istampa u drag l- fehma test fid-dikjarazzjoni. Aħna qed tmur biex sejħa dak outputView. Qabbad. Allura hawnhekk għandna ddikjarat ġdida proprjetà għall-klassi ViewController tagħna. U l-proprjetà l-ġdida huwa biss il-fehma test ħloqna fil-bini interface. Allura f'dan il-mod nistgħu aċċess l-informazzjoni kollha u timmanipula dak kollu li huwa ġewwa l-opinjoni output, li huwa tal-biża. Allura fil-kodiċi attwali tagħna, ejja nagħmlu xi ħaġa magħha. Allura dan iż-żmien meta ninsabu bħal istampar r-riżultat finali għall Mario, aħna qed fil mhux qtugħ xejn. I jfissirx li aħna setgħux iżommu l-istqarrija qtugħ. B'żieda għal dan, aħna ibgħat il-qari aħna biss maħluqa għall-fehma output, li huwa UI textview aħna biss maħluqa. Issa ejja ara dak li jiġri. Ara naqra. Għandna piramida fil-app dritt issa. Allura l-utent jista 'jara l-output tagħna għaliex aħna kkupjati l-produzzjoni mill-kodiċi tagħna interface tagħna. Huwa pjuttost tajba. Huwa fil-fatt mhux li eċċitanti għaliex aħna can-- Kollha l-app qed jagħmlu qed turi piramida lilek, u hemm xejn li tista 'tagħmel dwar dan. Mhuwiex partikolarment eċċitanti. Allura issa ejja jagħmlu buttuna li se ċar il-fehmiet. Jidher li buttuna se jkun utli. Drag u qatra. Wieħed buttuna. Button tnejn. Allura meta aħna ikklikkja fuq ix-xellug buttuna, l-opinjoni għandha ċara. Għandu jkun hemm xejn fuq l-iskrin. U meta aħna ikklikkja l- buttuna dritt, Mario, l-opinjoni se jidhru mill-ġdid. Allura dan il-mod aħna wkoll jagħmlu l- Jittieħed magic, il-kontroll u drag għad-dikjarazzjoni tal-klassi fil-assistent director-- fil-telespettatur assistent. F'dan il-każ aħna qed tispeċifika li ma għandu jkun azzjoni. clearMario. Allura hawnhekk għandna diġà ħolqu azzjoni imsejħa clearMario, li huwa l-metodu li se jiġi mistieden kull meta aħna agħfas il-buttuna ċara. Għalhekk fl attwalment kodiċi tagħna, ejja biss jqiegħed it-test output u l-fehma output fi xejn, u li mod se jidher li jkun ċar. B'żieda għal dan, ejja joħolqu metodu ieħor imsejħa runMario. Oh sorry, dan m'għandux ikun proprjetà. Dritt Kollha, li għandhom tkun azzjoni kif ukoll. U meta dik il-funzjoni huwa imsejħa, aħna biss run Mario għaxra. Nisperaw li se jkun multa. Ma jikkompilaw? Iva. Issa għandna ħsieb. Għandna produzzjoni. U ejja biss tara x'jiġri. Li marret. Huwa lura. Allura hawnhekk għandna speċifikati liema tip ta 'funzjoni se jissejħu meta aħna tip fil xi ħaġa, meta aħna tagħfas buttuna speċifiku. Dan huwa bażikament l- iskema azzjoni mira għall-avveniment misjuqa programmazzjoni Għan C. B'żieda għal dan, mhuwiex eċċitanti ħafna għaliex aħna ma tistax verament tbiddel kif għoli l-piramida se jkun, hekk aħna probabilment tixtieq li b'xi mod tikseb input mill-utent u jibdlu l-għoli tal- piramida ibbażati fuq dak li l-output. Allura aħna qed tmur biex tagħmel dan. Allura dan iż-żmien meta aħna sejħa runMario, aħna ma biss sejħa Mario direttament. Titolu Dan wieħed. Delegat. Dan huwa interessanti ħafna. X'inhu delegat? Jien ser tpoġġi awto hawn. U aħna qed tmur biex tara dak li tfisser aktar tard. Allura hawnhekk għandna bażikament ħolqu eżempju speċifika msejħa allert UI fehma. Veduta allert UI huwa bażikament dak li inti ser tara kull pops xi ħaġa darba up u tistaqsi lilek għall-input, bħal dak li se jiġri meta inti qed tipprova li tixtri xi ħaġa fuq maħżen app. B'żieda għal dan, wara li inti joħolqu dan, aħna biss juru l-allert. Kull dritt, ejja biss malajr test li x-xogħol jew le se. C'est ħafna jibred. Issa ejja fil-fatt joħolqu qasam input għall-allert UI. Dan huwa kif nagħmlu dan. U għandna għandu jkollhom fehma input għall-allert. Ħafna jibred. Ejja ngħidu biss 10. Huwa ma tagħmel xejn id-dritt issa għaliex is-sejħa attwalment ma bidilx għall-eżekuzzjoni mario. Allura dan sar ftit daqsxejn stramb għaliex kulmeta aħna tagħfas buttuna isfel, kull meta aħna jagħfsu buttuna fil-fehma allert, xi ħaġa għandha jiġri, iżda ma jiġri. Kif nistgħu qabda li? Kif nafu li utent tkun ċaħdet veduta allert u diġà daħlu f'għadd, għaliex dritt issa xejn qed jiġri attwalment. Well, inti jista 'jkollok guessed dan id-dritt, id-delegazzjoni. Allura minbarra kollha dawn id-dikjarazzjonijiet, għandna bżonn li żżid delegazzjoni ġdida għall- huwa sejjaħ UI ħsieb allert delegat. Allura li kull waħda interazzjoni jew avveniment li aħna qed tmur biex ikollhom bil-ħsieb ta 'twissija UI se jiġu mmaniġġjati skond il-klassi kif ukoll tagħna. Għalhekk fl B'żieda għal dan, se jkun allert buttuna ikklikkja fehma fi indiċi. Dan jintlaħaq. Allura f'dak il-każ għandna already-- hekk aħna sab protokoll li se jimmaniġġjaw l-avveniment meta aħna ikklikkja l-buttuna Magħmul fuq il-fehma allert. Allura kull darba li aħna tiċħad l- fehma allert, dan għandu jiġri. Let me biss tittestja malajr ħafna. Well tabilħaqq, wasalna hawn. Allura hawnhekk, dak li aħna mhux se fil-fatt tikseb hija attwalment nikseb the-- Allura aħna tixtieq li toħroġ it-test li għandna preċedentement imdaħħla fil-fehma allert. U bbażati fuq it-test, aħna qed ser display Mario. Dan malajr ħafna jinstabx jekk din attwalment xogħlijiet jew le. Allura f'dak il-każ, jekk aħna input, ejja ngħidu, 10, għandna tara 10. Tajjeb ħafna, għandna numru hawnhekk. Huwa pjuttost tajba. Issa l-aħħar pass se be-- Allura l- aħħar pass għandna bżonn biex tagħmel id-dritt issa huwa biss sejħa Mario ma livell ibbażata fuq l-input li aħna poġġew fis-għan allert. Għalhekk għandna bżonn li jikkonvertu din is-sekwenza fis IOS. Overflow statiku huwa tal-biża ħafna. U allura aħna biss sejħa awto valur marioWithLevels. Ejja naraw se li attwalment jaħdmu jew le. Aħna qed diġà mogħtija piramida. Ejja jipprova jbiddel l-għoli. Li attwalment xogħlijiet. Huwa pretty jibred. Allura li issa inti tista 'sempliċement input xi valur li trid. Ejja ngħidu biss erbgħa. C'est pjuttost tal-biża. Allura dan huwa bażikament eżempju tassew mgħaġġla għal kif tinħoloq proġett fil-kodiċi s u kif verament malajr wajer up xi avvenimenti u l-funzjonijiet verament sempliċi. Allura l-sors ikun għaddej li jitqiegħdu online aktar tard. Mela jekk int interessat fil-mod kif IOS Mario xogħlijiet, Jien ser tpoġġi eżattament l-istess proġetti għal fuq il-websajt CS50 aktar tard. Aħna qed bażikament isir bl- sajf, u qabel we finish I biss trid punt inti guys biex xi riżorsi verament tal-biża li huma disponibbli online. Ovvjament id-dokumentazzjoni Apple se jkun ferm utli. Iżda minbarra dan, I speċjalment jirrakkomanda erba 'sorsi, kodiċi iskola, dar siġra, AppCoda u WWDC videos. Iskola kodiċi u dar siġra huma żewġ websajts Teduka onlajn, li jiffukaw speċifikament dwar l-inġinerija tas-softwer. Speċjalment għall-kodiċi iskola, huma jkollhom tutorja verament tajba fuq IOS. Dan huwa eżempju tassew mgħaġġla għal dan. Dawn fil-fatt joħolqu verament cute-- tħares lejn dak iPhone ftit ħelu raġel hemmhekk, huwa pjuttost tal-biża. U l-mod kif huma jispjegaw l-Objettiv Sintassi C huwa perfettament ċar. Dar siġra huwa l-istess. U AppCoda huwa forum. Huwa fil-fatt blog li kienet immexxija minn Objettiv C verament esperjenza programmer. U dawk kollha tutorials fil AppCoda huma pretty qasir u faċli biex jiġi implimentat, rakkomandat ħafna. U jekk int iżviluppatur, definitely go check kif l-videos WWDC fejn inti tista jitgħallmu dwar l-ipprogrammar IOS aħħar tekniki, APIs u libreriji. Allura dan huwa pjuttost ħafna lilha għall-seminar. Grazzi tant. U nispera li inti tieħdu gost ħolqien app tiegħek IOS stess.