1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar] [IOS: Ritun Apps Eins Boss] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [Þetta er CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Allt í lagi, allir, velkomin á IOS: Ritun Apps eins og Boss. 5 00:00:12,000 --> 00:00:16,000 Þetta námskeið er að fara að einblína á að skrifa forrit fyrir iPhone 6 00:00:16,000 --> 00:00:19,000 og síðan skriflega apps fyrir iPad, og svo erum við í rauninni að fara að ganga í gegnum 7 00:00:19,000 --> 00:00:23,000 a par mismunandi dæmi um hvernig á að gera app, einfaldur leikur eins og Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 eða ef þú ert meiri áhuga á að gera app eins og einhvers konar fréttir lesandi 9 00:00:26,000 --> 00:00:30,000 eða eitthvað sem hefur áhrif á Netinu mun ég tala um það eins og heilbrigður. 10 00:00:30,000 --> 00:00:32,000 Hér er stutt dagskrá. 11 00:00:32,000 --> 00:00:36,000 >> IOS apps eru skrifuð á tungumáli sem heitir Objective-C, 12 00:00:36,000 --> 00:00:39,000 og svo er þetta svolítið svipað C en ekki í raun á öllum, 13 00:00:39,000 --> 00:00:41,000 þannig að við munum vera að tala svolítið um tungumálið sjálft 14 00:00:41,000 --> 00:00:45,000 og þá hvernig á að byggja iPhone apps með þessu forriti sem heitir Xcode, 15 00:00:45,000 --> 00:00:48,000 sem ef þú hefur ekki sótt það enn ekki hika við að sækja núna. 16 00:00:48,000 --> 00:00:50,000 Það er nokkur gígabæta. 17 00:00:50,000 --> 00:00:54,000 Það ætti að vera ókeypis á App Store, svo þú þarft að hafa Mac 18 00:00:54,000 --> 00:00:57,000 helst að keyra nýjustu útgáfuna af OS X. 19 00:00:57,000 --> 00:00:59,000 Ef þú ert ekki, engin vandamál. 20 00:00:59,000 --> 00:01:02,000 Við höfum Macs í vísindasafn í boði fyrir þig 21 00:01:02,000 --> 00:01:05,000 með Xcode uppsett, og svo ekki hika við að nota þær fyrir þróun. 22 00:01:05,000 --> 00:01:07,000 Ef þú vilt gera app, en ekki Mac, ekki hafa áhyggjur. 23 00:01:07,000 --> 00:01:09,000 Það er nóg af auðlindum háskólasvæðinu fyrir það. 24 00:01:09,000 --> 00:01:15,000 Og svo þá erum við að fara að ná 2 stærri dæmi um mismunandi forrit sem þú getur gert. 25 00:01:15,000 --> 00:01:19,000 Objective-C er tæknilega það er kallað frábær sett af C. 26 00:01:19,000 --> 00:01:24,000 Það þýðir að allir C kóða gildir einnig Objective-C kóða. 27 00:01:24,000 --> 00:01:29,000 Það þýðir að við svona vegur borði á sumir fleiri lögun til C. 28 00:01:29,000 --> 00:01:33,000 Sumar þessara aðgerða eru ekki að þurfa að alltaf að skrifa malloc aftur, þakka Guði, 29 00:01:33,000 --> 00:01:36,000 ekki að þurfa að hafa áhyggjur af þeim heimskur ábendingum og frjáls þá og allt það dót 30 00:01:36,000 --> 00:01:40,000 þú hataðir um C, og það er góður af farið í Objective-C. 31 00:01:40,000 --> 00:01:43,000 >> Nú, Objective-C er einnig miklu stærri staðall bókasafn, 32 00:01:43,000 --> 00:01:47,000 þannig að það er mikið meiri virkni sem þú færð ókeypis inni Objective-C. 33 00:01:47,000 --> 00:01:50,000 Manstu þegar við vorum að skrifa PHP við tekið eftir því að við fórum frá 34 00:01:50,000 --> 00:01:54,000 þetta minnsta mál í stórum bókasafn allra þessara brjálaður hlutur sem þú getur gert. 35 00:01:54,000 --> 00:01:56,000 Það sama gerist í IOS. 36 00:01:56,000 --> 00:01:59,000 Það er hluti fyrir hluti eins og Buddhist dagbók, og í raun nokkuð 37 00:01:59,000 --> 00:02:05,000 þú getur hugsanlega hugsa um líklega er þegar í framkvæmd Objective-C á. 38 00:02:05,000 --> 00:02:08,000 Markmið hluti Objective-C vísar eitthvað 39 00:02:08,000 --> 00:02:11,000 heitir Object-oriented Forritun. 40 00:02:11,000 --> 00:02:14,000 Þetta er eins konar nýtt hugtak, en við höfum í raun og veru að mestu lært 41 00:02:14,000 --> 00:02:17,000 mikið af þessum hugmyndum nú þegar. 42 00:02:17,000 --> 00:02:19,000 Hugmyndin á bak við hlutbundin forritunarmál er að þú ert að fara að skipuleggja 43 00:02:19,000 --> 00:02:23,000 a einhver fjöldi af kóða í kring þessum hlutum heitir námskeið, 44 00:02:23,000 --> 00:02:26,000 og þessir flokkar eru mjög lofuðu structs. 45 00:02:26,000 --> 00:02:30,000 Inni á strúktúr sem við í rauninni sagt hér er hlutur, 46 00:02:30,000 --> 00:02:32,000 En þetta getur haft meðlimir. 47 00:02:32,000 --> 00:02:35,000 Til dæmis, a hnút í tengda listanum gætu haft aðra hluti 48 00:02:35,000 --> 00:02:38,000 eins og gildi, sem bendi á næsta hnút á listanum, 49 00:02:38,000 --> 00:02:44,000 og saman sem bendillinn og gildi orti þetta eitt dæmi um strúktúr. 50 00:02:44,000 --> 00:02:47,000 Classes eru mjög svipuð nema 51 00:02:47,000 --> 00:02:50,000 flokkar geta einnig hafa aðgerðir innan þeirra. 52 00:02:50,000 --> 00:02:54,000 Þegar við lýst struct, gætum við bara sagt int n eða hnút * næsta. 53 00:02:54,000 --> 00:02:57,000 >> Nú með Objective-C við getum í raun og veru að setja aðgerðir 54 00:02:57,000 --> 00:02:59,000 inni í þessum hlutum. 55 00:02:59,000 --> 00:03:03,000 Annað sem flokkar geta gert er að þeir geta erft gögn úr öðrum flokkum. 56 00:03:03,000 --> 00:03:07,000 Til dæmis, munum við vera að horfa á fullt af innbyggður-í Objective-C flokkum. 57 00:03:07,000 --> 00:03:11,000 Einn af þeim gæti verið í bekknum sem sýnir skoðun fyrir skjánum, 58 00:03:11,000 --> 00:03:14,000 og svo með því að segja að ég vil að innleiða eigin sýn mína 59 00:03:14,000 --> 00:03:18,000 við segjum í grundvallaratriðum einhvern hjá Apple, líklega mjög gott fólk, 60 00:03:18,000 --> 00:03:21,000 skrifaði þennan flokk fyrir mig, og það sér hlutina eins og sýna hnappa 61 00:03:21,000 --> 00:03:25,000 eða flutningur á skjánum, og við vildi vera virkilega pained 62 00:03:25,000 --> 00:03:28,000 að framkvæma öll þessi virkni sjálf, og svo með því einfaldlega 63 00:03:28,000 --> 00:03:31,000 erfi gögn sem við getum sagt allt sem þú gerðir í þeim flokki 64 00:03:31,000 --> 00:03:34,000 Ég vil líka inni í bekknum mínum, og þá er ég að fara að gera eitthvað annað efni, 65 00:03:34,000 --> 00:03:37,000 þ.e. koma app. 66 00:03:37,000 --> 00:03:40,000 Það er það sem orðið arfleifð þýðir. Við munum sjá fleiri áþreifanleg dæmi. 67 00:03:40,000 --> 00:03:42,000 >> Og að lokum, lykillinn og Object-oriented Forritun er að 68 00:03:42,000 --> 00:03:45,000 það leiðir til gögn hjúpun. 69 00:03:45,000 --> 00:03:48,000 Í sumum vandamál okkar setur við gætum hafa þessar stór, alþjóðlegt breytur 70 00:03:48,000 --> 00:03:51,000 og Víðværur alls staðar, og það er hvernig við myndum halda utan um ástand. 71 00:03:51,000 --> 00:03:55,000 Með flokka við getum byrjað encapsulating upplýsingar inni á hlut. 72 00:03:55,000 --> 00:03:58,000 Ef við eigum bara einn skjár á app okkar, höfum við í raun ekki þurft að hafa nein gögn frá 73 00:03:58,000 --> 00:04:01,000 annar skjár í inni app okkar að 74 00:04:01,000 --> 00:04:04,000 og það með því að encapsulating hlutina innan flokka þetta leiðir í raun 75 00:04:04,000 --> 00:04:08,000 til miklu betri kóða hönnun, og þetta er mögulegt með sumir af the fleiri valkosti 76 00:04:08,000 --> 00:04:11,000 á Objective-C. 77 00:04:11,000 --> 00:04:15,000 Forewarning er setningafræði fyrir Objective-C er banani. 78 00:04:15,000 --> 00:04:19,000 Það er eins og ekkert sem við höfum séð áður, 79 00:04:19,000 --> 00:04:22,000 svo það er a lítill hluti af a læra að sættast við 80 00:04:22,000 --> 00:04:24,000 Hvað Heck þýðir þetta? 81 00:04:24,000 --> 00:04:27,000 En einu sinni þú fá fortíð að fyrstu læra að það er mjög, mjög slétt 82 00:04:27,000 --> 00:04:29,000 að byrja að skrifa forrit. 83 00:04:29,000 --> 00:04:33,000 >> Til að lýsa því yfir að bekknum, að segja hér er bekkurinn minn, það er til staðar, 84 00:04:33,000 --> 00:04:35,000 og kannski eru hér nokkur atriði sem ég ætla að skilgreina seinna, 85 00:04:35,000 --> 00:04:38,000 Ég ætla að segja @ tengi. 86 00:04:38,000 --> 00:04:41,000 Ég ætla að segja @ tengi. Ég ætla að gefa bekknum nafn. 87 00:04:41,000 --> 00:04:43,000 Og svo seinna annars staðar ætla ég að segja @ enda, 88 00:04:43,000 --> 00:04:46,000 og allt þar á milli á @ tengi og @ enda 89 00:04:46,000 --> 00:04:48,000 er að fara að bekknum. 90 00:04:48,000 --> 00:04:51,000 Það er að fara að vera það sem er inni. H skrám okkar. 91 00:04:51,000 --> 00:04:55,000 Rétt eins og í C okkar. H skrár sagði í grundvallaratriðum hér eru nokkur atriði sem munu vera til. 92 00:04:55,000 --> 00:04:57,000 Ég er ekki endilega að segja þér hvað þeir gera enn, 93 00:04:57,000 --> 00:04:59,000 en þýðandinn þarf að vita að þeir eru fyrir hendi. 94 00:04:59,000 --> 00:05:04,000 Seinna inni. M okkar skrá-því m fyrir Objective-C 95 00:05:04,000 --> 00:05:08,000 er þar sem við erum í raun að fara að skilgreina hvað þessi flokkar gera. 96 00:05:08,000 --> 00:05:11,000 Líkt. C skrá okkar, að því tilskildu að við útfærslu á störfum. 97 00:05:11,000 --> 00:05:15,000 Inni á skránni okkar. M við erum að fara að segja hér er það sem allar aðgerðir 98 00:05:15,000 --> 00:05:18,000 inni af mínum flokki hvað þeir gera allt. 99 00:05:18,000 --> 00:05:22,000 Og að lokum, inni í strúktúr gætum við sagt innan þeirra hrokkið axlabönd 100 00:05:22,000 --> 00:05:25,000 int N eða hnút * næst, 101 00:05:25,000 --> 00:05:28,000 og í Objective-C við erum að fara að nota leitarorð @ eign, 102 00:05:28,000 --> 00:05:31,000 og þetta er það sem er að fara að skilgreina eiginleika, 103 00:05:31,000 --> 00:05:36,000 eða non-aðgerðir sem eru hluti af bekkinn. 104 00:05:36,000 --> 00:05:40,000 >> Hringt er í Objective-C er einnig banana. 105 00:05:40,000 --> 00:05:43,000 Þegar við lýst aðgerðir í C ​​og ég sagði eitthvað eins og int foo 106 00:05:43,000 --> 00:05:46,000 og opna paren og þá gaf það rakalista. 107 00:05:46,000 --> 00:05:51,000 Þetta er það sem lýsa aðferðum eða aðgerðum lítur út í Objective-C. 108 00:05:51,000 --> 00:05:54,000 Ef ég vil lýsa því yfir að aðgerð eða aðferð 109 00:05:54,000 --> 00:05:58,000 þar sem ég er að segja aðferð er í raun bara aðgerð sem er meðlimur í bekknum, 110 00:05:58,000 --> 00:06:01,000 svo konar víxlanlegur, en í raun ekki, 111 00:06:01,000 --> 00:06:03,000 svo inni aðferð vil ég að búa til nýja aðferð. 112 00:06:03,000 --> 00:06:06,000 Það er að fara að fara aftur ekkert, svo það er að fara að vera ógilt tegund. 113 00:06:06,000 --> 00:06:08,000 Þetta er aftur gerð virka minni. 114 00:06:08,000 --> 00:06:11,000 Nú höfum við parens hér því-ég veit ekki. 115 00:06:11,000 --> 00:06:14,000 Næst er að fara til vera the nafn virkni mína, 116 00:06:14,000 --> 00:06:17,000 og þá loks erum við með semíkommu bara eins og við átti í C. 117 00:06:17,000 --> 00:06:19,000 Hvað er nýtt hér er þessi strákur hér. 118 00:06:19,000 --> 00:06:22,000 Þetta bandstrik er í raun nauðsynlegt, og hvað þetta segir er að 119 00:06:22,000 --> 00:06:26,000 þessi aðferð hér verður kallað á dæmi af bekknum. 120 00:06:26,000 --> 00:06:29,000 >> Eftir að við lýst structs okkar og ég sagði líklega eitthvað eins og 121 00:06:29,000 --> 00:06:32,000 struct hnút n, og að í raun og veru búið 122 00:06:32,000 --> 00:06:35,000 eða instantiated einn af þeim structs svo að ég gæti í raun að byrja að vinna 123 00:06:35,000 --> 00:06:38,000 við það sem er inni í henni, svo þýðir þetta þjóta að við verðum að 124 00:06:38,000 --> 00:06:41,000 ræst bekknum bara eins og við instantiated að strúktúr 125 00:06:41,000 --> 00:06:43,000 áður en við getum kallað þessa aðferð á það. 126 00:06:43,000 --> 00:06:46,000 Ef ég vil til að byrja að bæta við rök að aðferðir mínar 127 00:06:46,000 --> 00:06:48,000 það verður jafnvel fleiri banana. 128 00:06:48,000 --> 00:06:50,000 Hér er aðferð nafn mitt. 129 00:06:50,000 --> 00:06:53,000 Og ég ætla að hafa ristill, og eftir þessa hreinsun það segir hér kemur nokkrar rök. 130 00:06:53,000 --> 00:06:56,000 Þessi aðferð tekur eitt rifrildi. 131 00:06:56,000 --> 00:06:59,000 The tegund af röksemdafærslu hans er int, og nafn þess rök 132 00:06:59,000 --> 00:07:03,000 eða breyta að ég ætla að byrja að nota inni í aðferð er kölluð i. 133 00:07:03,000 --> 00:07:05,000 Aftur, þetta er aðferð. Það tekur eitt rifrildi. 134 00:07:05,000 --> 00:07:10,000 >> Ef þú vilt að byrja að bæta við fleiri rök og það fær fleiri banana 135 00:07:10,000 --> 00:07:13,000 á að við höfum þetta ristill sem segir hér kemur minn listi af rökum. 136 00:07:13,000 --> 00:07:15,000 Þetta fyrsta rifrildi er heiltala. 137 00:07:15,000 --> 00:07:17,000 Nú, þetta seinni röksemd er áhugavert. 138 00:07:17,000 --> 00:07:20,000 Breytan sem ég ætla að vera með inni á virka minni 139 00:07:20,000 --> 00:07:23,000 er kallað f, svo inni í virka gat ég sagt 140 00:07:23,000 --> 00:07:25,000 f + = 1 eða eitthvað. 141 00:07:25,000 --> 00:07:30,000 Þessi hlutur hér er í grundvallaratriðum a lykill fyrir þessi rök eða breytu. 142 00:07:30,000 --> 00:07:34,000 Rétt eins og við höfðum helstu pör gildi og eitthvað eins JSON eða tengin fylki 143 00:07:34,000 --> 00:07:37,000 Objective-C tók þá ákvörðun að segja, allt í lagi, bara svo að það er mjög skýr 144 00:07:37,000 --> 00:07:39,000 Þegar þú hringja í aðferð hvað allir þessir þættir eru 145 00:07:39,000 --> 00:07:41,000 Ég er reyndar að fara að nefna þá alla. 146 00:07:41,000 --> 00:07:45,000 Þegar hringt er aðferð, munt þú í raun að segja andFloat, 147 00:07:45,000 --> 00:07:47,000 og þá munt þú gefa það inn 148 00:07:47,000 --> 00:07:50,000 >> Athyglisvert, er þetta ekki nefnt, en allar aðrar breytur eru 149 00:07:50,000 --> 00:07:53,000 þannig að ef við hefðum 3 rök sem ég gæti sagt andFloat 150 00:07:53,000 --> 00:07:56,000 og annað fljóta og svo framvegis. 151 00:07:56,000 --> 00:08:01,000 Þegar ég kalla þessar aðferðir það er banana auðvitað, 152 00:08:01,000 --> 00:08:04,000 þannig að ef ég á hlut, og ég skilgreind aðferð sem kallast foo, 153 00:08:04,000 --> 00:08:09,000 og ég vil kalla það, frekar en að segja foo opna / loka parens 154 00:08:09,000 --> 00:08:11,000 Ég ætla að opna krappi. 155 00:08:11,000 --> 00:08:13,000 Hér er nafn á aðferð mína. 156 00:08:13,000 --> 00:08:17,000 Ég ætla að loka krappi, og þetta er hlutur sem ég er að kalla það á. 157 00:08:17,000 --> 00:08:20,000 Mundu til allar þessar aðferðir í flokkum 158 00:08:20,000 --> 00:08:23,000 því flokkar geta haft aðferðir skilgreindar inni í þeim. 159 00:08:23,000 --> 00:08:26,000 >> Hér ég hef geðþótta búið til hlut af einhverjum flokki, 160 00:08:26,000 --> 00:08:28,000 og þetta er setningafræði til að gera það. 161 00:08:28,000 --> 00:08:31,000 Það eru 2 skref til að búa til hlut. 162 00:08:31,000 --> 00:08:34,000 Fyrsta skrefið er að segja að ég vil að úthluta pláss. 163 00:08:34,000 --> 00:08:37,000 Þetta jafngildir malloc. Við þurfum ekki að segja malloc lengur. 164 00:08:37,000 --> 00:08:42,000 Við lækkað m, gerði það alloc, og stað. C með. M. 165 00:08:42,000 --> 00:08:47,000 Eftir að við alloc eitthvað sem við þurfum þá að frumstilla hana. 166 00:08:47,000 --> 00:08:49,000 Í grundvallaratriðum þegar þú býrð til hluti sem þú might vilja til hafa sumir rökfræði 167 00:08:49,000 --> 00:08:53,000 sem keyrir þegar þær eru búnar, svo þú geta fara framhjá í sumum sjálfgefin gildi 168 00:08:53,000 --> 00:08:57,000 eða eitthvað svoleiðis, og svo þetta init aðferð er það sem raunverulega býr að mótmæla. 169 00:08:57,000 --> 00:08:59,000 Við úthluta fyrsta pláss, eins og við gerðum í C, 170 00:08:59,000 --> 00:09:04,000 og þá erum við að frumstilla hana, sem mega eða mega ekki gera a heild einhver fjöldi. 171 00:09:04,000 --> 00:09:07,000 Þá erum við aftur þennan grip í hlut o. 172 00:09:07,000 --> 00:09:09,000 Það er stjarna hérna vegna þess að þetta er tæknilega a músina, 173 00:09:09,000 --> 00:09:12,000 en ekki hafa áhyggjur, ábendingum eru ekki það stór samningur í Objective-C aftur. 174 00:09:12,000 --> 00:09:15,000 >> Nú höfum við instantiated þennan flokk sem heitir NSObject, 175 00:09:15,000 --> 00:09:19,000 og þetta er bara af handahófi klasa sem Apple hefur. 176 00:09:19,000 --> 00:09:22,000 Við höfum instantiated þetta, og nú hef ég dæmi af þessum flokki 177 00:09:22,000 --> 00:09:25,000 í hlut o, svo þýðir að ef ég skilgreint 178 00:09:25,000 --> 00:09:29,000 þessar aðferðir sem ég gæti hringt í þá svona. 179 00:09:29,000 --> 00:09:31,000 Á sama hátt, ef ég vildi hringja í aðferð við eitt rifrildi, 180 00:09:31,000 --> 00:09:34,000 þannig að þetta er á barnum aðferð, sem tekur einn rök, 181 00:09:34,000 --> 00:09:38,000 og hér er Baz: qux aðferð, þannig að þetta tekur 2 rök. 182 00:09:38,000 --> 00:09:44,000 Þetta kallar eina aðgerð á þessari mótmæla o. 183 00:09:44,000 --> 00:09:46,000 Skynsamleg? 184 00:09:46,000 --> 00:09:50,000 The setningafræði ætti skynsamleg, en þú svona að venjast því. 185 00:09:50,000 --> 00:09:54,000 >> Jæja, við skulum tala um nokkra hluti sem eru byggð inn í Objective-C 186 00:09:54,000 --> 00:09:56,000 sem voru ekki endilega byggt inn C. 187 00:09:56,000 --> 00:09:59,000 Í C höfðum konar til að takast á við strengi sem þessum heimskur fylki staf 188 00:09:59,000 --> 00:10:01,000 og það fékk mjög pirrandi. 189 00:10:01,000 --> 00:10:04,000 Objective-C hefur þau öll byggð í fyrir okkur, og það er byggt á 190 00:10:04,000 --> 00:10:06,000 nota þennan flokk sem heitir NSString. 191 00:10:06,000 --> 00:10:10,000 Þegar ég vil að búa til NSString við höfum fleiri Bogagöng setningafræði. 192 00:10:10,000 --> 00:10:15,000 Frekar en að segja "cs50" Við segjum @ "cs50" 193 00:10:15,000 --> 00:10:17,000 og þetta er bara setningafræði til að lýsa yfir strengi í Objective-C. 194 00:10:17,000 --> 00:10:21,000 Þetta er mjög auðvelt að gleyma, svo ekki. 195 00:10:21,000 --> 00:10:24,000 Nú, þegar ég hef þetta, þetta er band, en taka 196 00:10:24,000 --> 00:10:26,000 það er í raun bara mótmæla. 197 00:10:26,000 --> 00:10:30,000 Ég sagði NSString, sem þýðir að ég instantiated bekknum 198 00:10:30,000 --> 00:10:32,000 heitir NSString sem einhver annar skrifaði fyrir mig, 199 00:10:32,000 --> 00:10:35,000 og þeir voru mjög gott um það, og svo nú 200 00:10:35,000 --> 00:10:37,000 Ég get byrjað að kalla aðferðir á það. 201 00:10:37,000 --> 00:10:40,000 Ef ég kalla aðferðina lengd á þessu mótmæla s 202 00:10:40,000 --> 00:10:43,000 það er að fara að koma aftur til mín á lengd strengsins. 203 00:10:43,000 --> 00:10:45,000 Þetta er bara eins og strlen í C. 204 00:10:45,000 --> 00:10:47,000 Þetta myndi aftur 4. 205 00:10:47,000 --> 00:10:51,000 >> Á sama hátt, annar aðferð sem ég gæti langað til að hugsa um er þetta characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 Þetta er aðferð sem segir um þetta band s 207 00:10:54,000 --> 00:10:57,000 Ég vil að þú að fá 0 staf, 208 00:10:57,000 --> 00:10:59,000 og svo myndi þetta aftur til mín eðli c, 209 00:10:59,000 --> 00:11:02,000 og það er allt fullt fleiri af þessum aðferðum sem þú getur Google mjög auðveldlega. 210 00:11:02,000 --> 00:11:07,000 Skjöl Apple er mikill, og við munum taka a líta á það í hluti. 211 00:11:07,000 --> 00:11:09,000 Þeir eru strengir. 212 00:11:09,000 --> 00:11:11,000 Við höfum einnig breytilegum fylki stærð innbyggður 213 00:11:11,000 --> 00:11:13,000 Mundu í C þegar við lýst fylki 214 00:11:13,000 --> 00:11:16,000 við þurftum að segja að þú ert með 5 þætti, enda sögu. 215 00:11:16,000 --> 00:11:18,000 Þegar við komum að JavaScript og PHP við gætum byrjað 216 00:11:18,000 --> 00:11:20,000 gera hlutina eins og að bæta þætti og færa atriði. 217 00:11:20,000 --> 00:11:22,000 Við getum gert það sama í Objective-C. 218 00:11:22,000 --> 00:11:26,000 Frekar en að búa til fylki í venjulegri C hátt 219 00:11:26,000 --> 00:11:30,000 við höfum enn annað sem kallast NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Það er líka NSArray, 221 00:11:33,000 --> 00:11:35,000 og þetta er að fara að í grundvallaratriðum þjappa sumir array. 222 00:11:35,000 --> 00:11:38,000 Þetta segir það fyrsta sem ég vil gera er að ég vil að úthluta 223 00:11:38,000 --> 00:11:41,000 pláss fyrir nýja fylking, og eftir að ég úthluta það 224 00:11:41,000 --> 00:11:43,000 Ég þarf þá að frumstilla hana. 225 00:11:43,000 --> 00:11:45,000 Aftur, bara að hringja þessar 2 aðferðir. 226 00:11:45,000 --> 00:11:48,000 Nú þýðir þetta að inni þennan hlut á 227 00:11:48,000 --> 00:11:50,000 Ég hef tómt array situr þar. 228 00:11:50,000 --> 00:11:54,000 Ef ég vil bæta einhverju við þennan fjölda, get ég hringt í addObject aðferð. 229 00:11:54,000 --> 00:11:59,000 Mig langar að bæta hlut við fylkisins A, og mig langar að bæta við streng CS50. 230 00:11:59,000 --> 00:12:02,000 Ef ég vildi öfugt fjarlægja sem ég get sagt að ég vil 231 00:12:02,000 --> 00:12:09,000 fjarlægja hlut á fyrsta sæti á fylki eða hlut a. 232 00:12:09,000 --> 00:12:11,000 >> Skynsamleg? 233 00:12:11,000 --> 00:12:14,000 Jæja, svona að venjast þessu ferningur krappi hlutur þú. 234 00:12:14,000 --> 00:12:18,000 Við the vegur, inni mikið af bókasöfnum Apple sérðu þetta NS. 235 00:12:18,000 --> 00:12:21,000 The NS stendur í raun fyrir næsta skref, sem var einn af Steve Jobs fyrstu fyrirtækjum, 236 00:12:21,000 --> 00:12:24,000 og það er þar sem hann byrjaði í raun að skrifa mikið af kóða 237 00:12:24,000 --> 00:12:27,000 eins konar grundvöll fyrir Mac OS X og öll önnur efni, 238 00:12:27,000 --> 00:12:32,000 og svo er þetta NS konar þessa fallegu arfleifð hrópa út að einn af fyrri félögum 239 00:12:32,000 --> 00:12:34,000 baka þegar Apple var fyrst að byrja út. 240 00:12:34,000 --> 00:12:36,000 Það er alls staðar. 241 00:12:36,000 --> 00:12:41,000 Við skulum taka a líta á heildræn Objective-C td. 242 00:12:41,000 --> 00:12:44,000 Hér er ég inni í Xcode. 243 00:12:44,000 --> 00:12:47,000 Til að fá hér, hlaðið ég fyrstu Xcode frá the App Store, 244 00:12:47,000 --> 00:12:50,000 opnaði það upp, og þá fór ég upp hér til að skrá, 245 00:12:50,000 --> 00:12:54,000 hérna til nýja, og þá verkefni. 246 00:12:54,000 --> 00:12:57,000 Eftir að ég gera það ég hef alla þessa valkosti sem ég vil búa, 247 00:12:57,000 --> 00:12:59,000 og svo við munum taka a líta á þessa valkosti síðar, 248 00:12:59,000 --> 00:13:03,000 en bara fyrir þessu dæmi, vegna þess að við erum í raun ekki að fara að hafa app enn, 249 00:13:03,000 --> 00:13:06,000 Ég kom hingað og ég sagði Command Line Tool, 250 00:13:06,000 --> 00:13:09,000 og það er app sem ég gat keyrt á stjórn lína 251 00:13:09,000 --> 00:13:12,000 bara eins og við höfum verið í gangi frá C. 252 00:13:12,000 --> 00:13:16,000 Það er hvernig ég bjó þetta verkefni, og svo núna er ég hér, 253 00:13:16,000 --> 00:13:20,000 þannig að við skulum fyrst líta á þessa skrá, og það ætti að líta nokkuð kunnuglegt. 254 00:13:20,000 --> 00:13:24,000 Ég er með int nafn. Það er vinur argc minn, annar vinur argv minn. 255 00:13:24,000 --> 00:13:30,000 Og svo getum við séð að þetta er innganga benda fyrir fyrsta Objective-C umsókn mína. 256 00:13:30,000 --> 00:13:32,000 Hér getur hunsa þetta fyrir nú. 257 00:13:32,000 --> 00:13:35,000 Þetta er í grundvallaratriðum sumir stjórnun minni efni sem þú munt ekki raunverulega 258 00:13:35,000 --> 00:13:37,000 alltaf að hafa áhyggjur. 259 00:13:37,000 --> 00:13:39,000 >> Við skulum líta á þessa fyrstu blokk hér. 260 00:13:39,000 --> 00:13:46,000 Þessi fyrsta lína, ef ég segi Student * Alice = [[Student alloc] init] hvað er það að gera? 261 00:13:46,000 --> 00:13:50,000 Þetta fyrsta nemanda hér, þetta er líklega í flokki. 262 00:13:50,000 --> 00:13:54,000 Þetta er ekki flokkur sem Apple skrifaði, en það er tegund sem ég skrifaði. 263 00:13:54,000 --> 00:13:57,000 Það fyrsta sem ég vil gera er að ég vil að úthluta pláss fyrir nýja nemendur, 264 00:13:57,000 --> 00:14:00,000 og þá vil ég að frumstilla hana, svo gefur þetta mér til baka 265 00:14:00,000 --> 00:14:05,000 þetta nýja nemandi mótmæla, og ég er að geyma það í breytu sem heitir Alice. 266 00:14:05,000 --> 00:14:07,000 Hvaðan sem bekknum koma frá? 267 00:14:07,000 --> 00:14:12,000 Jæja, hérna vinstra megin þetta eru allar mismunandi skrár inni í verkefnið mitt. 268 00:14:12,000 --> 00:14:16,000 Við sjáum hér hef ég Student.h og Student.m. 269 00:14:16,000 --> 00:14:20,000 The. H skrá, muna, er þar sem ég lýsi allt það 270 00:14:20,000 --> 00:14:22,000 sem mun vera í bekknum. 271 00:14:22,000 --> 00:14:25,000 >> Við skulum taka a líta á það. 272 00:14:25,000 --> 00:14:29,000 Allt í lagi, hér höfum við þetta @ tengi, og það segir að hér kemur 273 00:14:29,000 --> 00:14:33,000 yfirlýsingar af öllu sem er til staðar innan bekknum mínum. 274 00:14:33,000 --> 00:14:36,000 Og ég er með ristill. Og ég hef þetta NSObject hlutur. 275 00:14:36,000 --> 00:14:40,000 Þetta ristill táknar að arfleifð hluti við vorum að ræða svolítið fyrr. 276 00:14:40,000 --> 00:14:43,000 Þetta segir allt sem NSObject getur gert 277 00:14:43,000 --> 00:14:46,000 þar NSObject er þessi flokkur skrifað af einhverjum öðrum, 278 00:14:46,000 --> 00:14:50,000 allt þetta NSObject get ég vilja til vera fær til gera það. 279 00:14:50,000 --> 00:14:54,000 Með því að segja: NSObject sem þýðir að ég í rauninni 280 00:14:54,000 --> 00:14:58,000 arf allar virkni öðrum flokki. 281 00:14:58,000 --> 00:15:02,000 Það gaf mjög mér alveg fullt af mismunandi aðferðir og eiginleika sem ég get notað. 282 00:15:02,000 --> 00:15:05,000 Down hér er ég að búa til 2 eignir. 283 00:15:05,000 --> 00:15:08,000 Það þýðir að nemandi minn, ef þetta væri struct, þessi myndi vera 2 hlutir 284 00:15:08,000 --> 00:15:11,000 inni struct mínum, svo hefur hver nemandi nafn 285 00:15:11,000 --> 00:15:14,000 það er strengur, og nemandi hefur einnig einkunn, 286 00:15:14,000 --> 00:15:17,000 sem er int. 287 00:15:17,000 --> 00:15:23,000 >> Að lokum, niður hér ætla ég að búa til aðferð fyrir nemendur mína. 288 00:15:23,000 --> 00:15:26,000 Ég kallaði aðferð mína, initWithName, og það tekur einn rök, 289 00:15:26,000 --> 00:15:31,000 og þessi röksemd er band, og ég kallaði það nafn. 290 00:15:31,000 --> 00:15:35,000 Nú skulum líta á hvernig við framkvæmd reyndar þessum flokki. 291 00:15:35,000 --> 00:15:38,000 Hér er ég inni. M skrá minn, 292 00:15:38,000 --> 00:15:40,000 m í framkvæmd, held ég. 293 00:15:40,000 --> 00:15:44,000 Ég hef framkvæmd mitt, enda mitt, og hér er þar sem ég er í raun að skilgreina 294 00:15:44,000 --> 00:15:47,000 hvað initWithName gerir. 295 00:15:47,000 --> 00:15:50,000 Ég hef initWithName, nafn breytu mínu, og þá er þetta 296 00:15:50,000 --> 00:15:53,000 er þar sem ég er í raun að búa til nemanda, 297 00:15:53,000 --> 00:15:56,000 og svo er þetta svolítið dulinn, en þetta er eins konar boilerplate 298 00:15:56,000 --> 00:15:58,000 sem þú vilt hafa með í Smiðir þínum. 299 00:15:58,000 --> 00:16:02,000 Þetta frumstilling virka hér initWithName, er tegund af framkvæmdaaðila. 300 00:16:02,000 --> 00:16:05,000 Þú ert í rauninni að byggja upp nýtt nemandi hlut 301 00:16:05,000 --> 00:16:07,000 og kannski senda nokkur gögn inni á henni. 302 00:16:07,000 --> 00:16:11,000 Það fyrsta sem ég vil gera er að ég vil kalla init á þetta frábær hlutur. 303 00:16:11,000 --> 00:16:15,000 >> Mundu að þegar ég sagði til baka hér í. Klst skrá 304 00:16:15,000 --> 00:16:21,000 að allt að NSObject hefur nemandi einnig. 305 00:16:21,000 --> 00:16:24,000 Það þýðir að þegar ég bý til nemanda sem ég þarf líka að gera er 306 00:16:24,000 --> 00:16:28,000 ganga úr skugga um að NSObject að ég erfi öll þessi gögn frá 307 00:16:28,000 --> 00:16:32,000 er einnig frumstilla almennilega. 308 00:16:32,000 --> 00:16:36,000 Það sem ég þarf að segja er þetta frábær er í raun að fara að vísa til foreldris 309 00:16:36,000 --> 00:16:39,000 sem ég erfi frá, þannig að ég vil vera viss um að ég frumstilla 310 00:16:39,000 --> 00:16:43,000 allt sem ég er eftir áður en ég byrja að reyna að nota það. 311 00:16:43,000 --> 00:16:46,000 Þá ef að frumstilla rétt er þetta bara eins og að segja ef malloc 312 00:16:46,000 --> 00:16:50,000 skilaði ekki null þá get ég byrjað að setja nokkrar eignir. 313 00:16:50,000 --> 00:16:54,000 >> Í JavaScript og PHP við höfðum þetta leitarorð sem heitir þetta, 314 00:16:54,000 --> 00:16:58,000 og talað við núverandi dæmi af bekknum. 315 00:16:58,000 --> 00:17:00,000 Í Objective-C við köllum þetta sjálf. 316 00:17:00,000 --> 00:17:04,000 Þegar ég segi self.name, sem þýðir að mótmæla 317 00:17:04,000 --> 00:17:07,000 Ég skapa bara þegar ég sagði nemandi alloc init, 318 00:17:07,000 --> 00:17:09,000 sem er að fara að gefa mér aftur hlut. 319 00:17:09,000 --> 00:17:12,000 Það þýðir að ég vil setja nafn að mótmæla 320 00:17:12,000 --> 00:17:15,000 til hvað ég fór bara inn 321 00:17:15,000 --> 00:17:18,000 Rétt eins og í C, aðgang við meðlimi með þessum punkti, 322 00:17:18,000 --> 00:17:21,000 svo segir self.name nafn á nemanda mótmæla 323 00:17:21,000 --> 00:17:24,000 er nú að fara að vera það sem þú stóðst bara inn 324 00:17:24,000 --> 00:17:28,000 Og svo að lokum, get ég farið með hana svo ég fá í raun eitthvað til baka. 325 00:17:28,000 --> 00:17:30,000 >> Spurningar? 326 00:17:30,000 --> 00:17:34,000 Jæja, svo þetta sjálf = frábær init, 327 00:17:34,000 --> 00:17:37,000 ef þú ert ekki alveg að skilja arfleifð efni ekki hafa áhyggjur. 328 00:17:37,000 --> 00:17:40,000 Bara að vita að ef þú vilt alltaf til að gera eigin init aðferð þinn bara 329 00:17:40,000 --> 00:17:42,000 gera það, og þú munt vera gott að fara. 330 00:17:42,000 --> 00:17:44,000 Já. >> [Nemandi] Hvað ef sjálf meina? 331 00:17:44,000 --> 00:17:49,000 Þetta þýðir að þegar við malloc eitthvað Við skoðuðum alltaf ef það var jafn null, 332 00:17:49,000 --> 00:17:51,000 og ef það var null, þá erum við lauk. 333 00:17:51,000 --> 00:17:55,000 Þetta er það sama, vegna þess að ef þetta skilar null, þá erum við líklega að fara að seg kenna 334 00:17:55,000 --> 00:17:57,000 Ef við byrjum að reyna að vinna það. 335 00:17:57,000 --> 00:18:01,000 Það er nemandinn bekknum. 336 00:18:01,000 --> 00:18:03,000 Það þýðir að við getum frumstillt nemendur okkar á tvo vegu. 337 00:18:03,000 --> 00:18:08,000 Ef ég segi nemandi alloc init Ég er ekki að nota þá aðferð sem ég skrifaði bara, 338 00:18:08,000 --> 00:18:11,000 og í staðinn get ég einfaldlega sagt alice.name, 339 00:18:11,000 --> 00:18:14,000 og nú ætla ég að setja þessi eign nafn. 340 00:18:14,000 --> 00:18:17,000 >> Á sama hátt, ef ég vil nota þessi initWithName aðferð 341 00:18:17,000 --> 00:18:20,000 Ég get einfaldlega sagt alloc, og þá frekar en að segja init 342 00:18:20,000 --> 00:18:24,000 Ég ætla að hringja í þá aðferð sem ég stofnaði bara, og ég ætla að fara í Bob. 343 00:18:24,000 --> 00:18:30,000 Á þessum tímapunkti, þetta mótmæla Bob hefur nafn jafn Bob. 344 00:18:30,000 --> 00:18:35,000 Jæja, hérna er ég að nota þessi NSMutableArray sem við skoðuðum áðan. 345 00:18:35,000 --> 00:18:38,000 Ég úthlutun space.Then ég Frumstilli nýjan array. 346 00:18:38,000 --> 00:18:40,000 Ég ætla að bæta við 2 hlutum til þess. 347 00:18:40,000 --> 00:18:43,000 Fylkið hefur nú nemenda mótmæla. 348 00:18:43,000 --> 00:18:46,000 Takið eftir því að hvergi var ég að segja að þetta er fylki nemenda. 349 00:18:46,000 --> 00:18:48,000 Ég sagði það fylki, tímabil. 350 00:18:48,000 --> 00:18:50,000 Þá get ég sett hvað sem inni af því sem ég vil. 351 00:18:50,000 --> 00:18:52,000 Hér hef ég 2 hluti. 352 00:18:52,000 --> 00:18:56,000 >> Að lokum, ég hef annan hlut hér, þetta TF. 353 00:18:56,000 --> 00:18:59,000 Hérna í TF.h grundvallaratriðum the sami hlutur. 354 00:18:59,000 --> 00:19:01,000 Ég erfi frá NSObject, og við the vegur, 355 00:19:01,000 --> 00:19:03,000 þegar þú býrð bekkjum þetta er allt gert fyrir þig, 356 00:19:03,000 --> 00:19:06,000 þessu tagi boilerplate tengi. 357 00:19:06,000 --> 00:19:08,000 Það hefur eiginleika nemenda. 358 00:19:08,000 --> 00:19:15,000 ÉG hafa a par aðferðir hér sem í raun ekki gera a heild einhver fjöldi, 359 00:19:15,000 --> 00:19:18,000 og svo þýðir það eftir að ég búið til þessa TF hlut 360 00:19:18,000 --> 00:19:23,000 Ég get kalla þessa aðferð bekk á það svona. 361 00:19:23,000 --> 00:19:26,000 Einhverjar spurningar um Objective-C setningafræði áður en við byrjum að flytja inn meira 362 00:19:26,000 --> 00:19:30,000 áhugavert forrit þróun efni? 363 00:19:30,000 --> 00:19:34,000 >> Jæja, þannig að við skulum í raun gera iPhone app. 364 00:19:34,000 --> 00:19:39,000 Kjarni flokkar sem þú munt vera með inni á iPhone app kallast skoða stýringar, 365 00:19:39,000 --> 00:19:42,000 og skoða stjórnandi táknar grundvallaratriðum einum skjá 366 00:19:42,000 --> 00:19:46,000 inni á app, þannig að ef ég er á tónlist app, td 367 00:19:46,000 --> 00:19:50,000 Ein skoðun stjórnandi gæti táknað þá skoðun sem ég skoða öll lögin á iPhone minn. 368 00:19:50,000 --> 00:19:53,000 Annar Skoða stjórnandi gæti verið þegar ég smelli í lag og byrja að spila það 369 00:19:53,000 --> 00:19:55,000 eða eins og ég er að bora niður í listamönnum. 370 00:19:55,000 --> 00:19:59,000 Hver af þessum mismunandi skjái mætti ​​fulltrúa sem aðra sýn stjórnandi, 371 00:19:59,000 --> 00:20:04,000 og skoða stjórnandi er í raun bara a bekknum sem segir hvernig þessi skjár virkar. 372 00:20:04,000 --> 00:20:07,000 Things inni í skoða stjórnandi, við erum að fara að hafa eiginleika, 373 00:20:07,000 --> 00:20:10,000 svo hluti eins og a hnappur er að fara að vera eign stjórnandi okkar mati. 374 00:20:10,000 --> 00:20:13,000 >> Við erum líka að fara að hafa aðferðir, og þær eru í grundvallaratriðum atburður dýraþjálfari. 375 00:20:13,000 --> 00:20:16,000 Þessi aðferð segir þegar þú ýtir á þennan hnapp 376 00:20:16,000 --> 00:20:19,000 Mig langar að gera eitthvað, og að lokum, aftur, 377 00:20:19,000 --> 00:20:24,000 við erum að fara að nota þetta sjálf leitarorð til að fá aðgang að núverandi dæmi. 378 00:20:24,000 --> 00:20:29,000 Til að byggja upp tengi í IOS er reyndar mjög, mjög auðvelt. 379 00:20:29,000 --> 00:20:32,000 Þeir hafa þetta ágætur draga og sleppa tengi heitir Interface Builder, 380 00:20:32,000 --> 00:20:37,000 og 2 algerlega hugtök sem vír upp þinn Objective-C Interface Builder 381 00:20:37,000 --> 00:20:40,000 eru IBOutlet og IBAction. 382 00:20:40,000 --> 00:20:44,000 An IBOutlet segir einfaldlega að ef þú lýsa eign sem er hnappur, 383 00:20:44,000 --> 00:20:47,000 og þú vilt að krókur það upp að eitthvað í raun UI þínu, 384 00:20:47,000 --> 00:20:49,000 þú ert að fara að segja að það er rafmagn. 385 00:20:49,000 --> 00:20:51,000 Á sama hátt, ef þú vilt að tákna atburð dýraþjálfari 386 00:20:51,000 --> 00:20:54,000 þá þú ert að fara að segja að það er aðgerð. 387 00:20:54,000 --> 00:20:57,000 >> Til að í raun vír upp þetta myndrænt framsetning 388 00:20:57,000 --> 00:21:00,000 og númerið þitt það er mjög, mjög einfalt. 389 00:21:00,000 --> 00:21:03,000 Ef þú vilt festa IBOutlet, allt sem þú þarft að gera er að stjórna smella, 390 00:21:03,000 --> 00:21:05,000 og við munum sjá dæmi um þetta mjög fljótt. 391 00:21:05,000 --> 00:21:07,000 Þú stjórnar smella þar segir View Controller. 392 00:21:07,000 --> 00:21:09,000 Þú ert að fara að draga inn í the tengi, eða öfugt, 393 00:21:09,000 --> 00:21:13,000 Ef þú vilt að krókur upp atburði dýraþjálfari þú ert að fara að draga úr því tengi 394 00:21:13,000 --> 00:21:15,000 í hina áttina. 395 00:21:15,000 --> 00:21:20,000 Við skulum taka a líta á a mjög einfalt IOS dæmi. 396 00:21:20,000 --> 00:21:23,000 >> Við skulum búa til nýtt verkefni. 397 00:21:23,000 --> 00:21:25,000 Ég ætla að koma upp hér til umsóknar, 398 00:21:25,000 --> 00:21:28,000 og ég ætla að smella einum skjá Umsókn. 399 00:21:28,000 --> 00:21:31,000 Ég ætla að smella næst. Ég skal gefa verkefnið mitt nafn. 400 00:21:31,000 --> 00:21:33,000 Ég kalla það Hello. 401 00:21:33,000 --> 00:21:36,000 Athyglisvert Apple ráð þú ert að búa til vöru 402 00:21:36,000 --> 00:21:38,000 svo að þú getur selt það og þeir geta gera peningar. 403 00:21:38,000 --> 00:21:41,000 Down hér ætla ég að segja að þetta er iPhone app. 404 00:21:41,000 --> 00:21:44,000 Þú getur búið til iPad app, eða ef þú vilt að búa til einn af þessum forritum 405 00:21:44,000 --> 00:21:47,000 sem styður bæði tæki sem þú getur gert það líka. 406 00:21:47,000 --> 00:21:49,000 Þetta er það sem þú vilt krossa til að líta út. 407 00:21:49,000 --> 00:21:51,000 >> Þú vilt nota storyboards, sem við munum sjá síðar, 408 00:21:51,000 --> 00:21:54,000 og þú vilt örugglega að nota sjálfvirka tilvísun talningu, 409 00:21:54,000 --> 00:21:58,000 sem er ágætur eiginleiki sem kemur í veg þig frá að þurfa að segja malloc og ókeypis. 410 00:21:58,000 --> 00:22:03,000 Nema þú vilt hringja malloc og frjáls, myndi ég yfirgefa þetta köflóttur. 411 00:22:03,000 --> 00:22:07,000 Ég smellt á Next og að lokum, þetta er að fara að spyrja mig hvar ég vil vista það. 412 00:22:07,000 --> 00:22:14,000 Ég högg búið, og hér við fara. 413 00:22:14,000 --> 00:22:16,000 Ég bjó til nýtt verkefni. 414 00:22:16,000 --> 00:22:19,000 Hérna til vinstri eru allar skrár sem eru inni í verkefnið mitt, 415 00:22:19,000 --> 00:22:22,000 og taka eftir að ég fékk allt fullt, og ég vissi ekki einu sinni að gera neitt. 416 00:22:22,000 --> 00:22:24,000 IOS er mikill. 417 00:22:24,000 --> 00:22:27,000 >> Til dæmis hér í ViewController.h, 418 00:22:27,000 --> 00:22:30,000 þetta er að fara til að tákna fyrsta skoða stjórnandi minn, 419 00:22:30,000 --> 00:22:32,000 þannig að fyrsta skjánum inni app minn. 420 00:22:32,000 --> 00:22:34,000 Nú vitum við hvað þetta er að segja. 421 00:22:34,000 --> 00:22:36,000 Við erum að segja að ég er að kalla þennan flokk ViewController, 422 00:22:36,000 --> 00:22:40,000 og ViewController gerir allt sem UIViewController gerir, 423 00:22:40,000 --> 00:22:43,000 og þetta, aftur, er einhver tegund sem Apple skrifaði að er mikið af vel efni fyrir okkur 424 00:22:43,000 --> 00:22:46,000 eins og birta skjánum. 425 00:22:46,000 --> 00:22:50,000 Hér er þar sem ég get í raun byrjað að skilgreina hvaða viðhorf stjórnandi minn er, 426 00:22:50,000 --> 00:22:52,000 og það kemur í ljós að ég virkilega þarft ekki allir af þessu. 427 00:22:52,000 --> 00:22:55,000 Þetta er boilerplate kóða sem Apple gefur mér frítt. 428 00:22:55,000 --> 00:22:59,000 Ég gerði þarft að fyrstu línu, eða ég hef ekki í bekknum, 429 00:22:59,000 --> 00:23:02,000 svo við getum að losna við það og fá losa af það. 430 00:23:02,000 --> 00:23:05,000 Jæja, svo þetta er tómt skjánum mínum. 431 00:23:05,000 --> 00:23:08,000 >> Nú skulum smella á þennan MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 og þetta er þar sem það byrjar að fá áhugavert. 433 00:23:11,000 --> 00:23:14,000 Þetta er fyrsta skjánum á app minn. 434 00:23:14,000 --> 00:23:17,000 Ef ég vil bæta við hnapp, í HTML ég þurfti að búa til hnappinn merkinu. 435 00:23:17,000 --> 00:23:20,000 Í Android þú þarft að búa til takkann merki, 436 00:23:20,000 --> 00:23:23,000 en í IOS ef ég kem bara niður til the botn réttur 437 00:23:23,000 --> 00:23:27,000 og ef ég smelli á þennan 3 hér þar sem það segir hluti, 438 00:23:27,000 --> 00:23:31,000 og ég get að fletta niður, eða ég get byrjað að leita að hnappur. 439 00:23:31,000 --> 00:23:35,000 Og sjáðu, á hnapp, svo ef ég er að draga í raun og falla þennan rétt þar, 440 00:23:35,000 --> 00:23:38,000 Ég hef bara bætt við hnappinn til að þessari skjámynd á app minn. 441 00:23:38,000 --> 00:23:41,000 Ef ég vil að breyta texta, get ég tvöfaldur smellur það, 442 00:23:41,000 --> 00:23:47,000 segja eitthvað tæla eins og "Ýttu mig." 443 00:23:47,000 --> 00:23:51,000 Jæja, nú ef ég keyra þetta app, svo við þýða það, 444 00:23:51,000 --> 00:23:54,000 svo að keyra hana að ég smellur the leika hnappur á efst til vinstri, og það app minn. 445 00:23:54,000 --> 00:23:58,000 Ég gerði ekki neitt, og ég fékk sætur útlit iPhone app. 446 00:23:58,000 --> 00:24:01,000 Ef ég vil að stöðva það, getur þú smellt á stöðva hnappinn 447 00:24:01,000 --> 00:24:03,000 vegna þess að það er skemmtilegra. 448 00:24:03,000 --> 00:24:07,000 >> Við skulum segja að ég vil í raun og veru eitthvað að gerast þegar ég ýta á þennan takka. 449 00:24:07,000 --> 00:24:09,000 Til að gera það sem ég þarf að gera er að ég þarf að búa til 450 00:24:09,000 --> 00:24:13,000 nýr atburður dýraþjálfari eða aðgerð. 451 00:24:13,000 --> 00:24:16,000 Það þýðir að ég þarf að búa til einhverja aðferð sem ég vil kalla 452 00:24:16,000 --> 00:24:18,000 þegar ég ýta á hnappinn, þannig að við skulum búa til nýja aðferð. 453 00:24:18,000 --> 00:24:20,000 Ég er inni í ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Ég þarf að segja að aðferð til. 455 00:24:22,000 --> 00:24:26,000 Ég þarf bandstrik fyrst því ég er að fara að kalla þetta á skoða stjórnandi. 456 00:24:26,000 --> 00:24:28,000 Ég þarf að gefa upp tegund. 457 00:24:28,000 --> 00:24:31,000 The tegund af þessu er að fara að vera að IBAction hlutur sem við sáum áðan. 458 00:24:31,000 --> 00:24:35,000 Þetta er atburður dýraþjálfari, svo það er að fara að skila IBAction, 459 00:24:35,000 --> 00:24:38,000 og þetta er vísbending til Xcode að segja að 460 00:24:38,000 --> 00:24:40,000 þetta er eitthvað sem ég vil að vírinn eitthvað. 461 00:24:40,000 --> 00:24:45,000 Ég get gefið það nafn, eins buttonPressed, semíkommu. 462 00:24:45,000 --> 00:24:48,000 >> Nú er ég hef lýst nýja aðferð inni í bekknum mínum. 463 00:24:48,000 --> 00:24:50,000 Ég hef sagt að þessi aðferð er til staðar. 464 00:24:50,000 --> 00:24:53,000 Nú skulum við koma inn ViewController.m, 465 00:24:53,000 --> 00:24:56,000 og við skulum segja hvað þessi aðferð getur gert. 466 00:24:56,000 --> 00:25:03,000 Ef ég byrja að skrifa, til dæmis, (tóm) buttonPressed 467 00:25:03,000 --> 00:25:06,000 tilkynningu Xcode er mjög gott og autocompletes fyrir mig. 468 00:25:06,000 --> 00:25:09,000 Það er í raun dásamlegt. 469 00:25:09,000 --> 00:25:12,000 Tilkynning hér að inni í. M skrá Ég get líka sagt tóm, 470 00:25:12,000 --> 00:25:15,000 og þetta er vegna þess að IBAction er ekki í raun gerð. 471 00:25:15,000 --> 00:25:19,000 Það er í raun hashtag skilgreind einhvers staðar að vera ógild, 472 00:25:19,000 --> 00:25:22,000 og aftur, þetta er bara vísbending í Xcode sem segir 473 00:25:22,000 --> 00:25:25,000 Ég vil þetta til að vera atburður dýraþjálfari, og við munum sjá hvers vegna í aðeins annað. 474 00:25:25,000 --> 00:25:28,000 Þegar stutt er á hnappinn Ég ætla að gera eitthvað pirrandi 475 00:25:28,000 --> 00:25:30,000 eins og birta sprettiglugga. 476 00:25:30,000 --> 00:25:35,000 >> Til að gera það sem ég er að búa til nýtt eintak af þessum flokki sem kallast UIAlertView, 477 00:25:35,000 --> 00:25:39,000 og þetta er flokkur sem Apple skrifaði sem er að fara að sýna pirrandi almenningur. 478 00:25:39,000 --> 00:25:43,000 Við munum kalla þetta sprettiglugga vakandi, og ég hef 2 skref, muna að búa til þennan hlut. 479 00:25:43,000 --> 00:25:46,000 Það fyrsta sem ég þarf að gera er að úthluta pláss. 480 00:25:46,000 --> 00:25:48,000 Ég vil UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Ég vil að úthluta pláss. Það er fyrstur aðferð mín. 482 00:25:51,000 --> 00:25:53,000 Næsta aðferð mín er að ég vil að frumstilla hana, 483 00:25:53,000 --> 00:25:58,000 og svo hef ég þetta stóra, langa aðferð sem kallast initWithTitle. 484 00:25:58,000 --> 00:26:01,000 Það er í rauninni að fara að stjórna hvað þetta sprettiglugga segir. 485 00:26:01,000 --> 00:26:04,000 Titill almenningur minn getur verið halló. 486 00:26:04,000 --> 00:26:08,000 Boðskapur þessa sprettiglugga getur verið "Þetta er iOS." 487 00:26:08,000 --> 00:26:10,000 Fulltrúi hlutur, ég veit ekki hvað það er. 488 00:26:10,000 --> 00:26:13,000 Segjum ekkert það er. 489 00:26:13,000 --> 00:26:18,000 Nú á hnappinn sem er að fara að birtast getur sagt eitthvað eins og "Það er víst," 490 00:26:18,000 --> 00:26:24,000 og ég í raun ekki vilja neina aðra reiti, þannig að við skulum eyða því og loka krappi. 491 00:26:24,000 --> 00:26:27,000 >> Allt í lagi, bjó ég til auka einn. Svona. 492 00:26:27,000 --> 00:26:30,000 Þetta er hvernig ég get búið til nýja valmynd. 493 00:26:30,000 --> 00:26:35,000 Ef ég vil í raun og veru sýna sprettiglugga Mig langar til að hringja í sýna aðferð. 494 00:26:35,000 --> 00:26:38,000 Til að gera það sem ég get sagt aðvaranir og sýna, 495 00:26:38,000 --> 00:26:40,000 og aftur, autocompleteoff var super nice. 496 00:26:40,000 --> 00:26:42,000 Ef ég gleymdi hvað það var, ef ég slóst bara í s, 497 00:26:42,000 --> 00:26:45,000 Ég er að skruna í gegnum hér að reikna út hvað það var, 498 00:26:45,000 --> 00:26:48,000 og það síar vel. 499 00:26:48,000 --> 00:26:52,000 Nú er ég búin þetta nýja valmynd. 500 00:26:52,000 --> 00:26:55,000 Við munum koma aftur til það sem fulltrúi þýðir síðar, 501 00:26:55,000 --> 00:26:58,000 og nú vil ég að segja að ég vil að þessi aðferð til að vera rekinn 502 00:26:58,000 --> 00:27:01,000 þegar ég ýta á hnappinn, þannig að ég ætla að koma aftur til klippiborðinu minn, 503 00:27:01,000 --> 00:27:04,000 og ég vil nú festa þessa IBAction. 504 00:27:04,000 --> 00:27:06,000 The fyrstur hlutur þú vilt gera er að smella á hnappinn. 505 00:27:06,000 --> 00:27:08,000 Þegar ég ýta á þennan takka sem ég vil eitthvað að gerast. 506 00:27:08,000 --> 00:27:10,000 Ég ætla ekki að halda niðri stjórn. 507 00:27:10,000 --> 00:27:13,000 Ég ætla að smella og draga úr the hnappur 508 00:27:13,000 --> 00:27:15,000 til hérna þar sem það segir View Controller. 509 00:27:15,000 --> 00:27:17,000 Við sjáum að það lýsir vel upp. 510 00:27:17,000 --> 00:27:22,000 >> Ef ég sleppi með mús sem ég hef nú í sprettiglugga hérna þar sem ég hef nokkra valkosti. 511 00:27:22,000 --> 00:27:24,000 Einn þeirra er að atburðir sem ég get skrá sig. 512 00:27:24,000 --> 00:27:28,000 Þetta eru allar þessar aðferðir sem ég lýst í h skránni mínu sem IBActions. 513 00:27:28,000 --> 00:27:31,000 Þetta er hvernig Xcode veit hvað ætti að birtast á þessum litla lista, 514 00:27:31,000 --> 00:27:33,000 þannig er það bara vísbending. 515 00:27:33,000 --> 00:27:37,000 Ef ég smelli á hnappinn þrýsta, hef ég nú skráð atburður dýraþjálfari. 516 00:27:37,000 --> 00:27:41,000 Í JavaScript við þurftum að segja að ég hef fengið kóða sem skráð atburður dýraþjálfari. 517 00:27:41,000 --> 00:27:43,000 Í Objective-C það var mjög auðvelt. 518 00:27:43,000 --> 00:27:46,000 Ef ég keyra þetta aftur 519 00:27:46,000 --> 00:27:49,000 nú þegar ég ýta á hnappinn atburður dýraþjálfari mína er að fara að skjóta, 520 00:27:49,000 --> 00:27:51,000 og ég ætla að fá þetta sprettiglugga. 521 00:27:51,000 --> 00:27:54,000 Super, Super þar einfalt. 522 00:27:54,000 --> 00:27:57,000 >> Ef þú vilt alltaf að sjá alla þá atburði sem eru skráð 523 00:27:57,000 --> 00:28:00,000 á hluti ef ég smelli á þennan hnapp 524 00:28:00,000 --> 00:28:02,000 og ég kem hérna á hægri hlið 525 00:28:02,000 --> 00:28:05,000 fyrst er hægt að sjá hérna að ég get gert hluti eins og gerð af the hnappur, 526 00:28:05,000 --> 00:28:08,000 þannig að ef þú vilt einn af þeim sem ég er eða að bæta samband hnappinn 527 00:28:08,000 --> 00:28:10,000 eða hvað sem er. 528 00:28:10,000 --> 00:28:13,000 Ef ég vil sjá alla þá atburði sem eru á þennan hnapp 529 00:28:13,000 --> 00:28:16,000 ef ég kem alla leið hérna til hægri 530 00:28:16,000 --> 00:28:19,000 getum við séð hér á atburðum sem ég hef allar þessar mismunandi aðstæður. 531 00:28:19,000 --> 00:28:23,000 Ég get að ýta á hnappinn, þegar ég sleppti af the hnappur, þegar ég tvöfaldur tappa eða hvað, 532 00:28:23,000 --> 00:28:26,000 og það sem ég var að skrá sig er þetta atburður sem heitir Touch Up Inside, 533 00:28:26,000 --> 00:28:29,000 og þetta segir að um leið og fingur minn kemur út á hnappinn 534 00:28:29,000 --> 00:28:32,000 að atburður er að fara að skjóta, og það er nákvæmlega það sem gerðist. 535 00:28:32,000 --> 00:28:36,000 Þetta er góður af the hnappur vanræksla þrýsta atburð. 536 00:28:36,000 --> 00:28:39,000 >> Einhverjar spurningar svo langt? 537 00:28:39,000 --> 00:28:43,000 Jæja, það er hvernig við getum byrjað að vírinn upp hlutina í númerið okkar 538 00:28:43,000 --> 00:28:46,000 inn í hlutina inni í tengi okkar. 539 00:28:46,000 --> 00:28:49,000 Mundu það fyrsta sem við þurftum að gera var að finna kóðann, 540 00:28:49,000 --> 00:28:54,000 og þá erum við ekki þráðlaus upp tengi kóða, 541 00:28:54,000 --> 00:28:57,000 og það er fyrst app okkar. 542 00:28:57,000 --> 00:29:00,000 Jæja, það var mjög flott, og við bjuggum til þennan takka. 543 00:29:00,000 --> 00:29:03,000 Hvað ef við gerum ekki vilja til að búa til fullt af eiginleikum 544 00:29:03,000 --> 00:29:05,000 fulltrúi þessa hnappa? 545 00:29:05,000 --> 00:29:08,000 Til dæmis, í Tic Tac Toe ég 9 hnappa, 546 00:29:08,000 --> 00:29:11,000 og það væri frábær, frábær pirrandi að þurfa að draga og sleppa 9 sinnum 547 00:29:11,000 --> 00:29:14,000 eða ef ég þurfti að gera Tic Tac Toe með 81 í stað 9 548 00:29:14,000 --> 00:29:17,000 og ég þurfti að draga og falla 81 sinnum, og það er fatlaður. 549 00:29:17,000 --> 00:29:20,000 Það sem við getum gert í staðinn er mikill eins og HTML 550 00:29:20,000 --> 00:29:23,000 þegar við höfðum það eins og auðkenni og nöfn og við getum leitað að hlutum 551 00:29:23,000 --> 00:29:27,000 með auðkenni þeirra, það er svipuð hugmynd í IOS kallast tags. 552 00:29:27,000 --> 00:29:31,000 >> A tag er einfaldlega einstakt tölulegar auðkenni fyrir hluti. 553 00:29:31,000 --> 00:29:34,000 Ef ég segi þetta er merki af 0, til dæmis, 554 00:29:34,000 --> 00:29:38,000 ef ég búa til hnappinn og gefa það merki um 0, og við munum sjá hvernig á að gera það í aðeins annað, 555 00:29:38,000 --> 00:29:41,000 ef ég vil fá þessi hnappur Ég get einfaldlega sagt að ég vil kalla 556 00:29:41,000 --> 00:29:45,000 að viewWithTag aðferð á hlut hérna, 557 00:29:45,000 --> 00:29:48,000 á self.view, sem samsvarar núverandi skjá, til dæmis. 558 00:29:48,000 --> 00:29:53,000 Ef ég kalla það viewWithTag aðferð, ég ætla að draga til baka hnappinn með merki 0. 559 00:29:53,000 --> 00:29:58,000 Við skulum taka a líta á þetta með því að byggja Tic Tac Toe. 560 00:29:58,000 --> 00:30:01,000 First, þetta er storyboard mín. 561 00:30:01,000 --> 00:30:05,000 Ég hef búið til þessa 10 UI hnappa. 562 00:30:05,000 --> 00:30:07,000 Tilkynning þeir eru allir af sömu stærð. 563 00:30:07,000 --> 00:30:11,000 Ef ég smelli á einn af þessum og ég kem aftur hérna á þessari hægra megin 564 00:30:11,000 --> 00:30:15,000 þú munt sjá að ég leiðrétt letur hérna, svo ég gerði font svolítið stærri, 565 00:30:15,000 --> 00:30:19,000 en það sem ég gerði líka var ég að setja þetta merki. 566 00:30:19,000 --> 00:30:23,000 Ég sagði að þetta er merki um 1, og það er efst til vinstri. 567 00:30:23,000 --> 00:30:26,000 >> Nú, ef ég smelli annan hnapp, eins og þessi seinni hér, 568 00:30:26,000 --> 00:30:29,000 Nú þú munt sjá að merkið mitt er 2. 569 00:30:29,000 --> 00:30:32,000 Hver þessara hnappa er bara einstakt merki, 570 00:30:32,000 --> 00:30:35,000 og svo þetta er seinna hvernig ég ætla að byrja samskipti 571 00:30:35,000 --> 00:30:38,000 með app minn. 572 00:30:38,000 --> 00:30:40,000 Þetta er allt inni á einum skjá stjórnandi, 573 00:30:40,000 --> 00:30:42,000 en hér er það sem við höfum. 574 00:30:42,000 --> 00:30:44,000 Við höfum 3 eignir hér. 575 00:30:44,000 --> 00:30:49,000 Sú fyrsta og síðasta eru að fara til að tákna stöðu borð mitt. 576 00:30:49,000 --> 00:30:53,000 Í grundvallaratriðum er þetta fyrsta fylki hönd þar sem Xs og Os eru. 577 00:30:53,000 --> 00:30:57,000 Þetta hitt segir hér okkur sem snúa það er. 578 00:30:57,000 --> 00:31:01,000 Þú munt taka eftir því að ég hef líka þessa hluti hér. 579 00:31:01,000 --> 00:31:05,000 Áður þegar við lýst eignir gáfum þeim nafn og tegund. 580 00:31:05,000 --> 00:31:08,000 Við getum einnig að gefa þeim nokkur góð upplýsingar hér. 581 00:31:08,000 --> 00:31:11,000 Þetta fyrsta segir nonatomic, og hvað það segir 582 00:31:11,000 --> 00:31:16,000 er aðeins eitt grundvallaratriðum verður alltaf að reyna að opna þessa breytu í einu. 583 00:31:16,000 --> 00:31:19,000 Þú getur gert flóknari forrit sem eru multi-snittari, 584 00:31:19,000 --> 00:31:22,000 og svo aftur í grunni við höfðum mismunandi þræði, 585 00:31:22,000 --> 00:31:25,000 og mismunandi sprites mætti ​​gera mismunandi hluti á sama tíma. 586 00:31:25,000 --> 00:31:29,000 >> Ef það er ekki málið, en það er ekki í neitt sem við munum vera að horfa á, 587 00:31:29,000 --> 00:31:33,000 Ef við segjum nonatomic það er í raun og veru að fara að gera hlutina svolítið hraðar. 588 00:31:33,000 --> 00:31:37,000 Við höfum líka þessa hlutur kallast assign, sterkt eða veikt. 589 00:31:37,000 --> 00:31:40,000 Þetta úthluta segir bara að þetta er staðlað tegund. 590 00:31:40,000 --> 00:31:43,000 Þetta er ekki hlutur eða músina því þetta er bara bool, 591 00:31:43,000 --> 00:31:46,000 svo bool er byggt í Objective-C. 592 00:31:46,000 --> 00:31:49,000 Þetta segir ekki reyna að gera neitt fínt við ábendingum hér. 593 00:31:49,000 --> 00:31:51,000 Það er venjulegur gamall scaler. 594 00:31:51,000 --> 00:31:54,000 Sterk og veik, það veik segir að í raun og veru 595 00:31:54,000 --> 00:31:57,000 Ég vil þetta til að benda á eitthvað í ljósi stjórnandi. 596 00:31:57,000 --> 00:32:00,000 Ég ætla ekki að fara að raunverulega úthluta eða init þetta sjálfur. 597 00:32:00,000 --> 00:32:04,000 The tengi byggir, þegar ég hlaupa the app, er að fara að höndla allt sem frumstilling. 598 00:32:04,000 --> 00:32:07,000 Ef ég segi veik, sem segir að einhver annar sé að fara að búa til þessa. 599 00:32:07,000 --> 00:32:09,000 Ef ég segi sterk, þetta segir að ég ætla að vera einn 600 00:32:09,000 --> 00:32:12,000 sem er að búa til þetta borð hlut, 601 00:32:12,000 --> 00:32:14,000 og svo hér ég hef nokkrar fleiri aðferðir hér, 602 00:32:14,000 --> 00:32:18,000 til dæmis, aðgerð til þegar nýr leikur hnappur er þrýsta, 603 00:32:18,000 --> 00:32:20,000 aðgerð þegar einhverjum öðrum hnöppum eru inni, 604 00:32:20,000 --> 00:32:23,000 og et cetera. 605 00:32:23,000 --> 00:32:26,000 >> Við munum ekki fá inn of mikið af rökfræði Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 þó það er mjög spennandi, en við skulum taka a líta á 607 00:32:30,000 --> 00:32:33,000 sumir af þeim hlutum sem við getum gert innan IOS. 608 00:32:33,000 --> 00:32:35,000 Þessi nýja leik aðferð er að fara að vera rekinn 609 00:32:35,000 --> 00:32:37,000 þegar ég ýttu á nýjan leik hnappinn. 610 00:32:37,000 --> 00:32:41,000 Til að krókur það upp ég kem einfaldlega yfir á klippiborðinu minn. 611 00:32:41,000 --> 00:32:43,000 Ég smellti á nýjan leik. 612 00:32:43,000 --> 00:32:47,000 Ef ég kem hérna til hægri sem ég get séð að 613 00:32:47,000 --> 00:32:50,000 Touch Up Inside er hlerunarbúnað að newGame aðferð. 614 00:32:50,000 --> 00:32:53,000 Það er hvers vegna þetta er að fara að fá rekinn. 615 00:32:53,000 --> 00:32:56,000 The newGame aðferð er að fara að gera sumir setja upp. 616 00:32:56,000 --> 00:32:59,000 Það er að fara að segja að ég vil að þú hreinsa stöðu stjórnar. 617 00:32:59,000 --> 00:33:01,000 Þetta er ágætur aðferð á breytanlegur fylki. 618 00:33:01,000 --> 00:33:03,000 Þetta er að fara að segja að það er nú komið að X er, 619 00:33:03,000 --> 00:33:07,000 og nú er ég að fara að nýta þessa viewWithTag hlutur. 620 00:33:07,000 --> 00:33:11,000 >> Ég veit að hnappar mínir hafa Tags 1-9, 621 00:33:11,000 --> 00:33:13,000 og það er eitthvað sem ég valdi geðþótta. 622 00:33:13,000 --> 00:33:15,000 Ef ég vil að setja texta hvers hnappinn til að vera tómur 623 00:33:15,000 --> 00:33:17,000 vegna þess að ég byrjaði bara nýjan leik og ég vil ekki að allir 624 00:33:17,000 --> 00:33:20,000 Xs eða Os að vera vinstri á ég get gert þetta. 625 00:33:20,000 --> 00:33:24,000 Ég get sagt að ég vil skoða með merki, 1, 2, 3, 4 et cetera. 626 00:33:24,000 --> 00:33:27,000 Þetta mun draga aðra hnappinn í hvert skipti. 627 00:33:27,000 --> 00:33:30,000 Hér ætla ég að reka hann til að UIButton. 628 00:33:30,000 --> 00:33:33,000 Rétt eins og við gátum kastað ints á flotum og öfugt 629 00:33:33,000 --> 00:33:37,000 þetta segir að ég vil varpa þessu til UIButton. 630 00:33:37,000 --> 00:33:40,000 Það þýðir að tegund mun vera UIButton * 631 00:33:40,000 --> 00:33:43,000 vegna ábendinga, en ekki hafa áhyggjur, þeir eru ekki ógnvekjandi lengur. 632 00:33:43,000 --> 00:33:47,000 >> Þegar ég hef þennan takka ég ætla að hringja í aðferð á það. 633 00:33:47,000 --> 00:33:50,000 Þessi aðferð er kölluð setTitle forState, og svo segir þetta 634 00:33:50,000 --> 00:33:53,000 Mig langar til að setja texta á hnappinn til að vera tómur strengur, 635 00:33:53,000 --> 00:33:57,000 og ég vil það að vera tómur strengur þegar það er ekki inni. 636 00:33:57,000 --> 00:34:01,000 Ef ég er að nota þessa aðferð, get ég breytt texta hnappinn 637 00:34:01,000 --> 00:34:04,000 eins fljótt og einhver smellir það, en við viljum að segja þegar hnappur er bara sitja þarna 638 00:34:04,000 --> 00:34:07,000 Ég vil að textinn sem á að eyða. 639 00:34:07,000 --> 00:34:10,000 Að lokum, við erum að fara að frumstilla umræður, 640 00:34:10,000 --> 00:34:12,000 og ég ætla að segja að allt sé nú í 0, 641 00:34:12,000 --> 00:34:15,000 þannig að þetta stjórnarmenn immutable er breytanlegur fylki, 642 00:34:15,000 --> 00:34:21,000 sem þýðir að ég get hringt í addObject aðferð og bara 0 inni af því. 643 00:34:21,000 --> 00:34:23,000 Það er það sem gerist þegar ég skapa nýjan leik. 644 00:34:23,000 --> 00:34:25,000 >> Við skulum taka a líta á annað. 645 00:34:25,000 --> 00:34:28,000 Þessi aðferð hér er IBAction sem er að fara að vera inni 646 00:34:28,000 --> 00:34:31,000 hvert skipti sem einn af þeim reitum er þrýsta. 647 00:34:31,000 --> 00:34:33,000 Nú höfum við nokkur Tic Tac Toe rökfræði hér. 648 00:34:33,000 --> 00:34:36,000 Við reikna út sem snúa það er, 649 00:34:36,000 --> 00:34:39,000 og byggist á því að við setjum annað hvort X eða O, 650 00:34:39,000 --> 00:34:43,000 en við eftir því að við erum að endurnýta þessa sömu atburði dýraþjálfari 651 00:34:43,000 --> 00:34:45,000 fyrir hvert einasta einn af þessum hnöppum. 652 00:34:45,000 --> 00:34:49,000 Það þýðir að ég hef ekki leið til að efst til vinstri hnappinn, 653 00:34:49,000 --> 00:34:52,000 aðra aðferð fyrir hægri neðst hnappinn, þó svo að ég gæti hafa gert það. 654 00:34:52,000 --> 00:34:54,000 Það væri í raun ekki að vera góð hönnun. 655 00:34:54,000 --> 00:34:57,000 Það sem ég er að gera hér er að ég er í raun að fara að ákveða 656 00:34:57,000 --> 00:35:00,000 hvað tag hnappinn sem var ýtt er. 657 00:35:00,000 --> 00:35:04,000 Þú tekur eftir að þessi spila aðferð tekur eitt rifrildi. 658 00:35:04,000 --> 00:35:07,000 Það er kallað sendanda, og hvaða sendandi er er sendandi er að fara að 659 00:35:07,000 --> 00:35:10,000 tákna nákvæmlega hvað var gripið á. 660 00:35:10,000 --> 00:35:15,000 Ef ég ýta á hnappinn, þetta sendandi er að fara að vera að UIButton 661 00:35:15,000 --> 00:35:18,000 sem ég sótti reyndar, svo það þýðir að það UIButton 662 00:35:18,000 --> 00:35:20,000 er merki vegna þess að ég bjó til merki. 663 00:35:20,000 --> 00:35:23,000 >> Ef ég vil fá á merkinu Ég get einfaldlega sagt 664 00:35:23,000 --> 00:35:26,000 Ég vil tag sendanda 665 00:35:26,000 --> 00:35:28,000 og aftur, ég hef bara vörpuðu það að UIButton. 666 00:35:28,000 --> 00:35:32,000 Ég gerst að vita að sendandinn verður UIButton. 667 00:35:32,000 --> 00:35:34,000 Það þarf ekki alltaf að vera UIButton. 668 00:35:34,000 --> 00:35:36,000 Ég gæti til dæmis, skrá sama atburð dýraþjálfari 669 00:35:36,000 --> 00:35:38,000  fyrir einn í hnapp, einn fyrir renna. 670 00:35:38,000 --> 00:35:40,000 Í þessu tilfelli, ég veit að þeir eru allir takkar, svo ég ætla að segja 671 00:35:40,000 --> 00:35:43,000 Ég vil þetta til að vera hnappur, og þá get ég fengið merki, 672 00:35:43,000 --> 00:35:48,000 og frá merkinu sem ég veit nú hvar ég er innan stjórnar. 673 00:35:48,000 --> 00:35:51,000 Þá get ég einfaldlega sett annaðhvort X eða O, getur selbiti snúa, 674 00:35:51,000 --> 00:35:54,000 athuga hver hefur unnið, et cetera. 675 00:35:54,000 --> 00:35:59,000 >> Einhverjar spurningar um þetta svo langt? 676 00:35:59,000 --> 00:36:02,000 Allt í lagi, allt númerið sem við staða á netinu-við viljum ekki fá inn of mikið 677 00:36:02,000 --> 00:36:06,000 af Tic Tac Toe rökfræði, en nú er hægt að sjá að í raun 678 00:36:06,000 --> 00:36:09,000 allt sem við erum að gera er að við erum að lykkja yfir þetta fylki, 679 00:36:09,000 --> 00:36:13,000 þannig að við höfum nokkrar til lykkjur hér og við erum bara saman til að sjá 680 00:36:13,000 --> 00:36:18,000 eigum við leik í öllum röðum, sem passa í dálki eða eitthvað svoleiðis. 681 00:36:18,000 --> 00:36:21,000 Til að í raun að keyra þetta forrit ef ég tappa á einn af þessum hnöppum 682 00:36:21,000 --> 00:36:24,000 að spila aðferð var rekinn, svo það þýðir að ég setti bara 683 00:36:24,000 --> 00:36:31,000 á hnappinn að vera X, þannig að nú er þetta hnappur verður O, og svo framvegis, 684 00:36:31,000 --> 00:36:35,000 og svo er það hvernig við erum farin að hafa samskipti við þetta eina síðu app. 685 00:36:35,000 --> 00:36:38,000 >> Við munum setja inn kóða, svo ekki hika við að lesa það, 686 00:36:38,000 --> 00:36:43,000 en við skulum nú tala um nokkur forrit sem eru meira en bara eina síðu. 687 00:36:43,000 --> 00:36:47,000 Eins spennandi og Tic Tac Toe var mikið af apps inni á IOS 688 00:36:47,000 --> 00:36:50,000 er góður á þessum bora niður hluti með marga skjái. 689 00:36:50,000 --> 00:36:54,000 Fyrsta hugmyndin sem við þurfum að tala um eru samskiptareglur, 690 00:36:54,000 --> 00:36:57,000 og siðareglur er einfaldlega setja aðferðir 691 00:36:57,000 --> 00:36:59,000 sem hægt er að lofa að skilgreina. 692 00:36:59,000 --> 00:37:02,000 Ef ég stofna nýja siðareglur með 2 aðferðir, þetta fyrsta, 693 00:37:02,000 --> 00:37:05,000 ef aftur tegund er tóm, ég kallaði það foo. 694 00:37:05,000 --> 00:37:07,000 Það tekur engin rök. Ég hef aðra aðferð. 695 00:37:07,000 --> 00:37:11,000 Það skilar int. Ég kallaði það bar, og það tekur einn rök. 696 00:37:11,000 --> 00:37:14,000 Allt þetta siðareglur er að heitir SomeProtocol upp hér, 697 00:37:14,000 --> 00:37:19,000 þetta er a setja af því sem einhver getur útfært. 698 00:37:19,000 --> 00:37:22,000 Ég hef innan þessarar bókunar ekki sagt hvað foo gerir. 699 00:37:22,000 --> 00:37:26,000 Í staðinn ætla ég bara að segja að þú getur skilgreint foo ef þú vilt. 700 00:37:26,000 --> 00:37:30,000 Ef ég ætla að búa í huga stjórnandi eða búa til flokk 701 00:37:30,000 --> 00:37:33,000 Ég get innan þess flokks lofa að framkvæma 702 00:37:33,000 --> 00:37:40,000 sumir af þessum aðferðum, svo til dæmis, ef segja 703 00:37:40,000 --> 00:37:43,000 þetta segir nú er ég að gera loforð við þig að innan 704 00:37:43,000 --> 00:37:50,000 þessarar stjórnandi skoða flokki mun ég hafa skilgreiningar bæði foo og bar. 705 00:37:50,000 --> 00:37:52,000 >> Hvers vegna er það gagnlegt? 706 00:37:52,000 --> 00:37:55,000 A einhver fjöldi af hlutum inni í IOS nýta þessa 707 00:37:55,000 --> 00:37:58,000 hönnun mynstur kallast sendinefnd, og hvað sendinefndin segir 708 00:37:58,000 --> 00:38:01,000 er að, til dæmis, ef ég hef textabox 709 00:38:01,000 --> 00:38:04,000 og það eru sumir atburðir sem hægt væri að skráð innan textabox minn, 710 00:38:04,000 --> 00:38:07,000 frekar en að búa til sérstakar viðburðir sem ég get gert er að ég get sagt 711 00:38:07,000 --> 00:38:10,000 að fulltrúi þessa textareitinn verður einhver hlutur. 712 00:38:10,000 --> 00:38:13,000 Þegar ég segi að þetta er fulltrúi núna sem þýðir að 713 00:38:13,000 --> 00:38:16,000 þegar einhver atburður hefði verið rekinn í textareitinn 714 00:38:16,000 --> 00:38:18,000 frekar en að þurfa að skrá það eða eitthvað svoleiðis 715 00:38:18,000 --> 00:38:21,000 það er bara að fara að hringja í aðferð á fulltrúa. 716 00:38:21,000 --> 00:38:24,000 Til dæmis, inni í textabox ég hafa a aðferð þegar ég stutt 717 00:38:24,000 --> 00:38:27,000 sem gert hnappinn neðst til hægri, 718 00:38:27,000 --> 00:38:30,000 og svo frekar en skráningu atburður dýraþjálfari hvað ég get sagt er 719 00:38:30,000 --> 00:38:34,000 textareitinn, hér er hlutur sem ég vil að þú að hringja í aðferð á 720 00:38:34,000 --> 00:38:37,000 hvert skipti sem einhver styður á hnappinn Lokið, 721 00:38:37,000 --> 00:38:40,000 og það þýðir að hlutur þarf að innleiða siðareglur 722 00:38:40,000 --> 00:38:45,000 sem segir að ég lofa að skilgreina því að gera hnappur aðgerð, 723 00:38:45,000 --> 00:38:47,000 því ef það er ekki skilgreint sem aðferð og þú stutt á Lokið 724 00:38:47,000 --> 00:38:49,000 þá er það að fara að vera ruglingslegt. 725 00:38:49,000 --> 00:38:55,000 >> Við skulum taka a líta á dæmi. 726 00:38:55,000 --> 00:38:58,000 Hér hef ég bara einn texta reit, 727 00:38:58,000 --> 00:39:04,000 og einn af þeim eiginleikum þessa textareitinn hérna á þessari hægra megin er fulltrúi. 728 00:39:04,000 --> 00:39:06,000 Þetta er eign í bekknum. 729 00:39:06,000 --> 00:39:09,000 Það sem ég gerði hér er ég stjórna smellt og ég draga úr þessum stað hérna 730 00:39:09,000 --> 00:39:13,000 að skoða stjórnandi, og það segir nú fulltrúa þessa textareitinn 731 00:39:13,000 --> 00:39:18,000 er að fara að vera skoða stjórnandi. 732 00:39:18,000 --> 00:39:20,000 Það þýðir að þegar sumir aðgerðir gerast, frekar en skráningu 733 00:39:20,000 --> 00:39:25,000 aðskilin dýraþjálfari atburður sem ég vil að þú sendir þær til fulltrúa. 734 00:39:25,000 --> 00:39:28,000 Nú skulum taka a líta á stjórnandi að mínu mati. 735 00:39:28,000 --> 00:39:32,000 Inni á. H skrá sem ég hef gert loforð. 736 00:39:32,000 --> 00:39:36,000 Ég hef lofað að framkvæma nokkrar aðferðir innan þessarar bókunar 737 00:39:36,000 --> 00:39:38,000 heitir UITextFieldDelegate og aftur, 738 00:39:38,000 --> 00:39:42,000 þetta er bara listi yfir nokkra hluti sem ég get valið um að framkvæma. 739 00:39:42,000 --> 00:39:46,000 >> Ef ég kem hingað í minn skrá. M, ég hef innleitt eina slíka aðferð. 740 00:39:46,000 --> 00:39:49,000 Ég hef kallað það textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 því það er það sem það var kallað inni í siðareglur. 742 00:39:52,000 --> 00:39:57,000 Og nú þegar ég ýta á hnappinn Lokið inni þeim textareit 743 00:39:57,000 --> 00:40:00,000 þetta er það sem er að fara að fá kallað, þannig að ég var ekki skráð atburð dýraþjálfari. 744 00:40:00,000 --> 00:40:03,000 Ég tengdur við fulltrúa, og þegar þessi atburður er rekinn 745 00:40:03,000 --> 00:40:08,000 Þetta er aðferð sem mun fá kallað, þannig að ef ég kem hérna á klippiborðinu minn og keyra hana- 746 00:40:08,000 --> 00:40:11,000 en það er hleðsla sjáum hvað þetta gerir. 747 00:40:11,000 --> 00:40:13,000 Á skjánum mínum hef ég 2 hluti. 748 00:40:13,000 --> 00:40:16,000 Ég hef þetta textareitinn, og ég hef þetta merki. 749 00:40:16,000 --> 00:40:19,000 Ég er einfaldlega að segja að ég vil texta þessu merki 750 00:40:19,000 --> 00:40:23,000 að vera jafnt hvað notandinn slegið í innanverða textareitinn. 751 00:40:23,000 --> 00:40:26,000 Þessi næsta lína hér er einfaldlega aðferð sem ég er að kalla 752 00:40:26,000 --> 00:40:29,000 á textareitinn sem segir að ég vil að þú að fela lyklaborðið. 753 00:40:29,000 --> 00:40:33,000 Þetta er bara handahófskennt aðferð sem Apple valdi. 754 00:40:33,000 --> 00:40:38,000 >> Aftur, áður en ég gerði eitthvað sem ég þurfti að vírinn allt upp, þannig að ég kom fyrst hérna. 755 00:40:38,000 --> 00:40:42,000 Frá sjónarhorni stjórnandi ég er að draga yfir í textareitinn. 756 00:40:42,000 --> 00:40:46,000 Ég sleppti, og ég get séð hér að ég get gert þetta á sviði texta eign 757 00:40:46,000 --> 00:40:49,000 síðan hérna í ljósi stjórnandi sem ég hef skilgreint að eign 758 00:40:49,000 --> 00:40:52,000 sem er IBOutlet á textareitinn. 759 00:40:52,000 --> 00:40:55,000 Það segir að ég get þráð þessa eign upp 760 00:40:55,000 --> 00:40:59,000 í textareitinn í HÍ mínu. 761 00:40:59,000 --> 00:41:03,000 Nú þegar ég smelli þessu get ég farið að skrifa. 762 00:41:03,000 --> 00:41:06,000 Nú ef ég smelli á hnappinn Lokið þetta er að fara að skjóta 763 00:41:06,000 --> 00:41:08,000 atburður sem ég get nú brugðist við. 764 00:41:08,000 --> 00:41:10,000 Enginn atburður dýraþjálfari. 765 00:41:10,000 --> 00:41:13,000 Það er hvernig ég svaraði bara að því að gera hnappur. 766 00:41:13,000 --> 00:41:15,000 Skynsamleg? 767 00:41:15,000 --> 00:41:20,000 >> Þetta er ekki hönnun mynstur sem-þú getur ekki alltaf finna þig 768 00:41:20,000 --> 00:41:23,000 búa til eigin siðareglur þína, en bara veit að sumir 769 00:41:23,000 --> 00:41:27,000 mismunandi IOS hluti skrá atburði á mismunandi vegu. 770 00:41:27,000 --> 00:41:29,000 Buttons, til dæmis, nota þau IBActions. 771 00:41:29,000 --> 00:41:32,000 Texti sviðum, hins vegar, eru að fara að nota fulltrúa. 772 00:41:32,000 --> 00:41:36,000 Við sjáum og þú getur að líta öll þessi upp inni á gögnum. 773 00:41:36,000 --> 00:41:41,000 Við the vegur, það er í raun tonn af HÍ efni byggt í IOS fyrir þig, 774 00:41:41,000 --> 00:41:46,000 svo til dæmis, eins og ég gerði að segja gert neðst til hægri 775 00:41:46,000 --> 00:41:48,000 er ég valdi þessa textareitinn. 776 00:41:48,000 --> 00:41:50,000 Ég kom hingað. 777 00:41:50,000 --> 00:41:53,000 Ég skrunað niður aðeins til að fara aftur inni 778 00:41:53,000 --> 00:41:56,000 og ég get í raun gert þetta allt fullt af hlutum, eins og ef ég vil það að segja 779 00:41:56,000 --> 00:42:00,000 neyðarnúmer í stað ég get gert það, sem er algerlega af handahófi, 780 00:42:00,000 --> 00:42:02,000 og ég veit ekki af hverju það er a innbyggður-í neyðarnúmer hnappinn, 781 00:42:02,000 --> 00:42:06,000 en þar segir, það neyðarnúmer í mjög litlum stöfum. 782 00:42:06,000 --> 00:42:08,000 Þar sem þú ferð. 783 00:42:08,000 --> 00:42:12,000 >> Ákveðið kanna allar þessar mismunandi valkosti í IOS. 784 00:42:12,000 --> 00:42:14,000 Einhverjar spurningar um fulltrúa? 785 00:42:14,000 --> 00:42:18,000 Aftur, bara áhugavert hönnun mynstur sem þú ættir að vera meðvitaðir um. 786 00:42:18,000 --> 00:42:22,000 Jæja, við skulum næst líta á skoðanir töflunni. 787 00:42:22,000 --> 00:42:26,000 A borð útsýni er í rauninni að listi yfir atriði sem er út um allt í IOS. 788 00:42:26,000 --> 00:42:29,000 Þegar þú ert að snúa í gegnum alla tengiliði þína, þú ert að leita á 789 00:42:29,000 --> 00:42:34,000 að setja síðuna og svona lista yfir hluti sem er kallað borð útsýni. 790 00:42:34,000 --> 00:42:37,000 Framkvæmd á borð útsýni í IOS er laglegur einfaldur. 791 00:42:37,000 --> 00:42:41,000 Í stað þess að gera flokk sem nià frá því UIViewController 792 00:42:41,000 --> 00:42:44,000 eins og við höfum gert áður en við þurfum einfaldlega að segja frekar en 793 00:42:44,000 --> 00:42:46,000 allt a UIViewController er ég vil gera, 794 00:42:46,000 --> 00:42:50,000 Ég segi allt sem UITableViewController er ég ætla að gera, 795 00:42:50,000 --> 00:42:54,000 þannig að einfaldlega bætir sumir viðbótar hluti sem eru algerlega gert fyrir okkur. 796 00:42:54,000 --> 00:42:58,000 Við þurfum að gera mjög lítið í rauninni fylla í eyðurnar innan í töflunni. 797 00:42:58,000 --> 00:43:02,000 >> Til að sýna töflu ég þarf að svara nokkrum spurningum. 798 00:43:02,000 --> 00:43:06,000 Fyrsta spurningin sem ég þarf að svara er hversu margir hlutar eru í töflunni? 799 00:43:06,000 --> 00:43:08,000 Þegar þú ert að snúa í gegnum tengiliðalistann app sem þú munt taka eftir því að það er eins konar 800 00:43:08,000 --> 00:43:12,000 skipulögð af As, þá hefur þú bs, og þú ert að lítill undir haus. 801 00:43:12,000 --> 00:43:14,000 Hver af þeim er kallað hluti. 802 00:43:14,000 --> 00:43:16,000 Þú mega eða mega ekki þörf þessi. 803 00:43:16,000 --> 00:43:19,000 The fyrstur hlutur þú þarft að gera er að innleiða aðferð 804 00:43:19,000 --> 00:43:22,000 kallast Tableview: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 Það skilar einfaldlega hversu margir hlutar sem þú hefur, 806 00:43:25,000 --> 00:43:29,000 þannig að þetta gæti sagt aftur einn ef þú átt eina stóra borðið útsýni. 807 00:43:29,000 --> 00:43:33,000 Næsta spurning sem IOS þarf að vita er hversu margir línur ertu með? 808 00:43:33,000 --> 00:43:36,000 Til dæmis, þú ert að snúa í gegnum borð útsýni. 809 00:43:36,000 --> 00:43:39,000 Þú hefur ákveðinn fjölda af lögum sem þú ert að leita að eða ákveðinn fjölda nafna. 810 00:43:39,000 --> 00:43:41,000 Ef þú ert mér, að sjálfsögðu, ekki það margar 811 00:43:41,000 --> 00:43:44,000 og svo er það hvernig IOS veit hversu margar frumur til að sýna. 812 00:43:44,000 --> 00:43:46,000 >> Aftur, þetta gæti sagt eitthvað eins og aftur 3. 813 00:43:46,000 --> 00:43:49,000 Borð Að mínu mati hefur 3 raðir. 814 00:43:49,000 --> 00:43:52,000 Loks iOS þarf að vita hvað hver klefi útlit eins og, 815 00:43:52,000 --> 00:43:54,000 svo er það sem það er í raun að fara að gera kalla þessa aðferð hérna, 816 00:43:54,000 --> 00:43:57,000 þetta Tableview: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 Það er að fara að kalla þessa aðferð á hverjum einasta reit inni í töflunni. 818 00:44:01,000 --> 00:44:03,000 Hvernig virkar það vita hversu oft á að kalla það? 819 00:44:03,000 --> 00:44:06,000 Jæja, sagði að það inni af fjölda lína í kafla. 820 00:44:06,000 --> 00:44:08,000 Við erum að fara að kalla þetta á hverjum frumum okkar, 821 00:44:08,000 --> 00:44:11,000 og innan um þetta er þar sem þú getur raunverulega að gera hlutina eins og 822 00:44:11,000 --> 00:44:16,000 setja textann eða segja þér hvað þessi litla bláa hnappinn á hægri hlið er. 823 00:44:16,000 --> 00:44:19,000 Mynstrið að fá þessar frumur, við erum að fara að nota þessa aðferð 824 00:44:19,000 --> 00:44:22,000 kallað dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objective-C er reyndar mjög vel þekkt fyrir fáránlega löngum nöfnum þeirra aðferð, 826 00:44:29,000 --> 00:44:32,000 og þetta er mjög falleg ræða í dæmi lið. 827 00:44:32,000 --> 00:44:37,000 Hvað þessi aðferð gerir er þetta bara segir að ég vil að þú að gefa mér í klefa. 828 00:44:37,000 --> 00:44:39,000 Bara iOS hlutur. 829 00:44:39,000 --> 00:44:41,000 Ef þú ert eitthvað eins og 100.000 lög á iPod 830 00:44:41,000 --> 00:44:45,000 hvað iOS vill ekki gera er að úthluta 100.000 frumur, 831 00:44:45,000 --> 00:44:48,000 því ef þú ert efst á listanum þínum, þú þarft virkilega að úthluta minni 832 00:44:48,000 --> 00:44:51,000 í reit sem er 99.000 raðir niður? 833 00:44:51,000 --> 00:44:55,000 Nei, vegna þess að eins og þú ert að fletta að þú getur konar úthluta eins og þú fara eftir. 834 00:44:55,000 --> 00:44:57,000 Þetta er gert fyrir þig. 835 00:44:57,000 --> 00:44:59,000 Þú þarft ekki að hafa áhyggjur af öllum þeim heimskulegt árangur efni. 836 00:44:59,000 --> 00:45:02,000 Allt sem þú segir er að þú kallar þetta aðferð dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 og þetta segir, allt í lagi, ef þú þarft að ég ætla að búa til nýjan flokk fyrir þig. 838 00:45:06,000 --> 00:45:09,000 >> En ef þú ert á the botn af the borð og þú hefur nú þegar úthlutað nokkrar frumur 839 00:45:09,000 --> 00:45:12,000 efst í töflunni sem þú ert í raun ekki að fara að þurfa fljótlega 840 00:45:12,000 --> 00:45:15,000 Ég ætla að gefa þér einn af þeim til baka í stað þess að úthluta nýja, 841 00:45:15,000 --> 00:45:17,000 og svo er þetta ágætur árangur áhyggjuefni. 842 00:45:17,000 --> 00:45:21,000 Þú þarft ekki að úthluta frumur sjálfur. 843 00:45:21,000 --> 00:45:23,000 Það er að fara að gefa þér aftur að klefanum. 844 00:45:23,000 --> 00:45:25,000 Það er að fara að fara aftur til þín a klefi mótmæla. 845 00:45:25,000 --> 00:45:28,000 Þegar þú hefur klefi hlut sem þú getur ekki efni á því. 846 00:45:28,000 --> 00:45:32,000 Hægt er að slá inn texta í reitinn með þessa eign heitir texta merki. 847 00:45:32,000 --> 00:45:36,000 Hægt er að bæta við að ör á hægri eða einhverju öðrum handahófi efni 848 00:45:36,000 --> 00:45:41,000 með þessu annarra eigna sem kallast accessoryType, og svo framvegis og svo framvegis. 849 00:45:41,000 --> 00:45:46,000 >> Við skulum taka a líta á raunverulega framkvæmd töfluskjánum núna. 850 00:45:46,000 --> 00:45:49,000 Þegar ég bjó til þessa verkefni 851 00:45:49,000 --> 00:45:53,000 frekar en að segja einum skjá umsókn ég kom reyndar hérna 852 00:45:53,000 --> 00:45:57,000 að húsbóndi-smáatriðum umsókn, og svo í rauninni samsvarar þetta í pósti app 853 00:45:57,000 --> 00:46:01,000 á iPad með töflunni útsýni til vinstri og þá innihald á hægri. 854 00:46:01,000 --> 00:46:07,000 Á iPod eða iPhone það er að fara að vinna í samræmi við eitt borð útsýni. 855 00:46:07,000 --> 00:46:10,000 Það er þar sem ég fékk ræsir númerið mitt. 856 00:46:10,000 --> 00:46:13,000 >> Fyrsta taka skulum líta á klippiborðinu. 857 00:46:13,000 --> 00:46:15,000 Allt þetta var gert fyrir mig, í grundvallaratriðum búið. 858 00:46:15,000 --> 00:46:18,000 Þetta siglingar bar sýndi mér hvað dæmi klefi gæti litið út, 859 00:46:18,000 --> 00:46:22,000 og ég get tvöfaldur smellur það, að breyta titlinum. 860 00:46:22,000 --> 00:46:25,000 Allar aðrar áhyggjur UI Ég ræð það. 861 00:46:25,000 --> 00:46:27,000 The hausaskrár lítur mjög einfalt. 862 00:46:27,000 --> 00:46:30,000 Frekar en að segja að þetta er UIViewController við erum nú að segja að þetta sé 863 00:46:30,000 --> 00:46:35,000 TableViewController, þannig að við vitum að við viljum að hringja öllum þeim borð aðferðir. 864 00:46:35,000 --> 00:46:38,000 Næst vil ég að búa til eign sem er að fara til að tákna 865 00:46:38,000 --> 00:46:40,000 hlutir inni á borði mínu. 866 00:46:40,000 --> 00:46:43,000 Þessi tafla er að fara að geðþótta sýna 867 00:46:43,000 --> 00:46:46,000 lista af ávöxtum, og svo að ég þarf að búa til nokkur fylki 868 00:46:46,000 --> 00:46:49,000 þar sem ég get sett ávöxtum. 869 00:46:49,000 --> 00:46:52,000 Inni á skrá framkvæmd minn Það fyrsta sem ég vil gera 870 00:46:52,000 --> 00:46:55,000 er ég vil vera viss um að ég frumstilla þennan array. 871 00:46:55,000 --> 00:46:58,000 >> Ég sagði alloc init, búin ávextir array minn, 872 00:46:58,000 --> 00:47:03,000 og ég er að bæta 4 hlutum á það, einn sem er mun umdeildari en hinn 3. 873 00:47:03,000 --> 00:47:06,000 Og nú hef ég upp á fjölbreytta stærð 4. 874 00:47:06,000 --> 00:47:08,000 Við erum að hrista það upp í CS50. 875 00:47:08,000 --> 00:47:11,000 Ég hef nú fjölda af stærð 4. 876 00:47:11,000 --> 00:47:13,000 Nú ætla ég að byrja að svara þessum spurningum, og í raun og veru, 877 00:47:13,000 --> 00:47:16,000 þegar ég bjó til þessa app allt þetta var þegar gert fyrir mig. 878 00:47:16,000 --> 00:47:19,000 Ég vissi ekki að slá út fjölda hluta í ljósi borð. 879 00:47:19,000 --> 00:47:22,000 Það var nú þegar, og ég er að fylla í eyðurnar. 880 00:47:22,000 --> 00:47:24,000 Hversu margir köflum hef ég? 881 00:47:24,000 --> 00:47:26,000 Einn. Allt gert. 882 00:47:26,000 --> 00:47:28,000 Hversu margar línur hef ég? 883 00:47:28,000 --> 00:47:31,000 Jæja, Ég er með eina línu fyrir hvern ávöxt, þannig að þetta telja 884 00:47:31,000 --> 00:47:34,000 er eign sem array sem segir hversu stór er það? 885 00:47:34,000 --> 00:47:36,000 Það er hversu margir línur sem ég hef. 886 00:47:36,000 --> 00:47:42,000 Að lokum þarf ég að segja hvað hefur hver klefi líta út? 887 00:47:42,000 --> 00:47:46,000 Ég ætla að segja dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Aftur, þetta var þegar skrifað fyrir mig. 889 00:47:48,000 --> 00:47:51,000 Ég vissi ekki að gera þetta sjálfur, og ég vil fá til baka 890 00:47:51,000 --> 00:47:54,000 þessi klefi á þessum stað. 891 00:47:54,000 --> 00:47:57,000 Mundu að við erum að kalla þessa sömu aðferð á hverjum einasta reit, 892 00:47:57,000 --> 00:48:01,000 og þetta rifrildi hér, þetta indexPath rifrildi, 893 00:48:01,000 --> 00:48:03,000 segir hvaða röð ég er inn 894 00:48:03,000 --> 00:48:05,000 Ef ég segi indexPath.row niður 895 00:48:05,000 --> 00:48:09,000 þetta verður að vera 0, þá verður það 1, þá mun það vera 2, og það er þannig að ég veit 896 00:48:09,000 --> 00:48:11,000 hvaða klefi Ég er nú að sýna. 897 00:48:11,000 --> 00:48:15,000 Mig langar til að setja textann í reitinn með þessu Texti eign 898 00:48:15,000 --> 00:48:19,000 að fara inn fylki ávöxt minn og fá 899 00:48:19,000 --> 00:48:21,000 mótmæla samsvarar hverri röð. 900 00:48:21,000 --> 00:48:24,000 Ef þetta er band, ég er nú að setja 901 00:48:24,000 --> 00:48:28,000 textinn eign í streng. 902 00:48:28,000 --> 00:48:30,000 Ég get gert eitt annað hlutur. 903 00:48:30,000 --> 00:48:32,000 Ég get líka skráð atburð dýraþjálfari á hvern frumna, 904 00:48:32,000 --> 00:48:35,000 svo þegar ég tappa öllum þessum frumum 905 00:48:35,000 --> 00:48:39,000 þetta didSelectRowAtIndexPath, þetta er að fara að vera kallað fyrir mig, 906 00:48:39,000 --> 00:48:42,000 svo einfaldlega með því að skilgreina þetta get ég nú séð hvað gerist 907 00:48:42,000 --> 00:48:46,000 þegar þú tappa reit, og aftur, við erum sem liggur í hver klefi var tapped 908 00:48:46,000 --> 00:48:50,000 svo að við getum endurnýtt þessa sömu atburði dýraþjálfari fyrir alla frumum okkar. 909 00:48:50,000 --> 00:48:53,000 >> Aftur, þetta er eitthvað IOS er að gera fyrir mig. 910 00:48:53,000 --> 00:48:55,000 Við skulum sýna annað pirrandi 911 00:48:55,000 --> 00:48:59,000 sem segir einfaldlega að þú sóttir eitthvað ef að eitthvað 912 00:48:59,000 --> 00:49:04,000 er að fara til vera the röð mótmæla. 913 00:49:04,000 --> 00:49:10,000 Þegar ég hlaupa þetta, ég ætla að hafa þetta gott töfluskjánum 914 00:49:10,000 --> 00:49:14,000 með einni röð fyrir hvert af þessum ávöxtum, og ef ég tappa einn 915 00:49:14,000 --> 00:49:16,000 það segir mér hvað gerðist. 916 00:49:16,000 --> 00:49:21,000 Skynsamleg? 917 00:49:21,000 --> 00:49:24,000 Við skulum byggja svolítið flóknari um app, 918 00:49:24,000 --> 00:49:28,000 eins mikið og smella þér valinn tómatur er. 919 00:49:28,000 --> 00:49:31,000 The ágætur hluti um storyboarding 920 00:49:31,000 --> 00:49:35,000 er það ekki bara að fara að hjálpa okkur hönnun skjár sig, 921 00:49:35,000 --> 00:49:38,000 það er líka að fara til að hjálpa okkur að tengja saman alla app okkar, 922 00:49:38,000 --> 00:49:42,000 svo endanleg app munum vera að byggja þetta ágætur fréttir lesandi, 923 00:49:42,000 --> 00:49:45,000 og svo það er að fara að hafa marga skjái, þannig að ég get í raun tákna 924 00:49:45,000 --> 00:49:48,000 hver af þessum mörgum skjár á klippiborðinu, 925 00:49:48,000 --> 00:49:52,000 og ég get zoom út og sjá app mína úr háu stigi. 926 00:49:52,000 --> 00:49:55,000 >> Til þess að búa til nýr þáttur inni á klippiborðinu minn 927 00:49:55,000 --> 00:49:59,000 það er mjög einfalt innan Builder tengi. 928 00:49:59,000 --> 00:50:01,000 Ef ég vil bæta við öðru skjánum til þessa, til dæmis, 929 00:50:01,000 --> 00:50:06,000 Ég get fyrst minnka með klípa zoom sem Apple elskar svo mikið, 930 00:50:06,000 --> 00:50:09,000 og niður áður en ég leita á hnappinn 931 00:50:09,000 --> 00:50:12,000 og ég er að draga og sleppa á hnappinn 932 00:50:12,000 --> 00:50:15,000 Ef ég vil stofna nýjan skjá sem ég get reyndar bara draga og sleppa 933 00:50:15,000 --> 00:50:19,000 heilt skoða stjórnandi, þannig að ef ég ná þessu, draga það hérna, 934 00:50:19,000 --> 00:50:23,000 hey, það er annar skjár, og svo nú að nota þessa sömu klippiborðinu skrá 935 00:50:23,000 --> 00:50:26,000 Ég get haft alla skjái inni app minn, og ég get minnka 936 00:50:26,000 --> 00:50:28,000 og sjá hvernig þeir hafa samskipti. 937 00:50:28,000 --> 00:50:32,000 Þetta mun ekki hafa samskipti enn. 938 00:50:32,000 --> 00:50:36,000 Leiðin sem þessir 2 skjáir samskipti er að skilgreina sambönd. 939 00:50:36,000 --> 00:50:39,000 Þú getur í rauninni sagt þennan skjá, ef þú ýtir á þennan takka, 940 00:50:39,000 --> 00:50:42,000 Ég vil að þú að renna yfir þetta nýr skjár. 941 00:50:42,000 --> 00:50:44,000 Það þýðir að það er slíkt samband milli 942 00:50:44,000 --> 00:50:46,000  fyrsta skjánum og seinni skjár. 943 00:50:46,000 --> 00:50:49,000 Þú þarft í rauninni ör þessi hnappur til the second skjár 944 00:50:49,000 --> 00:50:53,000 segja að þegar þú ýtir á þennan takka sem er þar sem ég vil fara. 945 00:50:53,000 --> 00:50:57,000 Rétt eins og við stjórna smellt og drógu að skilgreina verslunum 946 00:50:57,000 --> 00:51:01,000 við erum að fara að gera það sama að skilgreina þessar segues. 947 00:51:01,000 --> 00:51:05,000 >> Við munum sjá dæmi um það, og áður en við umskipti í raun 948 00:51:05,000 --> 00:51:08,000 frá einum skjá til annars IOS er ágætur nógur til að kalla þessa aðferð 949 00:51:08,000 --> 00:51:11,000 heitir prepareForSegue, og þetta er þar sem við getum byrjað 950 00:51:11,000 --> 00:51:14,000 senda gögn frá einum app til annars. 951 00:51:14,000 --> 00:51:17,000 Í dæminu sem við erum að fara að líta á það að í rauninni að leyfa okkur 952 00:51:17,000 --> 00:51:20,000 að sía baseball lið með rasta og sviða. 953 00:51:20,000 --> 00:51:23,000 Þegar ég velja deild, til dæmis, ég vil umskipti 954 00:51:23,000 --> 00:51:25,000 til næsta skjánum mínum þar sem ég get birt öllum deildum 955 00:51:25,000 --> 00:51:27,000 í þeirri deildinni eða öllum öðrum liðum. 956 00:51:27,000 --> 00:51:31,000 Ég þarf að senda til að skjánum hvaða lið sem þú ættir að sýna. 957 00:51:31,000 --> 00:51:35,000 Til að gera það sem ég ætla að nýta þessa aðferð hér. 958 00:51:35,000 --> 00:51:39,000 >> Að lokum, bara af handahófi benda á IOS. 959 00:51:39,000 --> 00:51:41,000 Ef þú vilt geyma gögn það er þetta sem heitir algerlega gögn, 960 00:51:41,000 --> 00:51:44,000 sem er í raun eins konar flókið að vinna með. 961 00:51:44,000 --> 00:51:47,000 Þú getur líka notað SQL til að geyma gögn, 962 00:51:47,000 --> 00:51:51,000 sem aftur er gott, en svona á flóknara hlið til að vinna með, 963 00:51:51,000 --> 00:51:55,000 en IOS styður einnig þessa mjög kaldur hlutur kallast eign lista, 964 00:51:55,000 --> 00:52:00,000 og eign listi er bara skrá sem sýnir helstu pör gildi. 965 00:52:00,000 --> 00:52:03,000 Þú skilgreina lista af lyklum, og þú segir þetta lykillinn er að fara að vera fylki. 966 00:52:03,000 --> 00:52:06,000 Þessi lykill er að fara til vera a band, og í rauninni allt sem þú getur gert 967 00:52:06,000 --> 00:52:10,000 í JSON þú getur gert inni á eign lista, 968 00:52:10,000 --> 00:52:14,000 og svo þetta virkilega fallega gerir okkur kleift að vinna með einhverjum gögnum. 969 00:52:14,000 --> 00:52:18,000 Til dæmis, ég hef þetta Teams.plist sem ég stofnaði. 970 00:52:18,000 --> 00:52:22,000 Ég bjó til nýja plist skrá, og ég get bora niður. 971 00:52:22,000 --> 00:52:26,000 Þetta er orðabók, þetta er orðabók, eru þessir strengir, 972 00:52:26,000 --> 00:52:30,000 og svo er þetta gott myndræn framsetning á JSON skjal 973 00:52:30,000 --> 00:52:33,000 eða bara setja á helstu pör gildi, 974 00:52:33,000 --> 00:52:37,000 og svo er þetta gögn sem ég ætla að vinna með inni app minn. 975 00:52:37,000 --> 00:52:40,000 >> Við skulum fyrst að koma hérna. Við höfum mikið fleiri skrár núna. 976 00:52:40,000 --> 00:52:44,000 En við skulum fyrst að koma hérna á klippiborðinu. 977 00:52:44,000 --> 00:52:48,000 The storyboard hér, ef ég get minnka- 978 00:52:48,000 --> 00:52:51,000 við getum nú séð að þetta er flæði app minn. 979 00:52:51,000 --> 00:52:53,000 Ég ætla fyrst að fara að byrja á þessum skjá. 980 00:52:53,000 --> 00:52:55,000 Ég ætla að bora niður í þessum skjá, 981 00:52:55,000 --> 00:52:58,000 og ég ætla að bora niður í þessum skjá, og við getum séð hér að ef ég svona 982 00:52:58,000 --> 00:53:04,000 færa einn af þessum í kringum okkur hafa þessi örvar að fara áfram til hér, 983 00:53:04,000 --> 00:53:08,000 og hvernig ég skilgreina þessi ör var ef ég stækka smá, 984 00:53:08,000 --> 00:53:12,000 og ef ég kem yfir þessari skoðun stjórnandi, 985 00:53:12,000 --> 00:53:16,000 og hér er klefi, og ég vil segja að þegar þú tappa a klefi 986 00:53:16,000 --> 00:53:18,000 Ég vil að þú að renna yfir í annan skjá. 987 00:53:18,000 --> 00:53:21,000 Ég get einfaldlega inni stjórn, 988 00:53:21,000 --> 00:53:26,000 skruna yfir smá, halda niðri stjórn, draga þennan reit á og sleppa. 989 00:53:26,000 --> 00:53:30,000 >> Og hérna erum við að segja það sem er breyting sem þú vilt nota? 990 00:53:30,000 --> 00:53:32,000 Ert þú vilt nota þessi renna hlutur sem heitir Push? 991 00:53:32,000 --> 00:53:34,000 Viltu renna upp frá grunni? 992 00:53:34,000 --> 00:53:36,000 Það heitir formlegur. 993 00:53:36,000 --> 00:53:40,000 Og þegar ég smellur einn af þessum, er það að fara að draga þessa ör fyrir mig, 994 00:53:40,000 --> 00:53:44,000 og það þýðir að ég hef í raun stjórnað því sem gerist þegar ég ýta á þennan hnapp myndrænt. 995 00:53:44,000 --> 00:53:48,000 Ég vissi ekki að skrifa allir kóðann í raun renna frá einum skjá til the næstur einn. 996 00:53:48,000 --> 00:53:51,000 Ég skilgreint þetta sjónrænt inni í Builder tengi. 997 00:53:51,000 --> 00:53:55,000 Ef ég smelli á þessa ör, getum við séð að ég gaf þessi hlutur nafn. 998 00:53:55,000 --> 00:53:59,000 Ég kallaði hana showDivisions, og þetta er svo að ég get vita 999 00:53:59,000 --> 00:54:03,000 hvaða umskipti er um það bil að eiga sér stað, og við munum sjá hvers vegna í aðeins sek. 1000 00:54:03,000 --> 00:54:06,000 Það er hvernig ég hef hlerunarbúnað upp mismunandi skjái í app minn. 1001 00:54:06,000 --> 00:54:09,000 Ef þetta væri á hnapp, til dæmis frekar en töfluskjánum 1002 00:54:09,000 --> 00:54:11,000 Ég gæti stjórnað smella á hnappinn, draga yfir á næsta skjá, 1003 00:54:11,000 --> 00:54:16,000 og það er hvernig ég get gert siglingar svona. 1004 00:54:16,000 --> 00:54:19,000 >> Raunverulega fljótt, ef við komum inn í MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 aftur, erum við einfaldlega að fara að skilgreina lista af hlutum 1006 00:54:22,000 --> 00:54:26,000 sem birtist í töflunni útsýni. 1007 00:54:26,000 --> 00:54:29,000 Hér er ég að segja að ég vil að þú að taka þessi plist skrá, 1008 00:54:29,000 --> 00:54:32,000 og ég vil að þú hlaða það upp í orðabók, 1009 00:54:32,000 --> 00:54:35,000 og þegar þú ert að orðabók, ætla ég að svara þessum sömu spurningum aftur. 1010 00:54:35,000 --> 00:54:37,000 Hér er fjöldi hluta. 1011 00:54:37,000 --> 00:54:41,000 Einn er ein röð fyrir hvern deildinni, og texti hverrar frumu 1012 00:54:41,000 --> 00:54:46,000 ætti að vera annaðhvort sá fyrsti, fyrsta deildin, önnur deildin, og svo framvegis. 1013 00:54:46,000 --> 00:54:51,000 Að lokum ætla ég að nota þessa aðferð að við bara sá heitir prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 og þetta er aðferð sem er að fara að vera rekinn þegar ég smelli 1015 00:54:54,000 --> 00:54:57,000 á einn af þessum línum og því að virkja þessi umskipti 1016 00:54:57,000 --> 00:54:59,000 sem ég setti upp með örvum. 1017 00:54:59,000 --> 00:55:02,000 Þetta er að segja að ég get haft margar 1018 00:55:02,000 --> 00:55:05,000 sambönd frá einum skjá til annars. 1019 00:55:05,000 --> 00:55:08,000 Ef ég hef 2 hnappa og hver hnappur tekur þig í annan skjá 1020 00:55:08,000 --> 00:55:10,000 Ég ætla að hafa 2 segues, 1 fyrir hvern hnappinn. 1021 00:55:10,000 --> 00:55:14,000 En þetta prepareForSegue er aftur, að fara að endurnýta 1022 00:55:14,000 --> 00:55:17,000 fyrir hverja mismunandi samböndum, svo það þýðir að ég þarf leið 1023 00:55:17,000 --> 00:55:21,000 að finna ef þú ýtir á fyrsta hnappinn eða þú ýtir á annað hnappinn. 1024 00:55:21,000 --> 00:55:25,000 >> Manstu þegar ég gaf að segue nafn, þetta showDivisions, 1025 00:55:25,000 --> 00:55:29,000 það er hvernig ég veit nú að þetta er segue sem var virkt. 1026 00:55:29,000 --> 00:55:32,000 Það eina sem ég vil gera er að ég vil segja 1027 00:55:32,000 --> 00:55:35,000 Ég vil að reikna út hvað ég lenti bara, 1028 00:55:35,000 --> 00:55:38,000 og svo til að fá það, get ég sagt að ég vil indexPath fyrir valda röð 1029 00:55:38,000 --> 00:55:42,000 muna indexPath segir bara þar sem ég smellti bara, 1030 00:55:42,000 --> 00:55:47,000 og þá vil ég segja að ég vil að reikna út þar sem ég er að fara. 1031 00:55:47,000 --> 00:55:50,000 Þetta destinationViewController, sem er eign segue. 1032 00:55:50,000 --> 00:55:53,000 Það er skjár sem ég ætla að, 1033 00:55:53,000 --> 00:55:56,000 þannig að ég veit að skjárinn sem ég er að fara að kallast DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 vegna þess að ég búin að bekknum, 1035 00:55:59,000 --> 00:56:02,000 og svo núna ef ég segi d.divisions 1036 00:56:02,000 --> 00:56:06,000 Ég er nú að setja eign skoða stjórnandi ég er um það bil að fara. 1037 00:56:06,000 --> 00:56:10,000 Þetta er hvernig ég er að senda gögn frá einum skjá til annars skjánum. 1038 00:56:10,000 --> 00:56:13,000 >> Bara skoða þetta DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 Þú getur séð hér að í. klst skrá 1040 00:56:16,000 --> 00:56:20,000 það er að eign deildir, og það er það sem ég er í grundvallaratriðum populating, 1041 00:56:20,000 --> 00:56:25,000 svo er það hvernig ég veit að ég er að birta deildir samsvara 1042 00:56:25,000 --> 00:56:28,000 deildinni sem ég smellti, og aftur, 1043 00:56:28,000 --> 00:56:31,000 raunverulegt töfluskjánum útlit laglegur mikill the sami, bara að svara þeim 1044 00:56:31,000 --> 00:56:34,000 3 einfaldar spurningar eins og greina 1045 00:56:34,000 --> 00:56:37,000 hvað gerist þegar þú flytur til the næstur skjár. 1046 00:56:37,000 --> 00:56:40,000 Bara nokkrar af öðrum hlutum hér. 1047 00:56:40,000 --> 00:56:43,000 Þú tekur eftir efst hér að frekar en að segja # include 1048 00:56:43,000 --> 00:56:45,000 Ég er nú að segja # flytja. 1049 00:56:45,000 --> 00:56:47,000 Þetta er bara Objective-C hlutur. 1050 00:56:47,000 --> 00:56:52,000 Innflutningur er í grundvallaratriðum a ágætur útgáfa af meðal annars, 1051 00:56:52,000 --> 00:56:57,000 og til dæmis, við þurfum að vita hvað þessi flokkur er, 1052 00:56:57,000 --> 00:57:00,000 þannig að ég get ekki bara segja DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Ef við ekki hashtag standardio.c inni. C skrá okkar 1054 00:57:05,000 --> 00:57:07,000 að þýðandinn hafði enga hugmynd um hvað printf var. 1055 00:57:07,000 --> 00:57:12,000 Á sama hátt, ef ég flytja ekki DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 að þýðandinn hefur í raun enga hugmynd hvað DivisionsViewController er. 1057 00:57:16,000 --> 00:57:19,000 Bara ganga úr skugga um að innan mismunandi. M skrárnar sem þú tryggja að flytja 1058 00:57:19,000 --> 00:57:25,000 samsvarandi. h skrár þannig að þýðandinn viti hvað er að gerast. 1059 00:57:25,000 --> 00:57:31,000 >> Að lokum, hvað Apple endanum gerir er að sýna nokkur gögn með a vefur útsýni, 1060 00:57:31,000 --> 00:57:35,000 og svo er vefur skoða hlut sem þú getur embed in 1061 00:57:35,000 --> 00:57:37,000 smá vefur flettitæki innan app. 1062 00:57:37,000 --> 00:57:40,000 Allt sem þú þarft að gera er að gefa upp vefslóð til þinn vefur flettitæki, 1063 00:57:40,000 --> 00:57:43,000 svo ég vil fara til mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 og þetta er hvernig ég get nálgast á heimasíðu fyrir hvern lið, 1065 00:57:46,000 --> 00:57:49,000 og það með því að farið í þessa slóð 1066 00:57:49,000 --> 00:57:52,000 vefur sýn getur birt þetta fyrir mig, og ég get flett í kring, 1067 00:57:52,000 --> 00:58:01,000 og hermir er í notkun af því einn. 1068 00:58:01,000 --> 00:58:03,000 Nú þetta kom frá plist mínum. 1069 00:58:03,000 --> 00:58:07,000 Ef ég smelli þessu þetta kom einnig frá plist minn, og það renna var meðhöndluð 1070 00:58:07,000 --> 00:58:09,000 með því að skilgreina þær segues. 1071 00:58:09,000 --> 00:58:12,000 Ég smelli þessu og einn, 1072 00:58:12,000 --> 00:58:15,000 og nú er hér UIWebView mín, svo bara svona 1073 00:58:15,000 --> 00:58:19,000 hér er vefsíða fyrir slóð sem ég embed bara, 1074 00:58:19,000 --> 00:58:21,000 og ég þurfti ekki að höndla neitt brjálaður. 1075 00:58:21,000 --> 00:58:24,000 Þetta er hvernig á að birta á vefsíðu. 1076 00:58:24,000 --> 00:58:27,000 Hluti eins og þetta aftur á hnappinn hér eru einnig gefið mér 1077 00:58:27,000 --> 00:58:33,000 algerlega fyrir frjáls vegna þess að ég hef skilgreint þessi tengsl með segues. 1078 00:58:33,000 --> 00:58:37,000 >> Einhverjar spurningar? Já. 1079 00:58:37,000 --> 00:58:40,000 [Nemandi] Svo þegar þú notar alloc, hefur þú aldrei að losa neitt? 1080 00:58:40,000 --> 00:58:43,000 Einmitt, þegar þú hringir alloc og init þú þarft ekki að losa það. 1081 00:58:43,000 --> 00:58:46,000 IOS er að fara að höndla allt sem fyrir þig. 1082 00:58:46,000 --> 00:58:51,000 Það er dásamlegt, og þú ert ekki að brjóta allar reglur. Já. 1083 00:58:51,000 --> 00:58:54,000 [Nemandi] Ef þú varst að bæta við fleiri lið sem gæti passa á skjáinn, 1084 00:58:54,000 --> 00:58:58,000 myndi það hafa sjálfkrafa fletta kostur eða er það eitthvað sem þú þarft að bæta við? 1085 00:58:58,000 --> 00:59:01,000 Einmitt, ef ég hefði fleiri lið, til dæmis, myndi það sjálfkrafa höndla 1086 00:59:01,000 --> 00:59:04,000 að skruna að mér, og alla frammistöðu varðar 1087 00:59:04,000 --> 00:59:08,000 með risastóra töflu eru einnig meðhöndlaðar algerlega fyrir mig. 1088 00:59:08,000 --> 00:59:11,000 >> Aðrar spurningar? 1089 00:59:11,000 --> 00:59:13,000 Allt þessum reglum er að fara til vera staða. 1090 00:59:13,000 --> 00:59:16,000 Við glossed konar yfir smá af fleiri minniháttar smáatriði, 1091 00:59:16,000 --> 00:59:19,000 en hlutir eins og setja nokkrar eignir á vefnum útsýni 1092 00:59:19,000 --> 00:59:22,000 eru bara það sem þú getur fengið með því að skoða skjöl Apple, 1093 00:59:22,000 --> 00:59:24,000 sem er virkilega, virkilega fallega lagði út. 1094 00:59:24,000 --> 00:59:27,000 Þeir hafa a einhver fjöldi af apps sýnishorn og dæmi málnotkun 1095 00:59:27,000 --> 00:59:34,000 mismunandi API, svo örugglega lesa þær ef þú getur. 1096 00:59:34,000 --> 00:59:36,000 Bara nokkrir gagnlegir tenglar sem þú might vilja til taka a líta á. 1097 00:59:36,000 --> 00:59:38,000 Þetta eru nokkur vel fylgja skjöl. 1098 00:59:38,000 --> 00:59:41,000 Vefslóðir eru gegnheill, svo þeir eru stytt. 1099 00:59:41,000 --> 00:59:44,000 Þetta fyrsta er heilt bókasafn af gögnum. 1100 00:59:44,000 --> 00:59:46,000 Það er lítið bars leit, þannig að ef þú byrjar að slá inn hnappinn 1101 00:59:46,000 --> 00:59:50,000 það mun byrja að gefa þér allar upplýsingar um allt það sem þú getur gert með takka. 1102 00:59:50,000 --> 00:59:53,000 Ég hef einnig á View Tafla Forritun Guide. 1103 00:59:53,000 --> 00:59:56,000 Það sér borð útsýni í mun meiri smáatriðum, 1104 00:59:56,000 --> 01:00:00,000 hvernig á að gera hlutina eins og dynamically bæta frumur eða breyta frumur eða fjarlægja þá. 1105 01:00:00,000 --> 01:00:02,000 >> Það er hellingur af apps sýnishorn frá Apple sem mun sýna þér hvernig á að gera það, 1106 01:00:02,000 --> 01:00:05,000 og að lokum, það síðasta er Human Leiðbeiningar Tengi, 1107 01:00:05,000 --> 01:00:09,000 og þetta er í rauninni nokkur umræða um UI hluti, 1108 01:00:09,000 --> 01:00:12,000 hluti eins og gera ekki á hnappinn sem er 4 punktar um 4 punkta. 1109 01:00:12,000 --> 01:00:15,000 Það er slæm hugmynd, og önnur atriði sem Apple vill að þú gerir 1110 01:00:15,000 --> 01:00:18,000 að stuðla að góðri hönnun. 1111 01:00:18,000 --> 01:00:23,000 >> Allar síðustu spurningum áður en við ljúka upp? 1112 01:00:23,000 --> 01:00:27,000 Allt í lagi, örugglega ekki hika við að-förum að hafa sérstaka merki á ræða. 1113 01:00:27,000 --> 01:00:30,000 Við munum hafa IOS einn, þannig að örugglega ekki hika við að nýta það. 1114 01:00:30,000 --> 01:00:34,000 Ef þú vilt vinna með bekkjarfélögum þínum á verkefnum 1115 01:00:34,000 --> 01:00:37,000 eða hjálpa reikna út sumir af handahófi IOS efni 1116 01:00:37,000 --> 01:00:40,000 ekki hika við að sendu mér tölvupóst, og örugglega lesa allar kóðann á netinu vegna þess að 1117 01:00:40,000 --> 01:00:43,000 bara í þágu tíma við glossed konar yfir fleiri 1118 01:00:43,000 --> 01:00:45,000 fínni grained upplýsingar um það. 1119 01:00:45,000 --> 01:00:47,000 En ef ekki, þá gangi þér vel á IOS verkefnum, og ég vona að við höfum 1120 01:00:47,000 --> 01:00:53,000 stór innstreymi af apps í App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]