[Powered by Google Translate] [Semina] [iOS: Uandishi Apps Kama Boss] [Tommy MacWilliam] [Chuo Kikuu cha Harvard] [Hii ni CS50.] [CS50.TV] Haki zote, kila mtu, kuwakaribisha kwa iOS: Uandishi Apps kama Boss. Semina hii ni kwenda kuzingatia kuandika programu kwa iPhone na kwa upande kuandika programu kwa iPad, na hivyo sisi ni kimsingi ya kwenda kutembea kwa njia ya wanandoa mbalimbali ya mifano ya jinsi ya kufanya programu, mchezo rahisi kama Tic TAC Toe, au kama wewe ni zaidi ya nia ya kufanya programu kama aina fulani ya habari msomaji au kitu ambacho inaingiliana na Internet nami majadiliano kuhusu kuwa vilevile. Hapa ni ajenda yetu fupi. Programu IOs yameandikwa katika lugha inayoitwa Lengo-C, na hivyo hii ni kidogo sawa na C lakini si kweli wakati wote, hivyo tutaweza kuwa na kuzungumza kidogo kuhusu lugha yenyewe na kisha jinsi ya kujenga Apps iPhone kutumia programu hii ya programu inayoitwa XCode, ambayo kama si kupakuliwa hivyo bado jisikie huru kuanza shusha sasa. Ni kadhaa gigabytes. Ni lazima kuwa huru juu ya Hifadhi App, hivyo itabidi haja ya kuwa na Mac walau mbio toleo la OS X. Kama huna, hakuna tatizo. Tuna Macs katika kituo cha sayansi inapatikana kwa matumizi yako na XCode imewekwa, na hivyo kujisikia huru kutumia hizo kwa maendeleo. Kama unataka kufanya App lakini hawana Mac, usijali. Kuna mengi ya rasilimali ya chuo kwa ajili hiyo. Na hivyo basi tunakwenda cover 2 mifano kubwa ya programu mbalimbali unaweza kufanya. Lengo-C ni utaalamu kile kinachoitwa kuweka super ya C. Hiyo ina maana kwamba yoyote code C pia ni halali Lengo-C code. Hiyo ina maana kwamba sisi aina ya duct taped juu ya baadhi ya vipengele ziada C. Baadhi ya makala haya ni pamoja na kutokuwa na milele kuandika malloc tena, kumshukuru Mungu, hakuna kuwa na wasiwasi kuhusu kuyatumia wale kijinga na kumkomboa yao na mambo ambayo yote wewe kuchukia kuhusu C, na ni aina ya wamekwenda katika Lengo C-. Sasa, Lengo-C pia ina kiwango kikubwa zaidi maktaba, hivyo kuna mengi zaidi funktionalitet kupata kwa ajili ya ndani ya bure ya Lengo-C. Kumbuka wakati tulikuwa kuandika PHP sisi niliona kwamba sisi akaenda kutoka lugha hii ndogo ya maktaba kubwa ya mambo hayo yote mambo unaweza kufanya. kitu kimoja kinachotokea katika iOS. Kuna vitu kwa ajili ya mambo kama kalenda Buddhist, na kwa kweli kitu chochote unaweza uwezekano kufikiria pengine ipo tayari katika utekelezaji Lengo-C ya. Lengo la sehemu Lengo-C ni referencing kitu kuitwa Object-Oriented Programming. Hii ni aina ya dhana mpya, lakini tumekuwa kweli zaidi ya kujifunza mengi ya dhana hizi tayari. Dhana Programming Object-Oriented ni kwamba utaenda kuunda mengi ya maadili yako karibu mambo haya kuitwa madarasa, na madarasa haya ni kweli kutukuzwa structs. Ndani ya struct sisi kimsingi alisema hapa ni kitu, na jambo hili linaweza kuwa na wanachama. Kwa mfano, nodi katika orodha wanaohusishwa inaweza kuwa na mambo mengine kama thamani, pointer nodi ijayo katika orodha, na pamoja kwamba pointer na kwamba thamani linajumuisha hii mfano mmoja wa struct. Madarasa ni sawa sana isipokuwa madarasa wanaweza pia kuwa kazi ndani mwao. Wakati sisi alitangaza struct, tunaweza kusema tu n int au * nodi ijayo. Sasa na Lengo C-tunaweza kweli kuweka majukumu ndani ya mambo hayo. Kitu kingine kwamba unaweza kufanya ni madarasa wanaweza kurithi data kutoka madarasa mengine. Kwa mfano, tutaweza kuwa na kuangalia rundo la kujengwa katika Lengo-C madarasa. Mmoja wao inaweza kuwa ya darasa kuwa inawakilisha maoni kwa screen, na hivyo kwa kusema nataka kutekeleza maoni yangu mwenyewe sisi kimsingi kusema mtu zaidi ya saa Apple, pengine kweli nice watu, aliandika darasa hili kwa ajili yangu, na Hushughulikia mambo majishauwo vifungo au utoaji screen, na sisi itakuwa kweli pained kutekeleza funktionalitet kwamba wote sisi wenyewe, na hivyo kwa kifupi kurithi data tunaweza kusema kila kitu kwamba alifanya katika darasa kwamba Mimi pia nataka ndani ya darasa langu, na kisha mimi naenda kufanya baadhi ya mambo mengine, yaani kutekeleza programu. Hiyo ni nini kuwa urithi maana ya neno. Tutaweza kuona mfano halisi zaidi. Na hatimaye, muhimu kwa Programming Object-Oriented ni kwamba inaongoza kwa encapsulation data. Katika baadhi ya tatizo letu sisi inaweza kuwa na seti hizi kubwa, vigezo kimataifa na globals kila mahali, na kwamba ni jinsi gani tunatarajia kuweka wimbo wa taifa. Pamoja na madarasa tunaweza kuanza encapsulating habari ndani ya kifaa. Kama tuna moja screen programu yetu, sisi si kweli haja ya kuwa na data yoyote kutoka mwingine screen katika ndani ya programu yetu ya kwamba, na hivyo kwa encapsulating mambo ndani ya madarasa kweli hii husababisha kwa kubuni bora zaidi kificho, na hii inawezekana kwa baadhi ya makala za ziada Lengo la C-. Forewarning, syntax kwa Lengo-C ni ndizi. Ni kama kitu tumekuwa kuona mbele, hivyo ni kidogo kidogo ya kujifunza Curve kupata kutumika kwa nini heck maana ya hii? Lakini mara moja kupata zamani kwamba awali kujifunza Curve ni kweli, kweli laini kuanza kuandika programu. Kutangaza darasa, kusema hapa ni darasa langu, ipo, na labda hapa ni baadhi ya mambo ambayo mimi nina kwenda kufafanua baadaye, Mimi nina kwenda kusema @ interface. Mimi nina kwenda kusema @ interface. Mimi naenda kukupa darasa langu jina. Na kisha baadaye mahali pengine mimi nina kwenda kusema @ mwisho, na kila kitu katika kati interface @ na mwisho @ ni kwenda kuwa darasa langu. Kwamba ni kwenda kuwa nini ndani ya. Yetu files h. Tu kama katika C yetu h. Files kimsingi alisema hapa ni baadhi ya mambo ambayo yapo. Mimi si lazima ninawaambieni wayatendayo bado, lakini compiler anahitaji kujua kwamba wao kuwepo. Baadaye ndani ya m wetu. Files-kwa sababu m kwa Lengo-C ni ambapo sisi ni kweli kwenda kufafanua nini hawa madarasa kufanya. Kiasi kama. Yetu files c, sisi zinazotolewa utekelezaji kwa ajili ya kazi. Ndani ya faili wetu. M tunakwenda kusema hapa ni nini wote wa kazi ndani ya darasa langu-nini wao wote kufanya. Na hatimaye, ndani ya struct tunaweza kusema ndani ya braces wale curly int n au nodi * ijayo, na katika Malengo ya C-tunakwenda kutumia Keyword @ mali, na hii ni nini kinaendelea kufafanua mali, au kazi zisizo kuwa ni sehemu ya madarasa yangu. Wito kazi katika Lengo-C ni pia ndizi. Wakati sisi alitangaza kazi katika C sisi alisema kitu kama int foo na wazi Paren na kisha akampa orodha ya hoja. Hii ni nini kutangaza mbinu au utendaji inaonekana kama katika Lengo C-. Kama mimi nataka kutangaza kazi au njia ambapo mimi kusema mbinu ni kweli tu kazi hiyo ni mwanachama wa darasa, hivyo aina ya kubadilishana, lakini si kweli, hivyo ndani ya njia yangu mimi wanataka kujenga njia mpya. Ni kwenda na kurudi kitu, hivyo ni kwenda kuwa ya utupu aina. Hii ni aina ya kurudi kwa kazi yangu. Sasa tuna parens hapa kwa sababu-sijui. Next ni kwenda kuwa jina ya kazi yangu, na kisha hatimaye tuna semicolon tu kama sisi tulikuwa katika C. Nini mpya hapa ni guy hii hapa. Hyphen Hii ni kweli ni lazima, na nini hii inasema ni kwamba njia hii hapa lazima wito kwa mfano wa darasa. Baada ya sisi alitangaza structs yetu sisi pengine alisema kitu kama struct nodi n, na kwamba aliumba au instantiated mmoja wa wale structs ili niweze kweli kuanza kufanya kazi na nini ndani yake, hivyo dash hii ina maana kwamba tuna instantiate darasa tu like sisi instantiated kwamba struct kabla tunaweza kuwaita njia hii juu yake. Kama mimi nataka kuanza kuongeza hoja kwa njia yangu anapata ndizi hata zaidi. Hapa ni njia yangu jina. Kisha mimi naenda kuwa koloni, na baada ya koloni hii inasema hapa inakuja hoja fulani. Njia hii inachukua moja hoja. aina ya hoja yake ni int, na jina la hoja kwamba au variable kwamba mimi nina kwenda kuanza kutumia ndani ya njia ya inaitwa i. Tena, hii ni mbinu. Inachukua moja hoja. Kama unataka kuanza kuongeza hoja zaidi ni anapata ndizi zaidi kwa kuwa tuna hii koloni kwamba anasema hapa inakuja orodha yangu ya hoja. Hoja hii ya kwanza ni integer. Sasa, hoja hii ya pili ni ya kuvutia. variable kwamba mimi nina kwenda kuwa na kutumia ndani ya kazi yangu inaitwa f, hivyo ndani ya kazi yangu mimi naweza kusema f + = 1 au kitu. Hii kitu hapa kimsingi ni muhimu kwa kuwa hoja au parameter. Tu kama sisi alikuwa jozi thamani muhimu na kitu kama JSON au arrays associative Lengo-C alifanya uamuzi wa kusema, sawa, hivyo tu kwamba ni kweli wazi wakati wewe piga njia gani vigezo vyote hivi ni Mimi nina kweli kwenda jina yao yote. Wakati wewe piga njia, itabidi kweli kusema andFloat, na kisha utasikia kupita in Inafurahisha, moja hii si jina lake, lakini yote ya vigezo vingine ni, hivyo kama sisi alikuwa hoja 3 mimi naweza kusema andFloat na mwingine kuelea na kadhalika. Wakati mimi kuwaita njia hizi ni ya ndizi shaka, hivyo kama nina kitu, na mimi defined njia iitwayo foo, na mimi nataka simu yake, badala ya kusema foo wazi / parens karibu Mimi naenda kufungua bracket. Hapa ni jina la njia yangu. Mimi naenda kuifunga bracket, na hii ni kitu mimi nina wito juu. Kumbuka, aina ya mbinu hizi zipo ndani ya madarasa kwa sababu madarasa unaweza kuwa mbinu defined ndani mwao. Hapa nimepata kiholela umba kitu cha darasa baadhi, na hii ni syntax kwa kufanya hivyo. Kuna 2 hatua ya kujenga kitu. Hatua ya kwanza ni kusema nataka kutenga nafasi. Hii ni sawa malloc. Hatuna kusema malloc tena. Sisi imeshuka m, alifanya hivyo alloc, na badala c. Kwa. M. Baada ya sisi kitu alloc sisi basi haja initialize yake. Kimsingi wakati wewe kuunda vitu unaweza kutaka kuwa na baadhi ya mantiki kwamba executes wakati wao ni umba, hivyo unaweza kupita katika maadili baadhi default au kitu kama hicho, na hivyo njia hii init ni nini hasa inajenga kitu. Sisi kwanza kutenga nafasi, kama tulivyofanya katika C, na kisha sisi initialize hayo, ambayo wanaweza au kufanya mengi nzima. Kisha sisi ni kurudi jambo hili katika o kitu. Kuna nyota hapa kwa sababu hii ni kitaalam pointer, lakini usijali, kuyatumia ni kwamba kubwa katika mpango Lengo C-tena. Sasa tumekuwa instantiated darasa hili aitwaye NSObject, na hii ni darasa random kwamba Apple ina. Tumekuwa instantiated hii, na sasa nina mfano wa darasa hili katika hii o kitu, hivyo kwamba maana ya kwamba kama mimi defined mbinu hizi mimi naweza kuwaita kama hii. Vile vile, kama mimi alitaka kuwaita mbinu na hoja moja, hivyo hii ni njia bar, kwamba inachukua moja hoja, na hapa ni bazi: qux mbinu, hivyo hii inachukua hoja 2. Hii ni wito moja kazi juu ya hii kitu o. Mantiki? syntax lazima mantiki, lakini wewe aina ya kupata kutumika yake. Sawa, hebu majadiliano juu ya mambo machache ambayo ni kujengwa katika Lengo-C kwamba walikuwa sio lazima kujengwa ndani ya C. Katika C sisi aina ya alipaswa kushughulika na masharti kama arrays haya kijinga tabia, na got kweli annoying. Lengo-C ana wale wote kujengwa katika kwa ajili yetu, na ni kujengwa katika kutumia darasa aitwaye NSString. Wakati mimi wanataka kujenga NSString tuna zaidi arcane syntax. Badala ya kusema "cs50" tunasema @ "cs50" na hii ni kwa ajili ya kutangaza syntax masharti katika Lengo C-. Hii ni rahisi sana kusahau, hivyo hawana. Sasa, mara moja nina hii, hii ni kamba, lakini taarifa ni kweli tu kitu. Mimi alisema NSString, ambayo ina maana mimi instantiated darasa kuitwa NSString, ambayo mtu mwingine aliandika kwa ajili yangu, na walikuwa nzuri sana kuhusu hilo, na hivyo kwa sasa Naweza kuanza wito mbinu juu yake. Kama mimi wito urefu njia hii ya kitu itakavyo kurudi kwangu urefu wa kamba. Hii ni kama tu strlen katika C. Hii atarudi 4. Vilevile, njia nyingine mimi kutaka huduma ya juu ni hii characterAtIndex. Hii ni njia ya kuwa anasema juu ya hii s string Mimi nataka wewe kupata tabia 0, na hivyo hii atarudi kwangu c tabia, na kuna rundo zima zaidi ya njia hizi kuwa unaweza Google kweli urahisi. Nyaraka Apple ni kubwa, na tutaweza kuchukua kuangalia kwamba katika kidogo. Wale ni masharti. Sisi pia kutofautiana ukubwa arrays kujengwa in Kumbuka katika C wakati sisi alitangaza safu tulikuwa na kusema kuwa mambo 5, mwisho wa hadithi. Tulipofika JavaScript na PHP tunaweza kuanza kufanya mambo kama vile kuongeza vipengele au kusonga vipengele. Tunaweza kufanya hivyo katika Lengo C-. Badala ya kujenga safu katika njia ya kawaida C tuna tena darasa lingine kuitwa NSMutableArray. Kuna pia NSArray, na hii ni kwenda kimsingi kurejelea baadhi safu. Hii inasema jambo la kwanza nataka kufanya ni nataka kutenga nafasi kwa ajili ya safu mpya, na baada ya mimi kuipa Mimi basi haja initialize yake. Tena, tu wito njia hizi 2. Sasa hii ina maana kwamba ndani ya kitu hicho katika Mimi safu tupu ameketi hapo. Kama mimi nataka kuongeza kitu na safu hii, siwezi kuwaita njia addObject. Nataka kuongeza kitu kwa safu, na mimi nataka kuongeza string CS50. Kama nilitaka kinyume chake kuondoa kwamba naweza kusema mimi nataka kuondoa kitu katika nafasi ya kwanza katika safu au kupinga. Mantiki? Sawa, wewe aina ya kupata kutumika jambo hili Mabano ya mraba. Kwa njia, ndani ya mengi ya maktaba Apple utaona hii NS. NS kweli anasimama kwa hatua ya pili, ambayo ilikuwa moja ya Steve Jobs makampuni ya kwanza, na hiyo ambapo yeye kweli kuanza kuandika mengi ya maadili ya kama aina ya msingi kwa ajili ya Mac OS X na aina ya mambo mengine, na hivyo NS hii ni aina ya urithi hii nice kuita moja ya makampuni ya mapema nyuma wakati Apple mara ya kwanza kuanzia nje. Ni kila mahali. Hebu tuangalie mfano zaidi ya kiujumla Lengo-C. Mimi hapa ndani ya XCode. Ili kupata hapa, mimi kwanza kupakuliwa XCode kutoka Hifadhi App, kufunguliwa it up, na kisha nilikwenda hapa na faili, zaidi ya hapa na mradi mpya, na kisha. Baada ya mimi kufanya hivyo nina hizi chaguzi zote za kile wanataka kujenga, na hivyo tutaweza kuchukua kuangalia chaguzi hizi baadaye, lakini tu kwa mfano huu, kwa sababu sisi siyo kweli kwenda una programu bado, Nimeshuka hapa, na mimi alisema amri Line Chombo, na hii ni programu ambayo ningeweza kukimbia katika mstari amri tu kama tumekuwa mbio kutoka C. Hayo ni jinsi mimi umba mradi huu, na hivyo sasa niko hapa, hivyo hebu kwanza kuangalia faili hili, na hii lazima kuangalia pretty familiar. Nina jina int. Kuna rafiki yangu argc, rafiki yangu nyingine argv. Na hivyo tunaweza kuona kwamba hii ni hatua ya kuingia kwa ajili ya maombi yangu ya kwanza Lengo-C. Hapa tunaweza kupuuza hii kwa sasa. Hii ni kimsingi baadhi usimamizi kumbukumbu stuff kwamba wewe si kweli umewahi kuwa na wasiwasi juu. Hebu tuangalie block hii ya kwanza hapa. Hii mstari wa kwanza, kama mimi kusema Mwanafunzi * alice = [[Mwanafunzi alloc] init] nini kwamba kufanya? Hii mwanafunzi kwanza hapa, hii pengine ni darasa. Hii si darasa kwamba Apple aliandika, lakini ni darasa kwamba mimi aliandika. Jambo la kwanza nataka kufanya ni nataka kutenga nafasi kwa mwanafunzi mpya, na kisha Mimi nataka initialize hivyo, hivyo hii inatoa mimi nyuma hii mpya mwanafunzi kitu, na mimi nina hifadhi hii katika variable kuitwa Alice. Wapi darasa kwamba kuja kutoka? Naam, zaidi ya hapa upande wa kushoto haya yote ni ya files mbalimbali ndani ya mradi wangu. Tunaweza kuona hapa nina Student.h na Student.m. H. SVG, kumbuka, ni pale ambapo mimi kutangaza mambo yote kwamba zipo ndani ya darasa. Hebu tuangalie kwamba. Haki zote, hapa tuna hii interface @, na hii anasema kuwa inakuja maazimio ya kila kitu kile kitakacho kuwepo ndani ya darasa langu. Basi nina koloni. Basi nina jambo hili NSObject. Koloni hii kunaashiria kwamba kidogo urithi sisi walikuwa wakijadili kidogo mapema. Hii anasema kila kitu NSObject wanaweza kufanya ambapo NSObject ni darasa hili iliyoandikwa na mtu mwingine, kila kitu NSObject hii inaweza kufanya mimi nataka kuwa na uwezo wa kufanya hivyo. Kwa kusema: NSObject hiyo ina maana kwamba mimi kimsingi kurithiwa yote ya utendaji wa darasa lingine. Kwamba kwa kweli alinipa rundo zima la njia tofauti na mali kwamba naweza kutumia. Chini hapa nina kujenga tabia ya 2. Hiyo ina maana mwanafunzi wangu, kama hii walikuwa struct, haya itakuwa mambo 2 ndani ya struct yangu, hivyo kila mwanafunzi ana jina kwamba ni kamba, na mwanafunzi pia ina daraja, ambayo ni int. Hatimaye, chini hapa mimi nina kwenda kujenga mbinu kwa ajili ya mwanafunzi wangu. Mimi kuitwa njia yangu, initWithName, na inachukua moja hoja, na hoja kuwa ni kamba, na mimi kuitwa ni jina. Sasa hebu tuangalie jinsi sisi kweli kutekelezwa darasa hili. Hapa, sasa mimi nina ndani ya. Yangu faili m, m kwa ajili ya utekelezaji, mimi nadhani. Nina utekelezaji wangu, mwisho wangu, na hapa ni mahali ambapo Mimi kwa kweli kufafanua nini initWithName gani. Nina initWithName, jina la parameter yangu, na kisha hii ni ambapo Mimi kwa kweli kujenga mwanafunzi, na hivyo hii ni kidogo cryptic, lakini hii ni aina ya boilerplate kwamba unataka pamoja katika constructors yako. Hii kazi initialization hapa, initWithName, ni aina ya kuujenga. Wewe kimsingi ujenzi mpya mwanafunzi kitu na labda kupeleka baadhi ya data ndani yake. Jambo la kwanza nataka kufanya ni nataka kuita init juu ya jambo hili super. Kumbuka kwamba wakati mimi alisema nyuma hapa katika faili h. kwamba kila kitu NSObject ina mwanafunzi pia ana. Hiyo ina maana wakati mimi kujenga mwanafunzi kile Mimi pia haja ya kufanya ni kuhakikisha kwamba NSObject kwamba mimi nina kurithi yote ya data kwamba kutoka pia initialized vizuri. Nini nahitaji kusema ni hii super ni kweli kwenda kwa kutaja darasa mzazi kwamba mimi nina kurithi kutoka, hivyo mimi nataka kuhakikisha mimi initialize kila kitu kwamba mimi nina kutegemea kabla mimi kuanza kujaribu kuitumia. Kisha kama kwamba initialized usahihi hii ni kama kusema iwapo malloc hakurudi null kisha naweza kuanza kuweka baadhi ya mali. Katika JavaScript na PHP tulikuwa Keyword hii inaitwa hii, na hii inajulikana mfano wa sasa wa darasa. Katika Lengo C-sisi wito huu wa kujitegemea. Wakati mimi kusema self.name, hiyo ina maana kwamba kitu Mimi tu umba wakati mimi alisema mwanafunzi alloc init, ambayo inaenda nipe nyuma kitu. Hiyo ina maana Mimi nataka kuweka jina la kitu kwamba kwa chochote mimi kupita tu in Tu kama katika C, sisi kupata wanachama na dot hii, hivyo self.name anasema jina la kitu mwanafunzi sasa ni kwenda kuwa chochote kupita tu in Na hivyo hatimaye, siwezi kurudi hivyo mimi kwa kweli kupata kitu nyuma. Maswali? Sawa, hivyo binafsi hii = super init, kama huna kabisa kuelewa mambo urithi usijali. Tu kujua kwamba kama wewe milele unataka kufanya init yako mwenyewe mbinu tu kufanya hivyo, na wewe utakuwa vizuri kwenda. Yeah >> [Mwanafunzi]. Gani ikiwa binafsi maana? Hii ina maana wakati sisi malloc kitu sisi daima checked kama ilikuwa sawa kwa null, na kama ilikuwa null, basi sisi exited. Hii ni kitu kimoja, kwa sababu kama hii null anarudi, basi tuko pengine anaenda kosa seg kama tunataka kuanza kujaribu kuendesha hiyo. Hiyo ni mwanafunzi wetu darasa. Hiyo ina maana tunaweza initialize wanafunzi wetu katika moja ya njia mbili. Nikisema mwanafunzi alloc init mimi si kutumia mbinu ya kwamba kwamba mimi tu aliandika, na badala yake naweza tu kusema alice.name, na sasa mimi naenda kuweka kwamba jina mali. Vile vile, kama mimi nataka kutumia kwamba mbinu initWithName Naweza tu kusema alloc, na kisha badala ya kusema init Mimi naenda wito kwamba njia ambayo mimi tu umba, na mimi nina kwenda kupita katika Bob. Katika hatua hii, hii kitu Bob ina jina sawa na Bob. Okay, chini hapa mimi nina kutumia kwamba NSMutableArray kwamba sisi inaonekana katika mapema. Mimi nina kugawa space.Then mimi nina initializing safu mpya. Mimi nina kwenda kuongeza mambo 2 kwa yake. Safu hii sasa anashikilia vitu mwanafunzi. Ona kwamba mahali pa gani mimi kusema hii ni safu ya wanafunzi. Mimi alisema ni safu, kipindi. Kisha siwezi kuweka chochote ndani yake kwamba mimi nataka. Hapa nina vitu 2. Hatimaye, mimi na mwingine kitu hapa, hii TF. Juu hapa nchini TF.h kimsingi kitu kimoja. Mimi nina kurithi kutoka NSObject, na kwa njia, wakati wewe kujenga madarasa hii yote ni kufanyika kwa ajili yenu, aina hii ya boilerplate interface. Ni ina mali ya wanafunzi. Nina mbinu michache hapa kwamba si kweli kufanya mengi nzima, na hivyo kwamba maana baada ya mimi kuunda hii kitu TF Siwezi kuwaita hii daraja mbinu juu yake kama hii. Maswali yoyote juu ya syntax Lengo-C kabla ya kuanza kusonga katika baadhi zaidi programu ya maendeleo ya kuvutia stuff? Sawa, hivyo hebu kweli kufanya App iPhone. madarasa ya msingi kwamba wewe utakuwa kutumia ndani ya programu yako iPhone wanaitwa mtazamo controllers, na mtawala mtazamo kimsingi inawakilisha screen moja ndani ya programu yako, hivyo kama mimi nina juu ya programu ya muziki, kwa mfano, moja mtazamo mtawala inaweza kuwakilisha mtazamo ambayo mimi mtazamo nyimbo zote iPhone yangu. Mwingine mtawala mtazamo inaweza kuwa wakati mimi bonyeza wimbo na kuanza kucheza au kama mimi nina kuchimba chini katika wasanii. Kila moja ya skrini wale mbalimbali inaweza kuwakilishwa kama mtawala mbalimbali maoni, na mtawala maoni ni kweli tu kwamba anasema darasa jinsi screen hii kazi. Mambo ya ndani ya mtawala mtazamo, tunakwenda kuwa na mali, hivyo mambo kama button ni kwenda kuwa mali ya maoni mtawala wetu. Sisi ni pia kwenda na mbinu, na hizi ni kimsingi tukio handlers. Njia hii anasema wakati waandishi button hii Nataka kufanya kitu, na hatimaye, tena, sisi ni kwenda kuwa na kutumia hii Keyword binafsi kupata mfano wa sasa. Kujenga interfaces katika iOS ni kweli kweli, kwa kweli ni rahisi. Wao wana hii Drag nzuri na interface tone kuitwa Interface Mjenzi, na 2 ya msingi dhana kwamba waya juu yako Lengo C-kwa Interface Builder ni IBOutlet na IBAction. IBOutlet tu anasema kwamba kama wewe kutangaza mali hiyo ni kifungo, na unataka ndoano it up na kitu katika UI yako halisi, utaenda kusema ni outlet. Vile vile, kama unataka kuwakilisha handler tukio basi wewe ni kwenda kusema ni action. Kwa kweli waya up hii uwakilishi graphical na code yako ni kweli, kweli rahisi. Kama unataka ambatisha IBOutlet, wote una kufanya ni wewe kudhibiti click, na tutaweza kuona mfano wa hii kweli haraka. You kudhibiti bonyeza ambapo anasema View Mdhibiti. Utaenda Drag katika interface, au kinyume chake, kama unataka hook up handler tukio utaenda Drag kutoka interface katika upande mwingine. Hebu tuangalie mfano kweli rahisi iOS. Hebu kujenga mradi mpya. Mimi naenda kuja hapa kwa Maombi, na mimi naenda bonyeza Single View Maombi. Mimi naenda bonyeza ijayo. Nitapatia mradi wangu jina. Mimi nitakuita ni Hello. Inafurahisha, Apple akubali wewe ni kujenga bidhaa ili uweze kuuza na wanaweza kupata pesa. Chini hapa mimi nina kwenda kusema kwamba hii ni App iPhone. Unaweza kuunda programu iPad, au kama unataka kujenga moja ya programu hizo kwamba inasaidia vifaa wote unaweza kufanya hivyo pia. Hizi ni nini unataka checkmarks wako kuangalia kama. Unataka kutumia storyboards, ambayo tutaweza kuona baadaye, na wewe dhahiri wanataka kutumia moja kwa moja ya kumbukumbu ya kuhesabu, ambayo ni hulka nzuri kwamba kuzuia kutoka kuwa kusema malloc na bure. Kama unataka kuwaita malloc na bure, napenda kuondoka checked. Mimi itabidi bonyeza pili, na hatimaye, hii ni ya kwenda kuuliza mimi ambapo nataka atayaokoa. Mimi itabidi hit kujenga, na hapa sisi kwenda. Mimi umba mradi mpya. Zaidi ya hapa upande wa kushoto ni mafaili yote ambayo ni ya ndani ya mradi wangu, na taarifa kwamba mimi got rundo zima, na sikuweza hata kufanya kitu chochote. IOs ni kubwa. Kwa mfano, hapa hii ViewController.h, hii ni kwenda kuwakilisha mtazamo wangu wa kwanza mtawala, hivyo screen kwanza ndani ya programu yangu. Sasa sisi kujua nini hii ni kusema. Sisi ni kusema mimi nina wito huu ViewController darasa, na ViewController anafanya kila kitu ambacho UIViewController gani, na hili, tena, ni baadhi ya darasa kwamba Apple aliandika kwamba hana mengi ya mambo Handy kwa ajili yetu kama kuonyesha screen. Hapa ni mahali ambapo kweli mimi kuanza kufafanua nini mtazamo wangu mtawala gani, na zinageuka kuwa mimi kweli hawana haja yoyote ya hii. Hii ni boilerplate kificho kwamba Apple anitiaye kwa bure. Nilifanya haja ya kuwa mstari wa kwanza, au sina darasa, hivyo tunaweza kujikwamua kwamba na kujikwamua hii. Sawa, hivyo hii ni screen yangu tupu. Sasa hebu bonyeza MainStoryboard.storyboard hii, na hii ni mahali ambapo ni kuanza kupata kuvutia. Hii inawakilisha screen kwanza juu ya programu yangu. Kama mimi nataka kuongeza kifungo, katika HTML nilikuwa na kujenga tag button. Katika Android una kuunda tag kifungo, lakini katika iOS kama mimi tu kuja chini hapa kwa haki ya chini na ikiwa mimi bonyeza mmoja hii 3 hapa ambapo anasema vitu, na mimi unaweza kitabu chini, au naweza kuanza kutafuta button. Na kuangalia, kifungo, hivyo kama mimi kweli Drag na kuacha hii haki pale, Nimekuwa tu aliongeza button hii screen juu ya programu yangu. Kama mimi nataka kubadili Nakala, siwezi bonyeza mara mbili yake, kusema kitu Huwaongoza kama "Vyombo vya habari Mimi." Okay, sasa kama mimi kukimbia programu hii, hivyo sisi kukusanya yake, hivyo kwa kukimbia mimi bonyeza kifungo kucheza katika upande wa juu kushoto, na kuna programu yangu. Sikuweza kufanya kitu chochote, na I got tamu kuangalia iPhone App. Kama mimi nataka kuacha ni, unaweza bonyeza button kuacha kwa sababu ni furaha zaidi. Hebu kusema kwamba mimi kweli wanataka kitu kutokea wakati mimi waandishi wa button hii. Ili kufanya hivyo nini mimi haja ya kufanya ni mimi haja ya kuunda mpya tukio handler au action. Hiyo ina maana kwamba mimi haja ya kuunda baadhi njia ambayo Mimi nataka kuitwa wakati mimi waandishi wa habari kifungo, hivyo hebu kuunda mbinu mpya. Mimi nina ndani ya ViewController.h. Mimi haja ya kusema kwamba njia ipo. Nahitaji hyphen kwanza kwa sababu mimi nina kwenda kuwa wito huu juu ya mtawala mtazamo. Mimi haja ya kutoa aina hii. aina ya hii ni ya kwenda kuwa kitu IBAction kuwa tuliona mapema. Hii ni handler tukio hilo, hivyo ni kwenda na kurudi IBAction, na hii ni dokezo kwa XCode kusema kwamba hili ni jambo nataka waya kitu. Naweza kutoa jina, kama semicolon buttonPressed,. Sasa nimepata alitangaza mbinu mpya ndani ya darasa langu. Nilivyosema njia hii ina kuwepo. Sasa hebu kuja katika ViewController.m, na hebu sema nini njia hii inaweza kufanya. Kama mimi kuanza kuandika, kwa mfano, (utupu) buttonPressed taarifa XCode ni kweli nice na autocompletes kwa ajili yangu. Hiyo ni kweli ajabu. Ona hapa kwamba ndani ya faili. M pia naweza kusema batili, na hii ni kwa sababu IBAction kwamba ni kweli si aina. Ni kweli hashtag defined mahali fulani kuwa utupu, na tena, hii ni dokezo kwa XCode kwamba anasema Nataka hii kuwa handler tukio hilo, na tutaweza kuona nini katika haki ya pili. Wakati kifungo hii ni taabu mimi naenda kufanya kitu annoying kama kuonyesha popup. Ili kufanya hivyo naweza kujenga mfano mpya wa darasa hili aitwaye UIAlertView, na hii ni darasa kwamba Apple aliandika kwamba kinaendelea kuonyesha popups annoying. Tutamwita tahadhari hii popup, na mimi kuwa hatua 2, kumbuka, kwa kujenga hii kitu. Jambo la kwanza mimi haja ya kufanya ni kutenga nafasi. Mimi nataka UIAlertView. Mimi nataka kutenga nafasi. Hiyo ni njia yangu ya kwanza. Njia yangu ya pili ni mimi nataka initialize yake, na hivyo nina hii kubwa, muda mrefu njia iitwayo initWithTitle. Hiyo kimsingi kwenda kudhibiti kile dukizi hii anasema. hatimiliki ya popup yangu inaweza kuwa hello. ujumbe wa hii popup wanaweza kuwa "Hii ni iOS." Mjumbe kitu, sijui nini ni kwamba. Hebu sema ni kitu. Sasa kifungo ambayo inaenda kuonekana unaweza kusema kitu kama "Ni uhakika ni," na mimi si kweli unataka vifungo nyingine yoyote, hivyo hebu kufuta kwamba karibu na bracket. Sawa, mimi umba moja ya ziada. Kuna sisi kwenda. Hii ni jinsi gani naweza kujenga popup mpya. Kama mimi nataka kuonyesha kweli popup nataka kuita njia show. Ili kufanya hivyo naweza kusema tahadhari na show, na tena, oto kukamilisha alikuwa super nice. Kama mimi nilimsahau nini kwamba ilikuwa, kama mimi tu typed katika s, Mimi unaweza kitabu kupitia hapa kufikiri nini ilikuwa, na filters nicely. Sasa mimi aliumba hii popup mpya. Tutaweza kuja nyuma kwa nini mjumbe maana baadaye, na sasa mimi nataka kusema nataka njia hii kuwa fired wakati mimi waandishi wa habari kifungo, hivyo mimi nina kwenda kurudi kwenye Muhtasari yangu, na mimi nataka sasa ambatisha hii IBAction. Jambo la kwanza unataka kufanya ni bonyeza button. Wakati mimi bonyeza button hii nataka kitu kutokea. Sitakuja kushikilia chini ya udhibiti. Mimi naenda bonyeza na Drag kutoka kifungo kwa zaidi ya hapa ambapo anasema View Mdhibiti. Tunaweza kuona kwamba ni nicely taa juu. Kama mimi basi kwenda na kipanya yangu mimi sasa hii popup zaidi ya hapa ambapo mimi baadhi ya chaguzi. Moja ya hayo ni matukio ambayo naweza kujisajili. Haya yote ni ya njia hizo mimi alitangaza katika faili yangu h kama IBActions. Hii ni jinsi XCode anajua nini wanapaswa kuonekana katika orodha hii ndogo, hivyo kwamba tu ladha. Kama mimi bonyeza kifungo taabu, nimekuwa sasa kusajiliwa handler tukio hilo. Katika JavaScript sisi alikuwa na kusema mimi na baadhi ya kificho kwamba kusajiliwa handler tukio hilo. Katika Lengo C-ni kweli kwamba rahisi. Kama mimi kukimbia hii tena sasa wakati mimi waandishi wa habari kifungo tukio yangu handler ni kwenda kwa moto, na mimi naenda kupata hii popup. Super, super rahisi huko. Kama umewahi wanataka kuona matukio yote ya kuwa kutokea kwa kuandikishwa juu ya sehemu kama mimi bonyeza button hii na mimi kuja hapa kwa upande wa kulia kwanza unaweza kuona zaidi ya hapa Naweza kufanya mambo kama aina ya kifungo, hivyo kama unataka mmoja wa wale wa mimi au kuongeza kifungo mawasiliano au chochote. Kama nataka kuona matukio yote ya kwamba ni juu ya kifungo hii nikija njia yote juu hapa kwa upande wa kulia tunaweza kuona hapa katika matukio nina matukio haya yote tofauti. Naweza waandishi wa habari kifungo, wakati mimi basi kwenda ya kifungo, wakati mimi mara mbili bomba au chochote, na moja mimi waliojiandikisha tu ni tukio hili aitwaye Touch Up Ndani, na hii anasema kwamba haraka kama kidole changu anakuja mbali kifungo kuwa tukio ni kwenda moto, na kwamba ni nini hasa ilitokea tu. Hii ni aina ya tukio default kifungo taabu. Maswali yoyote hadi sasa? Okay, hiyo ni jinsi tunaweza kuanza kwa waya juu ya mambo katika code yetu katika mambo ya ndani ya interface yetu. Kumbuka jambo la kwanza sisi na kufanya ni kupata code, na kisha sisi wired up interface kwa kificho, na kuna programu yetu ya kwanza. Okay, kwamba ilikuwa kweli baridi, na sisi aliumba hii kifungo. Nini kama sisi si unataka kuwa na kuunda kundi la mali anayewakilisha vifungo haya? Kwa mfano, katika Tic TAC Toe nina vifungo 9, na ni d kuwa super, super annoying kuwa kwa Drag na kuacha mara 9 au kama mimi alikuwa na kufanya Tic TAC Toe na 81 badala ya 9 na mimi alikuwa na Drag na kuacha mara 81, na kwamba ni kilema. Nini tunaweza kufanya badala yake ni kiasi kama HTML wakati tulikuwa na vitu kama Vitambulisho majina na tunaweza kutafuta mambo na ID zao, kuna wazo sawa katika iOS kuitwa tags. tag ni tu kipekee namba kitambulisho kwa sehemu. Kama mimi kusema hii ina tag wa 0, kwa mfano, kama mimi kujenga kifungo na kuwapa tag wa 0, na tutaweza kuona jinsi ya kufanya kwamba katika haki ya pili, kama nataka kupata kwamba kifungo naweza tu kusema mimi nataka kuita , viewWithTag njia juu ya kitu zaidi ya hapa self.view, ambayo inawakilisha screen ya sasa, kwa mfano. Kama mimi wito kwamba njia viewWithTag, mimi nina kwenda kuvuta nyuma kifungo na tag 0. Hebu tuangalie hili kwa toe jengo Tic TAC. Kwanza, hii ni storyboard yangu. Nimekuwa umba hizi vifungo UI 10. Angalia wao uko ukubwa wote ni sawa. Kama mimi bonyeza mmoja wa hawa na mimi kuja nyuma zaidi ya hapa, upande huu wa kulia utaona mimi kurekebishwa font haki hapa, hivyo mimi alifanya font kidogo kubwa zaidi, lakini kile Mimi pia alifanya alikuwa mimi kuweka hii tag. Mimi alisema kwamba hii ina tag wa 1, na kwamba upande wa juu kushoto. Sasa, kama mimi bonyeza kifungo mwingine, kama hii moja ya pili hapa, sasa utaona kwamba lebo yangu ni 2. Kila moja ya vifungo hizi tu ana tag kipekee, na hivyo hii ni baadaye jinsi mimi nina kwenda kuanza mazungumzo na programu yangu. Hii yote ni ndani ya moja mtawala view, lakini hapa ni nini sisi. Tuna mali 3 hapa. moja ya kwanza na ile ya mwisho ni kwenda kuwakilisha hali ya bodi yangu. Kimsingi hii ni moja ya kwanza safu anayewakilisha ambapo XS na Os ni. Hii moja nyingine hapa inatuambia zamu ya nani ni. Utagundua kuwa mimi pia kuwa mambo haya hapa. Kabla ya wakati sisi alitangaza mali sisi aliwapa jina na aina. Tunaweza pia kuwapa baadhi ya maelezo ya ziada hapa. Hii kwanza anasema nonatomic, na nini hii anasema kimsingi ni jambo moja tu ataweza kujaribu kupata hii variable wakati. Unaweza kufanya maombi zaidi tata kwamba ni multi-mnyororo, na hivyo nyuma katika Scratch tulikuwa threads tofauti, na sprites mbalimbali inaweza kufanya mambo mbalimbali kwa wakati mmoja. Kama hiyo si kesi, ambayo si katika kitu chochote kwamba tutaweza kuwa na kuangalia, tukisema nonatomic ni kweli kwenda kufanya mambo kidogo kidogo kwa kasi zaidi. Sisi pia kuwa hii kitu kinachoitwa hawawajui, nguvu, au dhaifu. Hii hawawajui tu anasema kwamba hii ni aina ya kiwango. Hii si kitu au pointer kwa sababu hii ni bool, hivyo bool ni kujengwa katika Lengo C-. Hii inasema wala kujaribu kufanya kitu chochote dhana na kuyatumia hapa. Ni kawaida ya zamani scaler. Nguvu na dhaifu, hii dhaifu anasema kwamba kwa kweli Nataka hii kuwa akizungumzia kitu katika mtazamo mtawala. Sitakuja kwa kweli kutenga au init hii mwenyewe. wajenzi interface, wakati mimi kukimbia programu, ni kwenda kushughulikia initialization kwamba wote. Nikisema dhaifu, kwamba anasema mtu mwingine ni kwenda kujenga hii. Nikisema nguvu, hii anasema kwamba mimi nina kwenda kuwa moja hiyo ni kujenga hii kitu bodi, na hivyo hapa nina mbinu baadhi zaidi hapa, kwa mfano, hatua kwa wakati mpya kifungo mchezo ni taabu, utekelezaji kwa wakati yoyote ya kifungo nyingine ni taabu, na kadhalika. Sisi si kupata ndani ya sana wa mantiki ya Tic TAC Toe, ingawa ni ya kusisimua sana, lakini hebu tuangalie baadhi ya mambo ambayo tunaweza kufanya ndani ya iOS. Hii mpya mchezo mbinu ni kwenda kuwa fired wakati mimi waandishi mpya mchezo button. Kwa ndoano kuwa hadi mimi tu kuja juu kwenye Muhtasari yangu. Mimi clicked juu ya mchezo mpya. Kama mimi kuja hapa kwa haki mimi kuona kwamba Kugusa Up Inside ni wired njia newGame. Hiyo ndiyo sababu hii ni kwenda kupata fired. Njia newGame anaenda kufanya baadhi ya kuweka juu. Ni kwenda kusema mimi nataka wewe wazi hali ya bodi. Hii ni njia nzuri juu ya arrays mutable. Hii ni kwenda kusema ni sasa upande wa X, na sasa mimi naenda kuchukua faida ya jambo hili viewWithTag. Najua kwamba vifungo yangu kuwa tags 1-9, na kwamba ni kitu mimi kiholela ilichukua. Kama mimi nataka kuweka Nakala ya kifungo kila kuwa tupu kwa sababu mimi tu ya kuanza mchezo mpya na sitaki yoyote XS au Os kuwa kushoto juu naweza kufanya hili. Naweza kusema mimi nataka mtazamo na tag, 1, 2, 3, 4 nakadhalika. Hii kuvuta kifungo tofauti kila wakati. Hapa nina kwenda kuwatupia UIButton. Tu kama sisi inaweza kutupwa ints kwa ikifungwa na kinyume chake hii anasema kuwa nataka kutupwa hii UIButton. Hiyo ina maana ya aina ya hii itakuwa * UIButton kwa sababu ya kuyatumia, lakini usijali, wao siyo inatisha tena. Mara baada ya mimi kuwa na kifungo nitakacho kuwaita njia juu yake. Mbinu hii hujulikana setTitle forState, na hivyo hii anasema Nataka kuweka Nakala ya kifungo kuwa string tupu, na mimi nataka kuwa string tupu wakati siyo taabu. Kama mimi nina kutumia njia hii, naweza kubadili Nakala ya kifungo haraka kama mtu hits, lakini tunataka kusema wakati button wamekaa tu pale Mimi nataka Nakala kuwa tupu. Hatimaye, tunakwenda initialize bodi yangu, na mimi nina kwenda kusema kuwa kila kitu sasa ni 0, hivyo hii wajumbe wa bodi hayabadiliki ni safu mutable, ambayo ina maana siwezi kuwaita njia addObject na tu ndani 0 yake. Hiyo ni nini kinatokea wakati mimi kujenga mchezo mpya. Hebu tuangalie mwingine mmoja. Njia hii hapa ni IBAction ambayo inaenda kuwa taabu wakati kila mmoja wa miraba wale ni taabu. Sasa tuna baadhi Tic TAC Toe mantiki hapa. Sisi takwimu nje zamu ya nani ni, na kwa kuzingatia kwamba sisi ama kuweka X au O, lakini sisi taarifa kwamba sisi ni Reusing hiyo tukio handler kwa kila moja ya vifungo hizo. Hiyo ina maana kwamba mimi si kuwa mbinu kwa ajili ya kifungo juu kushoto, njia tofauti ya batani ya kulia chini, ingawa mimi naweza kuwa amefanya hivyo. Hiyo si kweli kuwa nzuri design. Nini mimi kufanya hapa ni mimi nina kweli kwenda kuamua nini tag wa kifungo kwamba ilikuwa taabu ni. Taarifa kwamba njia hii inachukua kucheza moja hoja. Ni wito mtumaji, na kile mtumaji ni ni mtumaji ni kwenda kuwakilisha nini hasa ilikuwa kuchukuliwa hatua juu ya. Kama mimi waandishi wa habari kifungo, mtumaji hii ni ya kwenda kuwa UIButton kwamba mimi kwa kweli taabu, hivyo hiyo ina maana kwamba kuwa UIButton ina tag sababu mimi umba tag. Kama mimi nataka kupata saa tag naweza tu kusema Mimi nataka tag wa mtumaji, na tena, nimekuwa tu casted kwa UIButton. Mimi kutokea kwa kujua kwamba mtumaji itakuwa UIButton. Haina daima kuwa UIButton. Mimi naweza, kwa mfano, kujiandikisha huo tukio handler  kwa moja kwa kifungo, moja kwa slider. Katika kesi hiyo, najua uko wote vifungo, hivyo mimi nina kwenda kusema Nataka hii kuwa kifungo, na kisha naweza kupata tag, na kutoka tag Mimi sasa kujua ambapo mimi ni ndani ya bodi. Kisha mimi anaweza tu kuweka aidha X au O, unaweza flip upande, kuangalia ambaye ameshinda, nakadhalika. Maswali yoyote juu ya hili hadi sasa? Okay, code wote sisi posted online-hatutaki kupata ndani sana Tic TAC ya mantiki toe, lakini sasa unaweza kuona kwamba kweli wote sisi ni kufanya ni sisi ni juu ya safu hii looping, hivyo sisi kuwa wanandoa wa matanzi kwa hapa, na sisi ni tu kulinganisha na kuona Je, tuna mechi katika safu yote, mechi katika safu au kitu kama hicho. Kwa kweli kuendesha programu hii, ikiwa mimi bomba kwenye moja ya vifungo hizi njia ambayo kucheza alikuwa fired, hivyo kwamba maana mimi tu kuweka button kuwa X, hivyo sasa kifungo hii itakuwa O, na kadhalika, na hivyo ndiyo jinsi sisi ni mapya kwa kuingiliana na programu hii moja ukurasa. Tutaweza post code, ili kujisikia huru peruse kwamba, lakini hebu sasa majadiliano kuhusu baadhi ya programu ambayo ni zaidi kuliko tu ukurasa mmoja. Kama kusisimua kama Tic TAC Toe ilikuwa, mengi ya programu ndani ya iOS ni aina ya drill haya mambo chini na skrini nyingi. dhana ya kwanza kwamba tutaweza haja ya kuzungumza kuhusu ni itifaki, na itifaki ni tu seti ya mbinu kwamba wewe unaweza ahadi ya kufafanua. Kama mimi kuunda hii itifaki mpya na mbinu 2, hii moja kwanza, kama aina ya kurudi ni batili, mimi kuitwa ni foo. Inachukua hoja hakuna. Mimi na mwingine mbinu. Kuirudisha int. Mimi kuitwa ni bar, na inachukua moja hoja. Hii itifaki zote ni kwamba ni wito SomeProtocol hapa juu, hii ni seti ya mambo ambayo mtu anaweza kutekeleza. Mimi si ndani ya itifaki hii alisema nini foo gani. Badala yake, mimi nina kusema tu unaweza kufafanua foo kama unataka. Kama mimi nina kujenga mtawala mtazamo au kujenga darasa Naweza ndani ya kwamba ahadi ya darasa kutekeleza baadhi ya mbinu hizo, hivyo kwa mfano, kama kusema hii sasa anasema mimi nina kufanya ahadi na wewe kwamba ndani ya wa darasa hili mtawala mtazamo nami kuwa ufafanuzi kwa wote foo na bar. Kwa nini ni kwamba manufaa? mengi ya vipengele ndani ya iOS kuchukua fursa hii, kubuni muundo kuitwa ujumbe, na nini ujumbe anasema ni kwamba, kwa mfano, kama nina sanduku Nakala na kuna baadhi ya matukio ambayo inaweza kusajiliwa ndani ya asilia sanduku langu, badala ya kujenga matukio tofauti nini siwezi kufanya ni naweza kusema mjumbe wa sanduku hii Nakala itakuwa baadhi kitu. Wakati mimi kusema kwamba hii ni mjumbe sasa hiyo ina maana kwamba kila tukio baadhi ingekuwa fired katika sanduku Nakala badala ya kuwa na kujiandikisha au kitu kama hicho ni tu kwenda kuwaita njia ya mjumbe. Kwa mfano, ndani ya sanduku Nakala yangu nina mbinu kwa ajili ya wakati mimi waandishi kwamba amefanya kifungo katika haki ya chini, na hivyo badala ya kusajili tukio handler nini naweza kusema ni Nakala sanduku, hapa ni kitu ambayo Mimi nataka wewe kuwaita njia juu ya wakati kila mtu mashinikizo button kufanyika, na hiyo ina maana kwamba kitu ambayo ina kutekeleza baadhi ya itifaki kwamba anasema mimi ahadi kufafanua kwamba amefanya kifungo hatua, kwa sababu kama haina kufafanua kwamba mbinu na vyombo vya habari kufanyika, basi ni kwenda kuwa na utata. Hebu tuangalie mfano. Hapa mimi tu na moja Nakala sanduku, na moja ya mali ya sanduku hii Nakala zaidi ya hapa, upande huu wa kulia ni mjumbe. Hii ni mali ya darasa. Nini mimi hapa ni mimi kudhibiti clicked, na mimi dragged kutoka doa hii zaidi hapa kwa mtawala mtazamo, na kwamba anasema sasa mjumbe wa sanduku hii Nakala ni kwenda kuwa mtawala mtazamo. Hiyo ina maana kwamba wakati baadhi vitendo kutokea, badala ya kusajili tofauti tukio handlers Mimi nataka wewe kuwatuma mjumbe. Sasa hebu tuangalie mtazamo mtawala wangu. Ndani ya faili. H nimekuwa alitoa ahadi. Nimekuwa aliahidi kutekeleza mbinu kadhaa ndani ya itifaki hii kuitwa UITextFieldDelegate, na tena, hii ni baadhi tu orodha ya baadhi ya mambo ambayo siwezi kuchagua kutekeleza. Kama mimi kuja hapa katika faili yangu. M, mimi zimetekeleza mmoja kama mbinu. Nimekuwa kuitwa ni textFieldShouldReturn kwa sababu hiyo ndiyo ilikuwa inaitwa ndani ya itifaki. Na sasa wakati mimi waandishi kufanyika kifungo ndani ya shamba kwamba Nakala hii ni nini kinaendelea kupata walioitwa, hivyo sikuweza kujiandikisha handler tukio hilo. Mimi kushikamana mjumbe, na wakati wowote tukio hili fired hii ni njia ambayo inaitwa kupata, hivyo kama mimi kuja hapa kwenye Muhtasari yangu na kukimbia- wakati hiyo upakiaji tunaweza kuona nini hii gani. Kwenye screen yangu Ninayo 2. Nina uwanja huu wa maandishi, na nina studio. Mimi kusema tu nataka Nakala ya studio hii kuwa sawa na chochote mtumiaji typed katika ndani ya uwanja maandishi. Hii mstari unaofuata hapa ni njia tu kwamba mimi nina wito kwenye shamba Nakala kwamba anasema mimi nataka wewe kujificha keyboard. Hii ni njia holela kwamba Apple alichagua. Tena, kabla ya mimi alifanya kitu chochote mimi alikuwa na waya kila kitu juu, hivyo mimi kwanza alikuja juu hapa. Kutoka mtawala view Mimi Drag juu kwa Nakala sanduku. Mimi basi kwenda, na mimi kuona hapa kwamba naweza kufanya hili shamba Nakala mali tangu juu hapa nchini mtawala mtazamo nimekuwa defined mali kwamba ni IBOutlet ya shamba maandishi. Hii inasema kwamba naweza waya mali hii hadi kwa shamba asilia katika UI yangu. Nilipofika bonyeza hii naweza kuanza kuandika. Sasa kama mimi bonyeza button kufanyika hili ni kwenda kwa moto tukio kwamba mimi sasa wanaweza kujibu. Handlers tukio No. Hayo ni jinsi mimi tu waliitikia kifungo kwamba kufanyika. Mantiki? Hii si mfano kubuni kwamba-unaweza milele kupata mwenyewe kujenga itifaki yako mwenyewe, lakini tu kujua kwamba baadhi tofauti iOS vipengele kujiandikisha matukio katika njia tofauti. Vifungo, kwa mfano, kutumia IBActions hizo. Nakala mashamba, kwa upande mwingine, ni kwenda kutumia wajumbe. Tunaweza kuona na unaweza kuangalia yote ya ndani kuwa juu ya nyaraka. Kwa njia, kuna kweli tani ya stuff UI kujengwa ndani ya iOS kwa ajili yenu, hivyo kwa mfano, njia ya mimi kusema kwamba alifanya kufanyika katika haki ya chini ni mimi kuchaguliwa uwanja huu wa maandishi. Mimi alikuja juu hapa. Mimi scrolled chini kidogo kurudi muhimu, na mimi unaweza kweli kufanya hii rundo zima wa mambo, kama kama nataka kusema kwamba dharura waomba badala siwezi kufanya hivyo, ambayo ni kabisa random, na sijui nini kuna kujengwa katika dharura wito kifungo, lakini kuna, inasema dharura wito kwa herufi ndogo kweli. Kuna kwenda. Dhahiri kuchunguza yote ya chaguzi hizi tofauti katika iOS. Maswali yoyote juu ya wajumbe? Tena, kuvutia tu kubuni muundo kwamba unapaswa kufahamu. Okay, hebu ijayo kuangalia maoni ya meza. mtazamo meza kimsingi ni kwamba orodha ya vitu kuwa ni kila mahali katika iOS. Wakati wewe ni flipping kwa njia zote za mawasiliano yako, wewe kuangalia ukurasa linatua, na kwamba aina ya orodha ya mambo inaitwa mtazamo meza. Kutekeleza maoni meza katika iOS ni pretty rahisi. Badala ya kufanya darasa kwamba anapotoka kwamba UIViewController kama tumekuwa kufanyika kabla ya sisi tu haja ya kusema kuliko kila kitu UIViewController haina nataka kufanya, Mimi kusema kila kitu UITableViewController haina nataka kufanya, ili tu anaongeza baadhi ya mambo ya nyongeza ambayo ni kabisa kufanyika kwa ajili yetu. Tunahitaji kufanya kidogo sana na kimsingi kujaza nafasi zilizoachwa wazi ndani ya meza. Ili kuonyesha meza mimi haja ya kujibu baadhi ya maswali. swali la kwanza mimi haja ya kujibu ni sehemu ngapi ni katika meza? Wakati wewe ni flipping kupitia programu yako mawasiliano utasikia taarifa kwamba ni aina ya iliyoandaliwa na Kama, basi una Bs, na una kwamba kidogo ndogo header. Kila wa wale inaitwa sehemu. Wewe au anaweza haja hizi. Jambo la kwanza unahitaji kufanya ni kutekeleza mbinu kuitwa tableView: numberOfSectionsInTableView. Hiyo tu anarudi ngapi sehemu una, hivyo hii inaweza kusema kurudi moja kama una moja kubwa meza mtazamo. swali la pili kwamba iOS anahitaji kujua ni jinsi gani safu nyingi gani? Kwa mfano, wewe ni flipping kupitia mtazamo meza. Una idadi ya kudumu ya nyimbo wewe kuangalia au idadi maalum ya mawasiliano. Kama wewe ni yangu, bila shaka, si kwamba wengi, na hivyo ndiyo jinsi iOS anajua jinsi wengi seli ya kuonyesha. Tena, hii inaweza kusema kitu kama kurudi 3. Meza yangu ina mtazamo safu 3. Hatimaye, iOS anahitaji kujua nini kila kiini inaonekana kama, hivyo kile ni kweli kwenda kufanya ni kuwaita njia hii hapa chini, hii tableView: cellForRowAtIndexPath. Ni kwenda kuwaita njia hii juu ya kila kiini moja ndani ya meza yako. Jinsi gani unajua jinsi mara nyingi simu yake? Naam, ninyi habari ndani ya idadi ya mistari katika sehemu. Sisi ni kwenda kuwaita hii kila siku juu ya seli zetu, na ndani ya hii ambapo unaweza kweli kufanya mambo kama kuweka maandishi au kukuambia nini kuwa buluu kidogo kifungo juu ya upande wa kulia gani. mfano kwa ajili ya kupata chembechembe hizi, tunakwenda kutumia njia hii kuitwa dequeueReusableCellWithIdentifier. Lengo-C ni kweli anajulikana sana kwa urefu ridiculous ya majina yao mbinu, na hii ni kweli kesi nzuri katika mfano uhakika. Nini njia hii haina ni hii tu anasema mimi nataka wewe nipe kiini. Tu iOS kitu. Kama una kitu kama nyimbo 100,000 kwenye iPod yako nini iOS hataki kufanya ni kutenga seli 100,000, kwa sababu kama wewe ni katika juu ya orodha yako, je kweli haja kutenga kumbukumbu kwa hiyo ni kiini 99,000 safu chini? Hapana, kwa sababu kama wewe ni scrolling unaweza aina ya kutenga kama wewe kwenda pamoja. Hii inafanywa kwa ajili yenu. Huwezi kuwa na wasiwasi juu ya mambo ya kijinga kwamba wote utendaji. Wote wanasema ni wewe piga hii dequeueReusableCellWithIdentifier mbinu, na hii anasema, sawa, kama unahitaji nitakacho kujenga kiini mpya kwa ajili yenu. Lakini kama wewe ni chini ya meza na ve tayari zimetengwa seli baadhi saa ya juu ya meza kwamba wewe ni kweli si kwenda haja ya hivi karibuni Mimi naenda kukupa moja ya wale nyuma badala ya kugawa moja mpya, na hivyo hii ni nzuri ya utendaji wasiwasi. Huna kutenga seli mwenyewe. Hiyo naenda kukupa wewe nyuma kiini. Ni kwenda na kurudi na wewe kitu kiini. Mara una kitu kiini unaweza kufanya mambo hayo. Unaweza kuweka Nakala ya kiini na mali hii inaitwa Nakala studio. Unaweza kuongeza kuwa mshale juu ya haki au nyingine random stuff na mali hii nyingine iitwayo accessoryType, na kadhalika na kadhalika. Hebu tuangalie kwa kweli kutekeleza mtazamo meza sasa. Wakati mimi umba mradi huu badala ya kusema moja mtazamo maombi mimi kweli alikuja juu hapa kwa maombi bwana-undani, na hivyo kimsingi hii sambamba na programu pepe iPad kwa mtazamo meza upande wa kushoto na kisha yaliyomo juu ya haki. On iPod au iPhone hii ni kwenda yanahusiana na mtazamo moja meza. Hiyo ambapo mimi got code yangu Starter. Hebu kwanza kuchukua kuangalia storyboard. Yote hii ilifanyika kwa ajili yangu, kimsingi kuundwa. Hii bar urambazaji alinionyeshea nini kiini mfano inaweza kuangalia kama, na mimi unaweza bonyeza mara mbili hii, mabadiliko ya cheo. Nyingine yoyote UI wasiwasi mimi wanaweza kushughulikia huko. faili header inaonekana kweli rahisi. Badala ya kusema hii ni UIViewController tuko sasa akisema hii ni TableViewController, hivyo tunajua kwamba tunataka wawaite mbinu zote za meza. Ijayo nataka kujenga mali ambayo inaenda kuwakilisha mambo ya ndani ya meza yangu. Meza hii ni ya kwenda kiholela kuonyesha orodha ya matunda, na hivyo mimi haja ya kuunda baadhi ya safu ambayo mimi unaweza kuingiza matunda. Ndani ya utekelezaji wangu faili jambo la kwanza nataka kufanya ni mimi nataka kuhakikisha mimi initialize hii safu. Mimi alisema alloc init, umba matunda yangu safu, na mimi nina akiongeza mambo 4 kwa hiyo, moja ambayo ni zaidi kuliko utata 3 nyingine. Na sasa nina safu ya ukubwa 4. Sisi ni kutetereka ni juu katika CS50. Mimi sasa safu ya ukubwa 4. Sasa mimi nina kwenda kuanza kujibu maswali haya, na kweli, wakati mimi aliumba hii programu hii yote ilikuwa tayari amefanya kwa ajili yangu. Sikuwa na kucharaza nje sehemu kadhaa katika mtazamo meza. Ilikuwa tayari huko, na mimi nina kujaza nafasi zilizoachwa wazi. Jinsi sehemu ngapi niseme? Mmoja. Zote kufanyika. Jinsi safu ngapi niseme? Naam, mimi kuwa na mstari mmoja kwa kila matunda, hivyo hii kuhesabu ni mali ya safu yoyote kwamba anasema jinsi kubwa ni nini? Hiyo ni jinsi wengi safu nina. Hatimaye, nahitaji kusema nini kila kiini kuangalia kama? Mimi nina kwenda kusema dequeueReusableCellWithIdentifier. Tena, hii ilikuwa tayari imeandikwa kwa ajili yangu. Sikuwa na kufanya hili mwenyewe, na nataka kupata nyuma hii kiini katika eneo hili. Kumbuka kwamba sisi ni wito njia hii sawa juu ya kila kiini moja, na hoja hii hapa, hoja hii indexPath, anasema nini mstari mimi nina in Nikisema indexPath.row chini hapa hii itakuwa 0, basi itakuwa 1, basi itakuwa 2, na hii ni hivyo najua nini kiini Mimi sasa kuonyesha. Nataka kuweka Nakala ya kiini kutumia mali hii textLabel kwenda ndani matunda safu yangu na kupata kitu sambamba na kila mstari. Kama hii ni kamba, mimi nina sasa kuweka Nakala mali kwa kamba. Mimi siwezi kufanya kitu moja nyingine. Naweza pia kujiandikisha handler tukio juu ya kila moja ya seli, hivyo wakati mimi bomba kila seli hizi hii didSelectRowAtIndexPath, hii ni kwenda kuitwa kwa ajili yangu, hivyo tu na kufafanua hii naweza sasa kushughulikia kile kinachotokea wakati wewe bomba kiini, na tena, sisi ni kupita katika ambayo kiini tapped ili tuweze kutumia tena hiyo tukio handler kwa wote wa seli zetu. Tena, hii ni kitu iOS ni kufanya kwa ajili yangu. Hebu kuonyesha mwingine popup annoying kwamba tu anasema wewe ilichukua kitu ambapo kwamba kitu ni kwenda kuwa kitu mfululizo. Wakati mimi kukimbia hii, mimi naenda kuwa hii nice meza mtazamo na mstari mmoja kwa kila moja ya matunda haya, na ikiwa mimi bomba moja ni inaniambia nini kilichotokea. Mantiki? Hebu kujenga kidogo kidogo ngumu zaidi ya programu, kama vile kubonyeza wewe ilichukua nyanya ni. sehemu nzuri kuhusu storyboarding ni siyo tu kwenda kusaidia skrini kubuni sisi binafsi, ni pia kwenda kutusaidia kufunga pamoja programu yetu yote, hivyo programu ya mwisho tutaweza kuwa jengo ni hii nice habari za michezo msomaji, na hivyo ni kwenda na skrini nyingi, na hivyo mimi kweli anaweza kuwakilisha kila moja ya skrini hizi nyingi kwenye storyboard, na mimi wanaweza zoom nje na kuona programu yangu kutoka ngazi ya juu. Ili kujenga mpya kipengele ndani ya storyboard yangu ni kweli rahisi ndani ya Builder Interface. Kama mimi nataka kuongeza mwingine screen hii, kwa mfano, Naweza kwanza zoom nje kwa zoom Bana kwamba Apple anapenda sana, na chini hapa kabla mimi kutafuta kifungo na mimi Drag na kuacha kifungo kama nataka kujenga screen mpya kweli mimi Drag tu na kuacha nzima mtazamo mtawala, hivyo kama mimi pick hii, kuvuta ni zaidi ya hapa, hey, kuna mwingine screen, na hivyo sasa kwa kutumia hiyo storyboard faili Naweza kuwa na yote ya skrini ndani ya programu yangu, na mimi wanaweza zoom nje na kuona jinsi kuingiliana. Haya si kuingiliana bado. njia ambayo haya skrini 2 kuingiliana ni unaweza kufafanua uhusiano. Unaweza kusema hii kimsingi screen, wakati waandishi button hii, Mimi nataka wewe slide juu ya screen hii mpya. Hiyo ina maana kuna aina hii ya uhusiano kati ya  screen kwanza na pili screen. Itabidi kimsingi mshale kutoka kifungo kwamba kwa screen pili kusema kwamba wakati waandishi hii kifungo hiyo ambapo nataka kwenda. Tu kama sisi kudhibiti clicked na dragged kufafanua maduka those tunakwenda kufanya kitu kimoja kufafanua segues haya. Tutaweza kuona mfano kwa kuwa, na kabla ya kweli mpito kutoka screen moja hadi nyingine iOS ni nzuri kutosha kuwaita njia hii kuitwa prepareForSegue, na hii ni mahali ambapo tunaweza kuanza kutuma data kutoka programu moja hadi nyingine. Katika mfano sisi ni juu ya kuangalia ni mapenzi kimsingi kuruhusu sisi kuchuja timu ya baseball kwa ligi na mgawanyiko. Wakati mimi kuchagua ligi, kwa mfano, nataka mpito screen yangu ijayo ambapo naweza kuonyesha yote ya mgawanyiko katika kuwa ligi au timu zote tofauti. Mimi haja ya kutuma kwa kuwa screen nini timu unapaswa kuonyesha. Ili kufanya hivyo mimi naenda kuchukua faida ya njia hii hapa. Hatimaye, tu hatua random juu ya iOS. Kama unataka kuhifadhi data kuna jambo hili aitwaye msingi data, ambayo ni kweli ngumu aina ya kufanya kazi pamoja. Unaweza pia kutumia SQL kuhifadhi data, ambayo, tena, ni nzuri lakini aina ya upande ngumu zaidi kufanya kazi pamoja, lakini pia inasaidia iOS mambo haya kweli cool kuitwa mali orodha, na orodha ya mali tu ni faili kwamba inawakilisha jozi thamani muhimu. Unaweza kufafanua orodha ya funguo, na wewe kusema ufunguo hii ni kwenda kuwa safu. Muhimu Hii ni kwenda kuwa kamba, na kimsingi chochote unaweza kufanya katika JSON unaweza kufanya ndani ya orodha ya mali, na hivyo kweli hii nicely inaruhusu sisi kazi na baadhi ya data. Kwa mfano, nina hii Teams.plist kwamba mimi kuundwa. Mimi umba mpya plist faili, na mimi siwezi drill chini. Hii ni kamusi, hii ni kamusi, hizi ni masharti, na hivyo hii ni nzuri graphical uwakilishi wa hati JSON au tu ya kuweka jozi ufunguo thamani, na hivyo hii ni data ambayo mimi itakuwa kufanya kazi na ndani ya programu yangu. Hebu kwanza kuja hapa. Tuna files mengi zaidi sasa. Lakini hebu kwanza kuja hapa kwenye Muhtasari. storyboard hapa-kama mimi wanaweza zoom nje- sasa tunaweza kuona kwamba hii ni mtiririko wa programu yangu. Mimi kwanza kwenda kuanza kwenye screen hii. Mimi nina kwenda drill chini screen hii, na mimi nina kwenda drill chini screen hii, na tunaweza kuona hapa kwamba kama mimi aina ya hoja moja ya hizi kuzunguka tuna hizi mishale inaenda hapa na hapa, na njia ya mimi kufafanua kwamba mshale ilikuwa kama mimi zoom katika kidogo, na kama mimi kuja juu na mtawala mtazamo huu, na hapa ni kiini, na mimi nataka kusema kwamba wakati bomba kiini Mimi nataka wewe slide juu ya screen mwingine. Naweza tu kushikilia chini ya udhibiti, kitabu juu ya kidogo kidogo, kushikilia chini ya udhibiti, Drag hii kiini juu na basi kwenda. Na zaidi ya hapa tunasema nini mpito kwamba unataka kutumia? Je, unataka kutumia kitu slide kwamba wito kushinikiza? Je, unataka slide juu kutoka chini? Hiyo inaitwa modal. Na mara moja mimi bonyeza moja ya hizi, ni kwenda kuteka hii arrow kwa ajili yangu, na hiyo ina maana kwamba Nimekuwa kwa kweli kubebwa kile kinachotokea wakati Nakaza hii kifungo graphically. Sikuweza kuandika code yoyote kwa kweli slide kutoka screen 00:59 ijayo. Mimi defined hii kuibua ndani ya Builder Interface. Kama mimi bonyeza mshale huu, tunaweza kuona kwamba mimi alitoa jambo hili jina. Mimi kuitwa ni showDivisions, na hii ni ili niweze kujua kile cha mpito ni karibu kutokea, na tutaweza kuona nini katika tu sec. Hiyo ni jinsi nimekuwa wired up skrini tofauti katika programu yangu. Kama hili walikuwa kifungo, kwa mfano, badala ya mtazamo meza, Mimi inaweza kudhibiti bonyeza button, Drag juu ya screen ijayo, na kwamba ni jinsi gani naweza kufanya urambazaji kwamba njia. Kweli haraka, kama sisi kuja katika MasterViewController, tena, tuko tu kwenda kufafanua orodha ya mambo kwamba itakuwa visas katika mtazamo meza. Hapa mimi kusema mimi nataka kuchukua kwamba faili plist, na mimi nataka wewe mzigo juu katika kamusi, na mara moja tu na kwamba kamusi, mimi naenda kujibu maswali hayo tena. Hapa ni sehemu kadhaa. Mmoja, kuna mstari mmoja kwa kila ligi, na maandishi ya kila kiini wanapaswa kuwa ama moja kwanza, ligi ya kwanza, ligi ya pili, na kadhalika. Mwisho, mimi naenda kutumia njia hii ya kuwa sisi tu kuona kuitwa prepareForSegue, na hii ni njia ambayo inaenda kuwa fired wakati mimi bonyeza juu ya moja ya safu hizo na kwa hiyo inleda kwamba mpito kwamba mimi kuanzisha na mishale. Hii ni kusema kwamba siwezi kuwa na nyingi mahusiano kutoka screen moja na nyingine. Kama mimi na vifungo 2 na kifungo kila inachukua wewe screen mbalimbali Mimi naenda kuwa segues 2, 1 kwa kila kifungo. Lakini prepareForSegue hii ni mara ya pili, kwenda kuwa reused kwa kila moja ya mahusiano mbalimbali, hivyo hiyo ina maana kwamba mimi haja njia ya kutambua kama vyombo vya habari kifungo kwanza au vyombo vya habari button pili. Kumbuka wakati mimi alitoa kwamba segue jina, hii showDivisions, hiyo ni jinsi mimi sasa kujua kwamba hii ni segue kwamba alikuwa ulioamilishwa. Yote nataka kufanya ni mimi nataka kusema Mimi nataka kufikiri nini mimi tu hit, na hivyo kupata kwamba, naweza kusema mimi nataka indexPath kwa safu ya kuchaguliwa, kumbuka indexPath tu anasema ambapo mimi tu clicked, na kisha Mimi nataka kusema nataka kufikiri ambapo mimi naenda. DestinationViewController hii, hiyo ni mali ya segue. Hiyo screen nitakacho, hivyo najua kwamba screen nitakacho inaitwa DivisionsViewController kwa sababu mimi umba kwamba darasa, na hivyo sasa kama mimi kusema d.divisions Mimi sasa kuweka mali ya mtawala mtazamo mimi nina kuhusu kwenda. Hii ni jinsi mimi nina kutuma data kutoka screen moja na screen mwingine. Kuangalia tu DivisionsViewController hii unaweza kuona hapa kwamba katika faili. h kuna mgawanyiko mali, na kwamba ni nini mimi kimsingi populating, hivyo kwamba ni jinsi gani mimi kujua kwamba mimi nina kuonyesha mgawanyiko sambamba na ligi hiyo mimi clicked, na tena, halisi meza mtazamo inaonekana pretty kiasi sawa, tu kujibu those 3 rahisi maswali kama vile kutambua kile kinachotokea wakati hoja ya screen ijayo. Michache tu ya mambo mengine hapa. Utaona saa ya juu hapa kwamba badala ya kusema ni pamoja na # Mimi sasa akisema # kuagiza. Hii ni kitu Lengo-C. kuagiza kimsingi ni toleo nicer ya pamoja, na kwa mfano, tunahitaji kujua kile darasa hili ni, hivyo siwezi kusema tu DivisionsViewController. Kama hatukuwa hashtag ndani standardio.c ya faili wetu c. compiler hakuwa na wazo gani printf ilikuwa. Vile vile, kama mimi si kuagiza DivisionsViewController compiler kweli ana sijui nini DivisionsViewController ni. Tu kuhakikisha kwamba ndani ya mafaili yako tofauti. M wewe kuhakikisha kuagiza sambamba. h files ili compiler anajua nini kinaendelea. Hatimaye, nini Apple hatimaye gani ni kuonyesha baadhi ya data kwa kutumia mtazamo mtandao, na hivyo mtazamo mtandao ni kitu ambayo unaweza embed kidogo ya mtandao browser ndani ya programu yako. Wote unahitaji kufanya ni ugavi URL kwa mtandao browser yako, hivyo nataka kwenda mlb.mlb.com, na hii ni jinsi gani naweza kupata ukurasa wa nyumbani kwa kila timu, na hivyo kwa kupita katika URL hii mtazamo mtandao wanaweza kuonyesha hii kwa ajili yangu, na mimi unaweza kuvinjari kote, na simulator ni katika matumizi na kwamba moja. Sasa hii alifika kutoka plist yangu. Kama mimi bonyeza hii hii pia alifika kutoka plist yangu, na sliding hili kubebwa na kufafanua segues hizo. Mimi bonyeza hii na moja zaidi, na sasa hapa ni UIWebView yangu, hivyo tu kama kwamba hapa ni tovuti kwa ajili ya URL kwamba mimi tu iliyoingia, na sikuwa na kushughulikia chochote mambo. Hii ni jinsi ya kuonyesha ukurasa wa mtandao. Mambo kama button hii nyuma hapa pia niliopewa kabisa kwa sababu nimekuwa bure defined mahusiano haya kwa kutumia segues. Maswali yoyote? Yeah. [Mwanafunzi] Basi wakati matumizi alloc, wewe kamwe kuwa na kitu chochote bure? Hasa, wakati wewe piga alloc na init huna huru yake. IOs ni kwenda kushughulikia yote ya kwamba kwa ajili yenu. Ni ajabu, na wewe si kuvunja sheria yoyote. Yeah. [Mwanafunzi] Kama ungekuwa ni pamoja na timu zaidi kwamba inaweza kufaa kwenye screen, itakuwa ni ya moja kwa moja kuwa na chaguo kitabu, au ni kwamba kitu unahitaji kuongeza? Hasa, kama ningekuwa na timu zaidi, kwa mfano, ingekuwa moja kwa moja kushughulikia scrolling kwa ajili yangu, na matatizo yote ya utendaji na meza kubwa pia kubebwa kabisa kwa ajili yangu. Maswali mengine? Wote wa kanuni hii ni kwenda kuwa posted. Sisi aina ya glossed juu kidogo ya maelezo zaidi madogo madogo, lakini mambo kama kuweka baadhi ya mali kwa mtazamo mtandao ni mambo ambayo unaweza kupata kwa browsing nyaraka Apple, ambayo ni kweli, kweli nicely zilizowekwa. Wao wana mengi ya programu sampuli na mfano Matumizi wa APIs mbalimbali, hivyo dhahiri peruse hayo kama unaweza. Tu baadhi ya viungo msaada unaweza kutaka kuangalia. Hizi ni baadhi Handy nyaraka viongozi. URL ni mkubwa, hivyo wao 'walioteuliwa. Hii moja ya kwanza ni maktaba mzima wa nyaraka. Kuna kidogo tafuta baa, hivyo kama wewe kuanza kuandika kifungo itaanza kutoa taarifa zote kuhusu mambo yote unaweza kufanya na kifungo. Nimekuwa pia ni pamoja View Jedwali Programming Guide. Hushughulikia maoni meza kwa undani zaidi, jinsi ya kufanya mambo kama dynamically kuongeza seli au chembechembe hariri au kuondoa yao. Kuna kura ya programu sampuli kutoka Apple kwamba nitakuonyesha jinsi ya kufanya hivyo, na hatimaye, hii moja ya mwisho ni Binadamu Interface Miongozo, na hii ni kimsingi baadhi ya majadiliano ya vipengele UI, mambo kama hatuwezi kufanya kifungo kwamba ni 4 Ukubwa na saizi 4. Hilo ni wazo mbaya, na mambo mengine kwamba Apple anataka kufanya kuhamasisha design nzuri. Maswali yoyote ya mwisho kabla ya sisi kumaliza up? Haki zote, dhahiri jisikie huru-we're kwenda na maandiko maalum juu ya Diskutera. Tutaweza kuwa iOS moja, hivyo dhahiri kujisikia huru kutumia hiyo. Kama unataka kufanya kazi na wanafunzi wako juu ya miradi au kusaidia takwimu nje baadhi random iOS stuff jisikie huru email yangu, na dhahiri peruse online wote code kwa sababu tu kwa maslahi ya wakati sisi aina ya glossed juu zaidi finer grained maelezo ya mambo. Lakini kama bado, basi, bahati nzuri katika miradi yako iOS, na natumaini tuna kufurika kubwa ya programu katika Hifadhi App. [CS50.TV]