1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar] [iOS: Pisanje Apps Kot Boss] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [To je CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> V redu, vsi, dobrodošli na iOS: Pisanje Apps kot Boss. 5 00:00:12,000 --> 00:00:16,000 Seminar se bo osredotočil na pisanje aplikacij za iPhone 6 00:00:16,000 --> 00:00:19,000 in v zameno pisanje aplikacij za iPad, zato smo v bistvu gre na sprehod skozi 7 00:00:19,000 --> 00:00:23,000 nekaj različnih primerov, kako narediti aplikacijo, preprosta igra, kot Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 ali če ste bolj zainteresirani za izdelavo aplikacijo kot neke vrste bralnik novic 9 00:00:26,000 --> 00:00:30,000 ali kaj podobnega, da komunicira z internetom bom govoril o tem, kot dobro. 10 00:00:30,000 --> 00:00:32,000 Tukaj je naš kratek program. 11 00:00:32,000 --> 00:00:36,000 >> IOS programi so napisana v jeziku, ki se imenuje Objective-C, 12 00:00:36,000 --> 00:00:39,000 in zato je to malo podobna C, vendar ni res na vse, 13 00:00:39,000 --> 00:00:41,000 Tako bomo lahko govorili malo o jeziku samem 14 00:00:41,000 --> 00:00:45,000 in potem kako graditi iPhone aplikacije, ki uporabljajo to aplikacijo program, imenovan Xcode, 15 00:00:45,000 --> 00:00:48,000 ki, če niste prenesli še vas prosimo, da začnete prenos zdaj. 16 00:00:48,000 --> 00:00:50,000 To je nekaj gigabajtov. 17 00:00:50,000 --> 00:00:54,000 To bi moralo biti brezplačno na voljo na App Store, tako da boste morali imeti Mac 18 00:00:54,000 --> 00:00:57,000 idealno nameščeno najnovejšo različico OS X. 19 00:00:57,000 --> 00:00:59,000 Če niste, ni problema. 20 00:00:59,000 --> 00:01:02,000 Imamo Macov v znanosti centru je na voljo za vašo uporabo 21 00:01:02,000 --> 00:01:05,000 z Xcode nameščen, zato vas prosimo, da uporabite tiste za razvoj. 22 00:01:05,000 --> 00:01:07,000 Če želite aplikacijo, vendar nimajo Mac, ne skrbite. 23 00:01:07,000 --> 00:01:09,000 Obstaja veliko kampusu sredstva za to. 24 00:01:09,000 --> 00:01:15,000 In tako potem bomo za kritje 2 večje primere različnih aplikacij, ki jih lahko naredite. 25 00:01:15,000 --> 00:01:19,000 Objective-C je tehnično, kar se imenuje super sklop C. 26 00:01:19,000 --> 00:01:24,000 To pomeni, da vsaka koda C velja tudi Objective-C kodo. 27 00:01:24,000 --> 00:01:29,000 To pomeni, da smo nekako kanal posnet na nekaj dodatnih funkcij za C. 28 00:01:29,000 --> 00:01:33,000 Nekatere od teh funkcij so, ne da bi kdaj napisal malloc enkrat, hvala bogu, 29 00:01:33,000 --> 00:01:36,000 ne da bi morali skrbeti teh neumnih kazalcev in njihovo sprostitev in vse te stvari 30 00:01:36,000 --> 00:01:40,000 sovražiš o C, in to je nekako izginil v Objective-C. 31 00:01:40,000 --> 00:01:43,000 >> Zdaj, Objective-C ima tudi veliko večjo standardno knjižnico, 32 00:01:43,000 --> 00:01:47,000 tako da je veliko več, funkcionalnost, ki jo dobite v prosti notranjosti Objective-C. 33 00:01:47,000 --> 00:01:50,000 Se spomniš, ko smo pisali PHP smo opazili, da smo šli iz 34 00:01:50,000 --> 00:01:54,000 to najmanjši jezik, velikan knjižnici vseh teh norih stvari, ki jih lahko storite. 35 00:01:54,000 --> 00:01:56,000 Isto se dogaja v iOS. 36 00:01:56,000 --> 00:01:59,000 Tam predmeti za stvari, kot budistični koledar, in res nič 37 00:01:59,000 --> 00:02:05,000 si lahko morda misliš verjetno že obstaja v izvajanju Objective-C je. 38 00:02:05,000 --> 00:02:08,000 Cilj del Objective-C je navajanje nekaj 39 00:02:08,000 --> 00:02:11,000 imenovano objektno programiranje. 40 00:02:11,000 --> 00:02:14,000 To je neke vrste nov koncept, vendar smo dejansko v glavnem naučili 41 00:02:14,000 --> 00:02:17,000 Veliko teh konceptov je že. 42 00:02:17,000 --> 00:02:19,000 Ideja objektno programiranje je, da greš za strukturiranje 43 00:02:19,000 --> 00:02:23,000 Veliko kodo okoli teh stvari, imenovane razrede, 44 00:02:23,000 --> 00:02:26,000 in so ti razredi res praznoval konstrukti. 45 00:02:26,000 --> 00:02:30,000 Notranjost je struct smo v bistvu rekel, tukaj je stvar, 46 00:02:30,000 --> 00:02:32,000 in lahko to stvar ima člane. 47 00:02:32,000 --> 00:02:35,000 Na primer, lahko vozlišča v povezanem seznamu so tudi druge stvari 48 00:02:35,000 --> 00:02:38,000 kot vrednost, kazalec na naslednji vozel v seznamu, 49 00:02:38,000 --> 00:02:44,000 in skupaj, da kazalec in da je vrednost sestavljajo to en primerek struct. 50 00:02:44,000 --> 00:02:47,000 Razredi so zelo podobni, razen 51 00:02:47,000 --> 00:02:50,000 razredi imajo lahko tudi funkcije znotraj njih. 52 00:02:50,000 --> 00:02:54,000 Ko smo razglasila struct, bi lahko samo rečem, int n ali vozlišče * naslednji. 53 00:02:54,000 --> 00:02:57,000 >> Zdaj z Objective-C lahko dejansko dal nalog 54 00:02:57,000 --> 00:02:59,000 znotraj teh stvari. 55 00:02:59,000 --> 00:03:03,000 Še ena stvar, ki lahko storite, je, da razredi more dedovati podatkov iz drugih razredov. 56 00:03:03,000 --> 00:03:07,000 Na primer, bomo morali iskati na kup vgrajeno v razredih Objective-C. 57 00:03:07,000 --> 00:03:11,000 Eden od njih bi lahko bil razred, ki predstavlja pogled za zaslon, 58 00:03:11,000 --> 00:03:14,000 in tako z besedami, želim izvajati svoj pogled 59 00:03:14,000 --> 00:03:18,000 smo v bistvu pomeni nekoga na Apple, verjetno res prijazni ljudje, 60 00:03:18,000 --> 00:03:21,000 napisal ta razred za mano, in je obdelal stvari, kot prikazuje gumbe 61 00:03:21,000 --> 00:03:25,000 ali bi bil zaslon, in mi bi bilo res bolečino 62 00:03:25,000 --> 00:03:28,000 izvajati vse te funkcije sami, zato jih preprosto 63 00:03:28,000 --> 00:03:31,000 dedovanje podatkov lahko rečemo, da ste storili vse, kar je v tem razredu 64 00:03:31,000 --> 00:03:34,000 Želim tudi znotraj mojem razredu, potem pa bom še nekaj drugih stvari, 65 00:03:34,000 --> 00:03:37,000 sicer izvaja aplikacijo. 66 00:03:37,000 --> 00:03:40,000 To je, kaj ta beseda pomeni, dedovanje. Bomo videli bolj konkreten primer. 67 00:03:40,000 --> 00:03:42,000 >> In končno, ključ z objektno programiranje, da 68 00:03:42,000 --> 00:03:45,000 vodi k inkapsulacijo podatkov. 69 00:03:45,000 --> 00:03:48,000 V nekaterih naš problem kombinacije lahko imamo te velike, globalne spremenljivke 70 00:03:48,000 --> 00:03:51,000 globals in povsod, in to je, kako sva spremljali stanje. 71 00:03:51,000 --> 00:03:55,000 Z razredov lahko začnemo inkapsulaciji informacij znotraj objekta. 72 00:03:55,000 --> 00:03:58,000 Če imamo en zaslon na naše spletne smo v resnici ne potrebujejo nobenih podatkov 73 00:03:58,000 --> 00:04:01,000 še en zaslon v naši notranjosti app, da 74 00:04:01,000 --> 00:04:04,000 in tako z zapornim stvari v razredih to dejansko vodi 75 00:04:04,000 --> 00:04:08,000 veliko bolje oznako modela, in to je mogoče z nekaj dodatnih funkcij 76 00:04:08,000 --> 00:04:11,000 Objective-C. 77 00:04:11,000 --> 00:04:15,000 OBVESTILA, sintaksa za Objective-C je banane. 78 00:04:15,000 --> 00:04:19,000 To je nekaj, česar smo videli prej, 79 00:04:19,000 --> 00:04:22,000 zato je malo krivulja učenja navaditi 80 00:04:22,000 --> 00:04:24,000 Kaj za vraga to pomeni? 81 00:04:24,000 --> 00:04:27,000 Toda, ko boste dobili mimo začetni krivulja učenja je to res, res gladka 82 00:04:27,000 --> 00:04:29,000 , da začnete pisati programe. 83 00:04:29,000 --> 00:04:33,000 >> Za prijavo razred, da sem rekel, je moj razred, obstaja, 84 00:04:33,000 --> 00:04:35,000 in morda tukaj je nekaj stvari, ki jih bom pozneje določiti, 85 00:04:35,000 --> 00:04:38,000 Jaz bom rekel @ vmesnika. 86 00:04:38,000 --> 00:04:41,000 Jaz bom rekel @ vmesnika. Jaz bom dal moj razred ime. 87 00:04:41,000 --> 00:04:43,000 In potem kasneje nekje drugje bom rekel @ konec, 88 00:04:43,000 --> 00:04:46,000 in vse vmes @ @ vmesnikom in na koncu 89 00:04:46,000 --> 00:04:48,000 se bo moj razred. 90 00:04:48,000 --> 00:04:51,000 To se bo, kaj je notri naših datotek. H. 91 00:04:51,000 --> 00:04:55,000 Tako kot v C naši h datoteke. Bistvu rekel tukaj je nekaj stvari, ki bodo obstajajo. 92 00:04:55,000 --> 00:04:57,000 Jaz ne nujno ti, kaj počnejo še, 93 00:04:57,000 --> 00:04:59,000 ampak prevajalnik mora vedeti, da obstaja. 94 00:04:59,000 --> 00:05:04,000 Kasneje znotraj našega. M-datoteke, ker m za Objective-C 95 00:05:04,000 --> 00:05:08,000 kjer se bomo dejansko dogaja, da določite, kaj ti razredi storiti. 96 00:05:08,000 --> 00:05:11,000 Podobno kot naše. Datotek c, če smo za implementacijo funkcij. 97 00:05:11,000 --> 00:05:15,000 Znotraj našega. M datoteko bomo tukaj povedati, kaj vse funkcije 98 00:05:15,000 --> 00:05:18,000 Notranjost moj razred, kar vsi. 99 00:05:18,000 --> 00:05:22,000 In končno, notranjost struct lahko rečemo, znotraj teh zavitih oklepajih 100 00:05:22,000 --> 00:05:25,000 int n ali vozlišče * naslednji, 101 00:05:25,000 --> 00:05:28,000 in Objective-C bomo uporabil ključno besedo @ nepremičnine, 102 00:05:28,000 --> 00:05:31,000 in to je tisto, kar se dogaja, da določite lastnosti, 103 00:05:31,000 --> 00:05:36,000 ali ne-funkcije, ki so del mojih razredov. 104 00:05:36,000 --> 00:05:40,000 >> Klicanje funkcije v Objective-C je tudi banane. 105 00:05:40,000 --> 00:05:43,000 Ko smo prijavljeni funkcije v C smo rekli nekako takole int foo 106 00:05:43,000 --> 00:05:46,000 in odprt paren, nato pa ji je dal seznam argumentov. 107 00:05:46,000 --> 00:05:51,000 To je tisto, o razglasitvi metode ali funkcije izgleda v Objective-C. 108 00:05:51,000 --> 00:05:54,000 Če želim, da razglasi funkcijo ali način 109 00:05:54,000 --> 00:05:58,000 če pravim način je res samo funkcija, ki je član razreda, 110 00:05:58,000 --> 00:06:01,000 Tako nekako zamenljivi, vendar ni res, 111 00:06:01,000 --> 00:06:03,000 tako znotraj mojega načina želim ustvariti novo metodo. 112 00:06:03,000 --> 00:06:06,000 To se dogaja, da se vrnete nič, tako da se bo praznine tipa. 113 00:06:06,000 --> 00:06:08,000 To je vrnitev vrsta moje funkcije. 114 00:06:08,000 --> 00:06:11,000 Zdaj imamo parens tukaj, ker, ne vem. 115 00:06:11,000 --> 00:06:14,000 Nato se bo ime moje funkcije, 116 00:06:14,000 --> 00:06:17,000 in na koncu bomo imeli podpičje, tako kot smo v C. 117 00:06:17,000 --> 00:06:19,000 Kaj je novega tukaj je ta človek tukaj. 118 00:06:19,000 --> 00:06:22,000 Ta vezaj je dejansko potrebno, in kaj to pove, da je 119 00:06:22,000 --> 00:06:26,000 Ta metoda tukaj mora biti imenovana na primer za razred. 120 00:06:26,000 --> 00:06:29,000 >> Ko smo objavili naše konstrukti bomo verjetno rekel nekaj takega kot 121 00:06:29,000 --> 00:06:32,000 struct vozlišča n, in da je dejansko ustvaril 122 00:06:32,000 --> 00:06:35,000 ali zaženejo eno izmed teh konstrukti, tako da sem dejansko začela delovati 123 00:06:35,000 --> 00:06:38,000 s tem, kar je znotraj njega, tako da je ta črtica pomeni, da moramo 124 00:06:38,000 --> 00:06:41,000 sprožajo razred, tako kot mi, da zaženejo struct 125 00:06:41,000 --> 00:06:43,000 preden lahko rečemo te metode na njej. 126 00:06:43,000 --> 00:06:46,000 Če želim, da začnete dodajati argumente mojih metod 127 00:06:46,000 --> 00:06:48,000 postane še bolj banane. 128 00:06:48,000 --> 00:06:50,000 Tukaj je moje ime metode. 129 00:06:50,000 --> 00:06:53,000 Potem bom imela debelo črevo, debelo črevo in po tem, da pravi, da prihaja nekaj argumentov. 130 00:06:53,000 --> 00:06:56,000 Ta metoda vzame en argument. 131 00:06:56,000 --> 00:06:59,000 Vrsta svoji trditvi je int, in ime te trditve 132 00:06:59,000 --> 00:07:03,000 ali je spremenljivka, da bom za začetek uporabe notranjost metodo sem klical. 133 00:07:03,000 --> 00:07:05,000 Tudi to je način. To traja en argument. 134 00:07:05,000 --> 00:07:10,000 >> Če želite začeti dodajanjem več argumentov, da postane bolj banane 135 00:07:10,000 --> 00:07:13,000 v tem, da smo to debelo črevo, ki pravi, tukaj je moj seznam argumentov. 136 00:07:13,000 --> 00:07:15,000 Ta prvi argument je celo število. 137 00:07:15,000 --> 00:07:17,000 No, to Drugi argument je zanimivo. 138 00:07:17,000 --> 00:07:20,000 Spremenljivka, da bom lahko v notranjosti z moje funkcije 139 00:07:20,000 --> 00:07:23,000 se imenuje f, tako znotraj mojega delovanja lahko rečem, 140 00:07:23,000 --> 00:07:25,000 f + = 1 ali kaj podobnega. 141 00:07:25,000 --> 00:07:30,000 To stvar tukaj je v bistvu ključno za to trditev ali parameter. 142 00:07:30,000 --> 00:07:34,000 Tako kot smo imeli parov ključev vrednost in nekaj podobnega JSON ali združevanja nizi 143 00:07:34,000 --> 00:07:37,000 Objective-C je odločitev za povedati, v redu, samo zato, da je zelo jasno, 144 00:07:37,000 --> 00:07:39,000 Ko kličete metodo, kaj vse ti parametri so 145 00:07:39,000 --> 00:07:41,000 Jaz sem dejansko dogaja, da naštejemo vse. 146 00:07:41,000 --> 00:07:45,000 Ko pokličete metodo, boste dejansko rekel andFloat, 147 00:07:45,000 --> 00:07:47,000 in potem boš dajati noter 148 00:07:47,000 --> 00:07:50,000 >> Zanimivo je, da se ta ne imenuje, ampak vseh drugih parametrov, 149 00:07:50,000 --> 00:07:53,000 tako da, če bomo imeli 3. trditev bi rekel andFloat 150 00:07:53,000 --> 00:07:56,000 in še plavajo in tako naprej. 151 00:07:56,000 --> 00:08:01,000 Ko sem klical te metode je seveda banane, 152 00:08:01,000 --> 00:08:04,000 tako da, če imam cilj in sem opredelila metodo imenovano foo, 153 00:08:04,000 --> 00:08:09,000 in želim, da ga pokličete, kot pravijo foo za odpiranje / zapiranje parens 154 00:08:09,000 --> 00:08:11,000 Grem odpreti konzolo. 155 00:08:11,000 --> 00:08:13,000 Tukaj je ime moje metode. 156 00:08:13,000 --> 00:08:17,000 Jaz grem zapreti nosilec, in to je predmet Kličem ga na. 157 00:08:17,000 --> 00:08:20,000 Ne pozabite, da vseh teh metod obstajajo znotraj razredov 158 00:08:20,000 --> 00:08:23,000 ker lahko razrede, določene metode znotraj njih. 159 00:08:23,000 --> 00:08:26,000 >> Tukaj sem samovoljno ustvaril predmet nekaterih razreda, 160 00:08:26,000 --> 00:08:28,000 in to je sintaksa za tem. 161 00:08:28,000 --> 00:08:31,000 Obstajata 2 koraki za ustvarjanje predmeta. 162 00:08:31,000 --> 00:08:34,000 Prvi korak je, da sem želite dodeliti prostora. 163 00:08:34,000 --> 00:08:37,000 To je enako, kot knjižnične funkcije malloc. Nimamo torej malloc več. 164 00:08:37,000 --> 00:08:42,000 Mi padla m, jo ​​alloc in je nadomestil. C. Z m. 165 00:08:42,000 --> 00:08:47,000 Ko smo alloc kaj bomo potem morali zagnati. 166 00:08:47,000 --> 00:08:49,000 V bistvu, ko ustvarjate predmete, boste morda želeli, da imajo nekaj logike 167 00:08:49,000 --> 00:08:53,000 ki izvrši, ko si ustvarjena, tako da lahko preide na nekaterih privzetih vrednosti 168 00:08:53,000 --> 00:08:57,000 ali kaj podobnega, zato je ta metoda init je tisto, kar dejansko ustvarja predmet. 169 00:08:57,000 --> 00:08:59,000 Najprej smo dodelitev prostora, tako kot smo to storili v C, 170 00:08:59,000 --> 00:09:04,000 in potem smo ga inicializirati, ki lahko ali pa ne naredi veliko. 171 00:09:04,000 --> 00:09:07,000 Potem bomo to stvar vrača v predmeta o. 172 00:09:07,000 --> 00:09:09,000 Tam je zvezda tu, ker je to tehnično kazalec, 173 00:09:09,000 --> 00:09:12,000 vendar ne skrbite, kazalci niso tako velik posel v Objective-C več. 174 00:09:12,000 --> 00:09:15,000 >> Zdaj smo zaženejo ta razred, imenovan NSObject, 175 00:09:15,000 --> 00:09:19,000 in to je samo naključna razred, ki ga je Apple. 176 00:09:19,000 --> 00:09:22,000 Smo zaženejo to, zdaj pa imam primerek tega razreda 177 00:09:22,000 --> 00:09:25,000 V tem objektu O, to pomeni, da če sem opredeljen 178 00:09:25,000 --> 00:09:29,000 Te metode bi jih lahko kličem takole. 179 00:09:29,000 --> 00:09:31,000 Podobno je, če sem hotel poklicati metodo z enim argumentom 180 00:09:31,000 --> 00:09:34,000 tako da je to bar metoda, da se vzame en argument, 181 00:09:34,000 --> 00:09:38,000 in tukaj je BAZ: razvrstitev za postopek, tako da to traja 2 argumente. 182 00:09:38,000 --> 00:09:44,000 To kliče eno funkcijo, o tem predmetu o. 183 00:09:44,000 --> 00:09:46,000 Smiselno? 184 00:09:46,000 --> 00:09:50,000 Sintaksa je smiselna, vendar se nekako navadil. 185 00:09:50,000 --> 00:09:54,000 >> V redu, kaj je govoril o nekaj stvari, ki so vgrajene v Objective-C 186 00:09:54,000 --> 00:09:56,000 ki niso nujno vgrajeni v C. 187 00:09:56,000 --> 00:09:59,000 V C smo nekako se je ukvarjal s strunami, kot teh neumnih znakov nizi, 188 00:09:59,000 --> 00:10:01,000 in je dobil zelo nadležno. 189 00:10:01,000 --> 00:10:04,000 Objective-C ima vgrajeno vse tiste, za nas, in to je vgrajeno v 190 00:10:04,000 --> 00:10:06,000 uporabljate ta razred, imenovan NSString. 191 00:10:06,000 --> 00:10:10,000 Ko želim ustvariti NSString imamo več Skrivnosten sintakso. 192 00:10:10,000 --> 00:10:15,000 Namesto da bi rekel "cs50 rečemo" @ "cs50" 193 00:10:15,000 --> 00:10:17,000 in to je samo sintakso za razglasitev nizov v Objective-C. 194 00:10:17,000 --> 00:10:21,000 To je zelo enostavno pozabiti, da ne. 195 00:10:21,000 --> 00:10:24,000 Zdaj, ko imam to, to je niz, ampak obvestilo 196 00:10:24,000 --> 00:10:26,000 to je res samo predmet. 197 00:10:26,000 --> 00:10:30,000 Rekel sem NSString, kar pomeni, da zaženejo razred 198 00:10:30,000 --> 00:10:32,000 imenovano NSString, ki je nekdo napisal za mene, 199 00:10:32,000 --> 00:10:35,000 in bili so zelo lepo o njem, in sedaj 200 00:10:35,000 --> 00:10:37,000 Lahko začnete kliče metode na njej. 201 00:10:37,000 --> 00:10:40,000 Če kličem metodo dolžino na ta predmet s 202 00:10:40,000 --> 00:10:43,000 da se bo vrnil k meni na dolžino niza. 203 00:10:43,000 --> 00:10:45,000 To je tako kot strlen v C. 204 00:10:45,000 --> 00:10:47,000 To bi vrnili 4. 205 00:10:47,000 --> 00:10:51,000 >> Podobno je drug način sem morda želeli, da skrbi za to characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 To je metoda, ki pravi, da na ta niz s 207 00:10:54,000 --> 00:10:57,000 Želim si, da bi dobili 0. značaja, 208 00:10:57,000 --> 00:10:59,000 in zato bi se ta vrne k meni znakov c, 209 00:10:59,000 --> 00:11:02,000 in tam je cel kup več teh metod, ki jih lahko Google res enostavno. 210 00:11:02,000 --> 00:11:07,000 Dokumentacija Apple je super, in bomo lahko ogledate, da v malo. 211 00:11:07,000 --> 00:11:09,000 Tisti, ki so strune. 212 00:11:09,000 --> 00:11:11,000 Prav tako smo spremenljive velikosti nizi zgrajena palcev 213 00:11:11,000 --> 00:11:13,000 Se spomniš, ko smo v C prijavljeni niz 214 00:11:13,000 --> 00:11:16,000 smo morali reči, da imate 5 elementov, konec zgodbe. 215 00:11:16,000 --> 00:11:18,000 Ko smo prišli do JavaScript in PHP lahko začnemo 216 00:11:18,000 --> 00:11:20,000 počeli stvari, kot je dodajanje elementov ali premikanje elementov. 217 00:11:20,000 --> 00:11:22,000 Mi lahko storite enako v Objective-C. 218 00:11:22,000 --> 00:11:26,000 Namesto da bi ustvarili množico na običajen način C 219 00:11:26,000 --> 00:11:30,000 imamo še eno skupino, imenovano NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Tam je tudi NSArray, 221 00:11:33,000 --> 00:11:35,000 in to se dogaja, da v bistvu zajame nekaj matriko. 222 00:11:35,000 --> 00:11:38,000 Ta pravi, da je prva stvar, želim storiti, je, da sem želite dodeliti 223 00:11:38,000 --> 00:11:41,000 prostor za nov niz, in ko sem ga dodeliti 224 00:11:41,000 --> 00:11:43,000 Nato sem potrebo, da se zažene. 225 00:11:43,000 --> 00:11:45,000 Še enkrat, samo opozarjajo teh 2 načinov. 226 00:11:45,000 --> 00:11:48,000 No, to pomeni, da je znotraj tega predmeta je 227 00:11:48,000 --> 00:11:50,000 Imam prazen niz sedi tam. 228 00:11:50,000 --> 00:11:54,000 Če želim dodati nekaj tem polju, lahko pokličete addObject metodo. 229 00:11:54,000 --> 00:11:59,000 Želim dodati predmet v polju, a, in želim dodati niz CS50. 230 00:11:59,000 --> 00:12:02,000 Če bi želel nasprotno odstraniti, da lahko rečem, hočem 231 00:12:02,000 --> 00:12:09,000 odstranite predmet na prvo mesto na polju ali ugovarja. 232 00:12:09,000 --> 00:12:11,000 >> Smiselno? 233 00:12:11,000 --> 00:12:14,000 Ok, nekako navadil na to kvadratni stvar držala. 234 00:12:14,000 --> 00:12:18,000 Mimogrede, v notranjosti veliko knjižnic Apple boste videli to NS. 235 00:12:18,000 --> 00:12:21,000 NS dejansko stoji za naslednji korak, ki je bil eden izmed Steve Jobs družb, 1. 236 00:12:21,000 --> 00:12:24,000 in to je, če je res začel pisati veliko kode 237 00:12:24,000 --> 00:12:27,000 kot nekakšno osnovo za Mac OS X in vse druge stvari, 238 00:12:27,000 --> 00:12:32,000 zato je ta NS je nekako to lepo zapuščino zakričal na eno izmed prejšnjih družb 239 00:12:32,000 --> 00:12:34,000 nazaj, ko Apple prvič začenjajo. 240 00:12:34,000 --> 00:12:36,000 To je povsod. 241 00:12:36,000 --> 00:12:41,000 Oglejmo si na bolj celosten Objective-C, na primer. 242 00:12:41,000 --> 00:12:44,000 Tukaj sem znotraj Xcode. 243 00:12:44,000 --> 00:12:47,000 Da tu, sem najprej naložiti Xcode iz App Store, 244 00:12:47,000 --> 00:12:50,000 jo odprli, potem pa sem šel gor do dokumentacije, 245 00:12:50,000 --> 00:12:54,000 sem na novo, nato pa projekt. 246 00:12:54,000 --> 00:12:57,000 Ko sem naredil, da imam vse te možnosti, kaj želim ustvariti, 247 00:12:57,000 --> 00:12:59,000 in tako bomo lahko pogled na te možnosti kasneje, 248 00:12:59,000 --> 00:13:03,000 ampak samo za ta primer, ker smo dejansko ne dogaja, da imajo aplikacijo še 249 00:13:03,000 --> 00:13:06,000 Prišel sem sem, in sem rekel Command Line Tool, 250 00:13:06,000 --> 00:13:09,000 in to je aplikacija, ki lahko tečem v ukazni vrstici 251 00:13:09,000 --> 00:13:12,000 tako kot smo bili teče iz C. 252 00:13:12,000 --> 00:13:16,000 Tako sem ustvaril ta projekt, in sedaj sem tu, 253 00:13:16,000 --> 00:13:20,000 Torej, kaj je prvi vpogled v to zadevo, in to je treba videti precej pozna. 254 00:13:20,000 --> 00:13:24,000 Imam int ime. Tukaj je moj prijatelj argc, argv moj drugi prijatelj. 255 00:13:24,000 --> 00:13:30,000 Tako lahko vidimo, da je to vstopna točka za moj prvi cilj-C vloge. 256 00:13:30,000 --> 00:13:32,000 Tu lahko odmislimo to za zdaj. 257 00:13:32,000 --> 00:13:35,000 To je v bistvu upravljanje pomnilnika stvari, ki vam ne bo res 258 00:13:35,000 --> 00:13:37,000 nikoli treba skrbeti. 259 00:13:37,000 --> 00:13:39,000 >> Oglejmo si te prve bloka tukaj. 260 00:13:39,000 --> 00:13:46,000 Ta prva vrstica, če rečem, Študentska * alice = [[Student alloc] pr] kaj je to delaš? 261 00:13:46,000 --> 00:13:50,000 Ta prvi študent sem, da je to verjetno razred. 262 00:13:50,000 --> 00:13:54,000 To ni razred, ki je napisal Apple, vendar je razred, ki sem jih napisal. 263 00:13:54,000 --> 00:13:57,000 Prva stvar, želim storiti, je, da sem želite dodeliti prostor za novega študenta, 264 00:13:57,000 --> 00:14:00,000 in potem ga hočem zagnati, tako da to mi daje nazaj 265 00:14:00,000 --> 00:14:05,000 ta novi študent predmet, in sem to shranjevanje v spremenljivko, imenovano Alice. 266 00:14:05,000 --> 00:14:07,000 Odkod ta razred prišel? 267 00:14:07,000 --> 00:14:12,000 No, tukaj je na levi strani so vse različne datoteke znotraj mojega projekta. 268 00:14:12,000 --> 00:14:16,000 Tukaj lahko vidite, sem imel Student.h in Student.m. 269 00:14:16,000 --> 00:14:20,000 H datoteko., Se spomniš, ko je izjavljam, vse stvari, 270 00:14:20,000 --> 00:14:22,000 da obstajajo v razredu. 271 00:14:22,000 --> 00:14:25,000 >> Oglejmo pogled na to. 272 00:14:25,000 --> 00:14:29,000 V redu, tukaj imamo to @ vmesnik, kar pravi, da prihaja 273 00:14:29,000 --> 00:14:33,000 izjave o vsem, kar se bo obstajal v mojem razredu. 274 00:14:33,000 --> 00:14:36,000 Potem sem imel debelo črevo. Potem imam to NSObject stvar. 275 00:14:36,000 --> 00:14:40,000 To pomeni, da ima debelo črevo dediščino, malo smo se pogovarjali malo prej. 276 00:14:40,000 --> 00:14:43,000 To pove vse NSObject lahko storite 277 00:14:43,000 --> 00:14:46,000 če je ta razred NSObject napisal nekdo drug, 278 00:14:46,000 --> 00:14:50,000 Vse to lahko storite NSObject želim, da bi lahko to naredil. 279 00:14:50,000 --> 00:14:54,000 Z besedami: NSObject to pomeni, da sem v bistvu 280 00:14:54,000 --> 00:14:58,000 podedoval vso funkcionalnost drugega razreda. 281 00:14:58,000 --> 00:15:02,000 To je res mi je dal cel kup različnih metod in lastnosti, ki lahko uporabljajo. 282 00:15:02,000 --> 00:15:05,000 Tu spodaj sem ustvariti 2 lastnosti. 283 00:15:05,000 --> 00:15:08,000 To pomeni, da sem študent, če bi bilo to struct, bi bilo to v 2 stvari 284 00:15:08,000 --> 00:15:11,000 znotraj mojega struct, zato je vsak študent ima ime 285 00:15:11,000 --> 00:15:14,000 to je niz, študent ima tudi razred, 286 00:15:14,000 --> 00:15:17,000 ki je int. 287 00:15:17,000 --> 00:15:23,000 >> Končno, tukaj bom najti način za moje učence. 288 00:15:23,000 --> 00:15:26,000 Klical sem moj način, initWithName, in to traja en argument, 289 00:15:26,000 --> 00:15:31,000 in da argument je niz, sem poklical, da ime. 290 00:15:31,000 --> 00:15:35,000 Zdaj pa si poglejmo, kako smo dejansko izvaja ta razred. 291 00:15:35,000 --> 00:15:38,000 Tukaj, zdaj sem znotraj moje datoteke. M, 292 00:15:38,000 --> 00:15:40,000 m za izvajanje, se mi zdi. 293 00:15:40,000 --> 00:15:44,000 Imam izvajanje, svoj konec in tu je, če sem dejansko opredelitvijo 294 00:15:44,000 --> 00:15:47,000 kaj initWithName ne. 295 00:15:47,000 --> 00:15:50,000 Imam initWithName, ime mojega parametra, nato pa to 296 00:15:50,000 --> 00:15:53,000 Tu sem dejansko ustvarja študenta, 297 00:15:53,000 --> 00:15:56,000 in zato je to malo skrivnosten, ampak to je nekako boiler 298 00:15:56,000 --> 00:15:58,000 , ki jih želite vključiti v svoje proizvajalci. 299 00:15:58,000 --> 00:16:02,000 Ta funkcija inicializacije tukaj initWithName je tip konstruktor. 300 00:16:02,000 --> 00:16:05,000 Vi ste v bistvu izgradnjo novega študentskega predmet 301 00:16:05,000 --> 00:16:07,000 in morda pošiljanje nekaterih podatkov v njej. 302 00:16:07,000 --> 00:16:11,000 Prva stvar, želim storiti, je, vas vabim, da init na to super stvar. 303 00:16:11,000 --> 00:16:15,000 >> Se spomniš, ko sem rekel, tukaj v datoteko. H 304 00:16:15,000 --> 00:16:21,000 da je vse NSObject ima študent tudi je. 305 00:16:21,000 --> 00:16:24,000 To pomeni, da ko sem ustvariti študenta, kar sem tudi morate storiti je, 306 00:16:24,000 --> 00:16:28,000 poskrbite, da NSObject, da sem podedoval vse te podatke iz 307 00:16:28,000 --> 00:16:32,000 tudi inicializira pravilno. 308 00:16:32,000 --> 00:16:36,000 Kaj moram reči, je to super se dejansko dogaja, da se nanašajo na matično razred 309 00:16:36,000 --> 00:16:39,000 da sem podedoval od, zato želim, da poskrbite, da sem inicializacijo 310 00:16:39,000 --> 00:16:43,000 vse, kar sem glede na to, preden začnem poskušam uporabljati. 311 00:16:43,000 --> 00:16:46,000 Potem, če je pravilno inicializiran je to tako, kot pravijo, če malloc 312 00:16:46,000 --> 00:16:50,000 Ni zadetka za nično, potem lahko začnem nastaviti nekaj lastnosti. 313 00:16:50,000 --> 00:16:54,000 >> V JavaScript in PHP sva to ključno besedo imenujemo to, 314 00:16:54,000 --> 00:16:58,000 in to iz sedanjega primerek razreda. 315 00:16:58,000 --> 00:17:00,000 V Objective-C imenujemo to jaz. 316 00:17:00,000 --> 00:17:04,000 Ko rečem self.name, kar pomeni, da je predmet 317 00:17:04,000 --> 00:17:07,000 Pravkar sem ustvaril, ko sem rekel študent alloc init, 318 00:17:07,000 --> 00:17:09,000 da se dogaja, da mi vrne predmet. 319 00:17:09,000 --> 00:17:12,000 To pomeni, da želim, da nastavite ime tega predmeta 320 00:17:12,000 --> 00:17:15,000 za kar sem opravil noter 321 00:17:15,000 --> 00:17:18,000 Tako kot v C, imamo dostop člane s to piko, 322 00:17:18,000 --> 00:17:21,000 Tako pravi self.name ime študenta predmeta 323 00:17:21,000 --> 00:17:24,000 Zdaj bo vse, kar si pravkar opravil noter 324 00:17:24,000 --> 00:17:28,000 In tako končno bom lahko vrnil, zato sem dejansko dobil nekaj nazaj. 325 00:17:28,000 --> 00:17:30,000 >> Vprašanja? 326 00:17:30,000 --> 00:17:34,000 Ok, tako da to samo init = super, 327 00:17:34,000 --> 00:17:37,000 če ne popolnoma razumejo dediščino stvari, ne skrbite. 328 00:17:37,000 --> 00:17:40,000 Samo vem, da če si kdaj želeli, da bi svoj način samo init 329 00:17:40,000 --> 00:17:42,000 storiti, in boste na dobri poti. 330 00:17:42,000 --> 00:17:44,000 Ja. >> [Študent] Kaj pa, če je samo pomeni? 331 00:17:44,000 --> 00:17:49,000 To pomeni, da ko smo malloc kaj moramo vedno preveriti, če je bila enaka null, 332 00:17:49,000 --> 00:17:51,000 in če bi bilo nič, potem smo zapustili. 333 00:17:51,000 --> 00:17:55,000 To je ista stvar, kajti če ta vrne null, potem bomo verjetno bo SEG napake 334 00:17:55,000 --> 00:17:57,000 če začnemo poskuša manipulirati. 335 00:17:57,000 --> 00:18:01,000 To je naš študent razred. 336 00:18:01,000 --> 00:18:03,000 To pomeni, da lahko zažene naših študentov na enega od dveh načinov. 337 00:18:03,000 --> 00:18:08,000 Če rečem, študent alloc init ne bom na ta način, da sem napisal, 338 00:18:08,000 --> 00:18:11,000 in namesto tega lahko preprosto rekli alice.name, 339 00:18:11,000 --> 00:18:14,000 in zdaj bom, da nastavi ime lastnosti. 340 00:18:14,000 --> 00:18:17,000 >> Podobno je, če želim uporabljati to metodo initWithName 341 00:18:17,000 --> 00:18:20,000 Lahko preprosto reči alloc, nato pa kot pravijo pr 342 00:18:20,000 --> 00:18:24,000 Bom poklical, da je metoda, ki sem jo pravkar ustvarili, in bom poslati v Bobu. 343 00:18:24,000 --> 00:18:30,000 Na tej točki, je ta predmet Bob ima enako ime Bob. 344 00:18:30,000 --> 00:18:35,000 V redu, tukaj sem s pomočjo tega NSMutableArray, da smo pogledal prej. 345 00:18:35,000 --> 00:18:38,000 Jaz sem dodelitev space.Then sem inicializacijo nov niz. 346 00:18:38,000 --> 00:18:40,000 Jaz bom dodal 2 stvari za to. 347 00:18:40,000 --> 00:18:43,000 Ta matrika ima zdaj v lasti študentske predmetov. 348 00:18:43,000 --> 00:18:46,000 Obvestilo, da nikjer ni moram reči, to je množica študentov. 349 00:18:46,000 --> 00:18:48,000 Rekel sem, da je matrika, obdobje. 350 00:18:48,000 --> 00:18:50,000 Potem bom lahko dal karkoli znotraj nje, ki ga želim. 351 00:18:50,000 --> 00:18:52,000 Tukaj imam 2 predmetov. 352 00:18:52,000 --> 00:18:56,000 >> Končno imam drug predmet tukaj, to LTE. 353 00:18:56,000 --> 00:18:59,000 Tukaj v TF.h v bistvu ista stvar. 354 00:18:59,000 --> 00:19:01,000 Jaz sem podedoval od NSObject, in mimogrede, 355 00:19:01,000 --> 00:19:03,000 Ko ustvarite razrede je vse to naredil za vas, 356 00:19:03,000 --> 00:19:06,000 ta vrsta boiler vmesnika. 357 00:19:06,000 --> 00:19:08,000 To je lastnost študentov. 358 00:19:08,000 --> 00:19:15,000 Imam nekaj metod, tu se res ne naredi veliko, 359 00:19:15,000 --> 00:19:18,000 in tako to pomeni, da ko sem ustvariti ta objekt TF 360 00:19:18,000 --> 00:19:23,000 Lahko pokličete to metodo oceno o njem, kot je ta. 361 00:19:23,000 --> 00:19:26,000 Vsa vprašanja v zvezi sintakso Objective-C, preden smo začeli premikati v nekaj več 362 00:19:26,000 --> 00:19:30,000 Zanimivo programi za razvoj stvari? 363 00:19:30,000 --> 00:19:34,000 >> Ok, tako da je dejansko lahko iPhone app. 364 00:19:34,000 --> 00:19:39,000 Jedro razredov, da boste v notranjosti z uporabo vašega iPhone app se imenujejo pogled krmilniki, 365 00:19:39,000 --> 00:19:42,000 in pogled na krmilnik v bistvu predstavlja en zaslon 366 00:19:42,000 --> 00:19:46,000 znotraj vašega app, tako da če sem na glasbeni app, na primer, 367 00:19:46,000 --> 00:19:50,000 1 Pogled na regulator lahko zastopa stališče, v kateri sem si ogledate vse skladbe na svoj iPhone. 368 00:19:50,000 --> 00:19:53,000 Še en pogled nadzornik lahko, ko kliknem na skladbo in začeli igrati 369 00:19:53,000 --> 00:19:55,000 ali, kot sem pomikanjem umetnikov. 370 00:19:55,000 --> 00:19:59,000 Vsak od teh različnih zaslonih bi lahko zastopali drugega upravljavca pogled, 371 00:19:59,000 --> 00:20:04,000 in pogled na krmilnik je res samo razred, ki pravi, kako ta zaslon deluje. 372 00:20:04,000 --> 00:20:07,000 Stvari, ki spolzi iz pogleda upravljavca, da bomo imeli lastnosti, 373 00:20:07,000 --> 00:20:10,000 tako da stvari, kot na gumb se bo premoženje našem mnenju upravljavca. 374 00:20:10,000 --> 00:20:13,000 >> Mi smo tudi dogaja, da imajo metode, in to so v bistvu rutine za obravnavo dogodkov. 375 00:20:13,000 --> 00:20:16,000 Ta metoda pravi, ko pritisnete na ta gumb 376 00:20:16,000 --> 00:20:19,000 Hočem nekaj narediti, in končno, spet, 377 00:20:19,000 --> 00:20:24,000 bomo uporabljali samo to ključno za dostop do trenutni primerek. 378 00:20:24,000 --> 00:20:29,000 Za izgradnjo vmesnikov v iOS je pravzaprav zelo, zelo enostavno. 379 00:20:29,000 --> 00:20:32,000 Imajo to lepo povleci in spusti vmesnik, imenovan Interface Builder, 380 00:20:32,000 --> 00:20:37,000 in 2 ključni koncepti, ki vodnika do vašega cilja-C vmesnikom Builder 381 00:20:37,000 --> 00:20:40,000 so IBOutlet in IBAction. 382 00:20:40,000 --> 00:20:44,000 IBOutlet preprosto pravi, da če ugotovi lastnost, ki je gumb, 383 00:20:44,000 --> 00:20:47,000 in želite, da ga priključite na nekaj, kar v vašem dejanskega UI, 384 00:20:47,000 --> 00:20:49,000 boš rekel, da je izhod. 385 00:20:49,000 --> 00:20:51,000 Podobno, če želite, da predstavljajo za obravnavo dogodkov 386 00:20:51,000 --> 00:20:54,000 potem boš rekel, da je tožba. 387 00:20:54,000 --> 00:20:57,000 >> Da dejansko žico to grafični prikaz 388 00:20:57,000 --> 00:21:00,000 in kodo to je res, res preprosta. 389 00:21:00,000 --> 00:21:03,000 Če želite priključiti IBOutlet, vse kar morate storiti je, da nadzor nad klik, 390 00:21:03,000 --> 00:21:05,000 in bomo videli zgled za to zelo hitro. 391 00:21:05,000 --> 00:21:07,000 Vi nadzirate kliknite, kjer piše View Controller. 392 00:21:07,000 --> 00:21:09,000 Ti boš povlecite v vmesniku, ali obratno, 393 00:21:09,000 --> 00:21:13,000 Če želite priključiti dogodkov za obravnavo boš povleči iz vmesnika 394 00:21:13,000 --> 00:21:15,000 v drugo smer. 395 00:21:15,000 --> 00:21:20,000 Oglejmo si res preprost primer iOS. 396 00:21:20,000 --> 00:21:23,000 >> Ustvarimo nov projekt. 397 00:21:23,000 --> 00:21:25,000 Jaz bom prišel sem, da bi prijave, 398 00:21:25,000 --> 00:21:28,000 in bom še en pogled aplikacijo. 399 00:21:28,000 --> 00:21:31,000 Jaz bom še naprej. Bom dal svoj projekt ime. 400 00:21:31,000 --> 00:21:33,000 Poklical bom mu Pozdravljeni. 401 00:21:33,000 --> 00:21:36,000 Zanimivo je, da Apple ne prevzema želite ustvariti izdelek 402 00:21:36,000 --> 00:21:38,000 tako, da ga prodajajo in jih lahko zaslužite. 403 00:21:38,000 --> 00:21:41,000 Tu spodaj bom rekel, da je to iPhone app. 404 00:21:41,000 --> 00:21:44,000 Ustvarite lahko iPad app, ali če želite ustvariti eno izmed teh aplikacij 405 00:21:44,000 --> 00:21:47,000 , ki podpira obe napravi, ki jih lahko storite, da preveč. 406 00:21:47,000 --> 00:21:49,000 To so tisto, kar želite, checkmarks bi izgledal. 407 00:21:49,000 --> 00:21:51,000 >> Če želite uporabiti storyboards, ki jih bomo videli pozneje, 408 00:21:51,000 --> 00:21:54,000 in boste zagotovo želeli uporabiti avtomatsko referenčni štetju 409 00:21:54,000 --> 00:21:58,000 ki je lepa lastnost, ki vam preprečuje, da bi morali reči malloc in free. 410 00:21:58,000 --> 00:22:03,000 Razen če želite klic malloc in free, jaz bi zapustiti to preveriti. 411 00:22:03,000 --> 00:22:07,000 Bom še naslednji, in končno, to se dogaja, da bi me vprašal, če želim, da se shrani. 412 00:22:07,000 --> 00:22:14,000 Jaz bom udaril ustvariti, in gremo. 413 00:22:14,000 --> 00:22:16,000 Ustvaril sem nov projekt. 414 00:22:16,000 --> 00:22:19,000 Tukaj na levi so vse datoteke, ki so bili v moji projekta, 415 00:22:19,000 --> 00:22:22,000 in opazil, da imam cel kup in sploh nisem naredil. 416 00:22:22,000 --> 00:22:24,000 IOS je super. 417 00:22:24,000 --> 00:22:27,000 >> Na primer, tukaj je ta ViewController.h, 418 00:22:27,000 --> 00:22:30,000 to se dogaja, da predstavlja svoj prvi krmilnik pogleda, 419 00:22:30,000 --> 00:22:32,000 Tako prvi zaslon znotraj mojega app. 420 00:22:32,000 --> 00:22:34,000 Zdaj vemo, kaj je to rekel. 421 00:22:34,000 --> 00:22:36,000 Mi govoriš Kličem tem razredu ViewController, 422 00:22:36,000 --> 00:22:40,000 in ViewController pa vse, kar počne UIViewController, 423 00:22:40,000 --> 00:22:43,000 in to je spet nekaj razred, ki je zapisal, da Apple ne veliko stvari priročno za nas 424 00:22:43,000 --> 00:22:46,000 želel prikazati na zaslonu. 425 00:22:46,000 --> 00:22:50,000 Tu se lahko dejansko začela z določanjem, kaj je moj pogled na krmilnik ne, 426 00:22:50,000 --> 00:22:52,000 in izkazalo se je, da res ne potrebujem tega. 427 00:22:52,000 --> 00:22:55,000 To je koda, ki boiler Apple mi daje zastonj. 428 00:22:55,000 --> 00:22:59,000 Sem, da je treba prvo vrstico, ali pa nimam razred, 429 00:22:59,000 --> 00:23:02,000 tako da bomo znebili tega in se znebite tega. 430 00:23:02,000 --> 00:23:05,000 Ok, to je moj prazen zaslon. 431 00:23:05,000 --> 00:23:08,000 >> Zdaj pa še o tem MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 in to je, če se začne, da se zanimivo. 433 00:23:11,000 --> 00:23:14,000 To je prvi zaslon na moj app. 434 00:23:14,000 --> 00:23:17,000 Če želim dodati gumb, v HTML sem moral ustvariti gumb oznako. 435 00:23:17,000 --> 00:23:20,000 V Android morate ustvariti gumb oznako, 436 00:23:20,000 --> 00:23:23,000 ampak v iOS, če sem prišel sem, da bi v spodnjem desnem 437 00:23:23,000 --> 00:23:27,000 in če sem kliknite na to 3. 1 tukaj, kjer piše predmetov, 438 00:23:27,000 --> 00:23:31,000 in sem lahko pomikate navzdol, ali sem lahko začel iskati gumb. 439 00:23:31,000 --> 00:23:35,000 In poglej, gumb, tako da če sem dejansko povleci in spusti to pravico tam, 440 00:23:35,000 --> 00:23:38,000 Pravkar sem dodal gumb za ta zaslon na moj app. 441 00:23:38,000 --> 00:23:41,000 Če želim spremeniti besedilo, lahko sem jo dvokliknite, 442 00:23:41,000 --> 00:23:47,000 povedati nekaj zapeljivih kot "Me pritiskom." 443 00:23:47,000 --> 00:23:51,000 Ok, zdaj, če sem teči ta program, zato smo ga pripravi, 444 00:23:51,000 --> 00:23:54,000 tako da bi sistem deloval kliku na gumb za predvajanje v zgornjem levem kotu, in tam je moj app. 445 00:23:54,000 --> 00:23:58,000 Nisem naredil nič, in sem dobil videti sladko iPhone app. 446 00:23:58,000 --> 00:24:01,000 Če želim, da ga ustaviti, lahko kliknete gumb za izklop 447 00:24:01,000 --> 00:24:03,000 ker je bolj zabavno. 448 00:24:03,000 --> 00:24:07,000 >> Recimo, da sem dejansko želijo nekaj zgodilo, ko pritisnem na ta gumb. 449 00:24:07,000 --> 00:24:09,000 Za to, kaj moram storiti, je, da moram ustvariti 450 00:24:09,000 --> 00:24:13,000 Novi trener dogodek ali dejanje. 451 00:24:13,000 --> 00:24:16,000 To pomeni, da moram ustvariti neko metodo, ki jo želim, da se imenuje 452 00:24:16,000 --> 00:24:18,000 Ob pritisku na gumb, tako da je ustvaril novo metodo. 453 00:24:18,000 --> 00:24:20,000 Jaz sem znotraj ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Moram reči, da obstaja način. 455 00:24:22,000 --> 00:24:26,000 Rabim vezaj 1. ker bom lahko kličem te na ogled krmilnika. 456 00:24:26,000 --> 00:24:28,000 Moram dati to vrsto. 457 00:24:28,000 --> 00:24:31,000 Vrsta to se bo, da IBAction stvar, ki smo videli prej. 458 00:24:31,000 --> 00:24:35,000 To je dogodek trener, tako da se bo vrnil IBAction, 459 00:24:35,000 --> 00:24:38,000 in to je namig, da Xcode reči, da 460 00:24:38,000 --> 00:24:40,000 To je nekaj, kar želim, da nakaže nekaj. 461 00:24:40,000 --> 00:24:45,000 Ne morem ji dati ime, kot buttonPressed, podpičjem. 462 00:24:45,000 --> 00:24:48,000 >> Zdaj sem se razglasi za novo metodo globoko v mojem razredu. 463 00:24:48,000 --> 00:24:50,000 Sem rekel, ta metoda obstaja. 464 00:24:50,000 --> 00:24:53,000 Zdaj pa je prišel v ViewController.m, 465 00:24:53,000 --> 00:24:56,000 in recimo, kaj lahko ta metoda storiti. 466 00:24:56,000 --> 00:25:03,000 Če začnem tipkati, na primer (prazno) buttonPressed 467 00:25:03,000 --> 00:25:06,000 Obvestilo Xcode je res lepo in autocompletes zame. 468 00:25:06,000 --> 00:25:09,000 To je zares čudovito. 469 00:25:09,000 --> 00:25:12,000 Obvestilo tukaj, da notranjost. M datoteko morem reči tudi za neveljavno, 470 00:25:12,000 --> 00:25:15,000 in to je zato, ker IBAction pravzaprav ni tip. 471 00:25:15,000 --> 00:25:19,000 To je hashtag dejansko definirana nekje, da je nična, 472 00:25:19,000 --> 00:25:22,000 in spet, to je samo namig, da Xcode, ki pravi, 473 00:25:22,000 --> 00:25:25,000 Hočem, da je to dogodek trener, pa bomo videli, zakaj v samo sekundo. 474 00:25:25,000 --> 00:25:28,000 Ob pritisku na ta gumb bom nekaj siten 475 00:25:28,000 --> 00:25:30,000 želel prikazati pojavno okno. 476 00:25:30,000 --> 00:25:35,000 >> Če želite to narediti, da sem lahko ustvarite nov primerek tega razreda, imenovano UIAlertView, 477 00:25:35,000 --> 00:25:39,000 in to je razred, ki je zapisal, da Apple se dogaja, da se prikaže siten ljudstvo. 478 00:25:39,000 --> 00:25:43,000 Poklicali bomo to pojavno okno opozorilo, in imam 2 koraka, ne pozabite, da ustvarjanje tega predmeta. 479 00:25:43,000 --> 00:25:46,000 Prva stvar, kar morate storiti, je dodelitev prostora. 480 00:25:46,000 --> 00:25:48,000 Želim UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Želim dodeliti prostora. To je moja prva metoda. 482 00:25:51,000 --> 00:25:53,000 Moj naslednji način je rad za inicializacijo, 483 00:25:53,000 --> 00:25:58,000 in tako imam to veliko, dolgo metode, imenovane initWithTitle. 484 00:25:58,000 --> 00:26:01,000 To je v bistvu gre za nadzor, kaj je to ljudstvo pravi. 485 00:26:01,000 --> 00:26:04,000 Naslov mojega popup lahko pozdravi. 486 00:26:04,000 --> 00:26:08,000 Sporočilo je to ljudstvo lahko "To je iOS." 487 00:26:08,000 --> 00:26:10,000 Delegat stvar, ne vem, kaj to je. 488 00:26:10,000 --> 00:26:13,000 Recimo, da to ni nič. 489 00:26:13,000 --> 00:26:18,000 Sedaj lahko gumb, ki se dogaja, da se pojavi rekel nekaj podobnega "Seveda je," 490 00:26:18,000 --> 00:26:24,000 in res ne želim nobenih drugih gumbov, tako da je brisanje tem in zaprite nosilec. 491 00:26:24,000 --> 00:26:27,000 >> Ok, sem ustvaril dodaten 1. Takole. 492 00:26:27,000 --> 00:26:30,000 To je, kako sem lahko ustvarite novo ljudstvo. 493 00:26:30,000 --> 00:26:35,000 Če želim, da bi dejansko kažejo, ljudstvo vas vabim, da v oddaji metodo. 494 00:26:35,000 --> 00:26:38,000 Če želite to narediti, da lahko rečem, opozorilo in pokazati, 495 00:26:38,000 --> 00:26:40,000 in spet, autocomplete je bila super lepo. 496 00:26:40,000 --> 00:26:42,000 Če sem pozabil, kaj je bilo, če sem tipkal vs, 497 00:26:42,000 --> 00:26:45,000 Jaz lahko pomikate tukaj, da ugotovimo, kaj je bilo, 498 00:26:45,000 --> 00:26:48,000 in filtrira lepo. 499 00:26:48,000 --> 00:26:52,000 Sedaj sem ustvaril to novo ljudstvo. 500 00:26:52,000 --> 00:26:55,000 Vrnili se bomo na to, kar pomeni, delegat kasneje, 501 00:26:55,000 --> 00:26:58,000 in zdaj želim povedati hočem to metodo za kurjenje 502 00:26:58,000 --> 00:27:01,000 Ob pritisku na gumb, tako da se bom vrnil v svoj snemalni knjigi 503 00:27:01,000 --> 00:27:04,000 in želim, da se zdaj priložite ta IBAction. 504 00:27:04,000 --> 00:27:06,000 Prva stvar, ki jo želite storiti, je, kliknite na gumb. 505 00:27:06,000 --> 00:27:08,000 Ko sem pritisnite ta gumb želim nekaj zgodilo. 506 00:27:08,000 --> 00:27:10,000 Ne bom se držite nadzor. 507 00:27:10,000 --> 00:27:13,000 Grem kliknite in povlecite gumb 508 00:27:13,000 --> 00:27:15,000 do tja, kjer piše View Controller. 509 00:27:15,000 --> 00:27:17,000 Vidimo lahko, da je lepo prižgal. 510 00:27:17,000 --> 00:27:22,000 >> Če spustim z mojo miško imam sedaj to ljudstvo tja, kjer sem imel nekaj možnosti. 511 00:27:22,000 --> 00:27:24,000 Ena od teh je, da se dogodki, lahko registrirajo. 512 00:27:24,000 --> 00:27:28,000 To so vse te metode I, se navede v svojem spisu h, kot IBActions. 513 00:27:28,000 --> 00:27:31,000 To je, kako Xcode ne ve, kaj bi morale biti v tej mali seznamu 514 00:27:31,000 --> 00:27:33,000 tako da je le namig. 515 00:27:33,000 --> 00:27:37,000 Če sem kliknite na gumb pritisniti, da sem sedaj registriran obravnavo dogodkov. 516 00:27:37,000 --> 00:27:41,000 V JavaScriptu bomo imeli za povedati moram nekaj kode, ki so registrirana obravnavo dogodkov. 517 00:27:41,000 --> 00:27:43,000 V Objective-C je bilo res tako enostavno. 518 00:27:43,000 --> 00:27:46,000 Če bom tekel še enkrat 519 00:27:46,000 --> 00:27:49,000 Zdaj, ko sem pritisnite gumb moja obravnavo dogodkov se bo ogenj, 520 00:27:49,000 --> 00:27:51,000 in jaz bom dobil to pojavno okno. 521 00:27:51,000 --> 00:27:54,000 Super, super enostavno tam. 522 00:27:54,000 --> 00:27:57,000 >> Če boste kdaj želeli videti vse dogodke, ki se zgodijo je treba registrirati 523 00:27:57,000 --> 00:28:00,000 na komponento, če kliknete na gumb 524 00:28:00,000 --> 00:28:02,000 in sem prišel sem na desni strani 525 00:28:02,000 --> 00:28:05,000 1. si lahko ogledate tukaj ne morem narediti stvari, kot so tip gumba 526 00:28:05,000 --> 00:28:08,000 tako da, če hočeš eno izmed tistih, ki sem je, ali add kontaktne gumb 527 00:28:08,000 --> 00:28:10,000 ali karkoli. 528 00:28:10,000 --> 00:28:13,000 Če želim videti vse dogodke, ki so na ta gumb 529 00:28:13,000 --> 00:28:16,000 če sem prišel do sem na desni strani 530 00:28:16,000 --> 00:28:19,000 lahko ogledate tukaj na dogodkih, ki jih imam vse te različne dogodke. 531 00:28:19,000 --> 00:28:23,000 Jaz lahko s pritiskom na gumb, ko sem spustil na gumb, ko sem dvakrat pipo ali karkoli, 532 00:28:23,000 --> 00:28:26,000 in tisti, pravkar sem se prijavila, je to dogodek, imenovan Touch Up Inside, 533 00:28:26,000 --> 00:28:29,000 in ta pravi, da je takoj, ko je moj prst odlepi gumb 534 00:28:29,000 --> 00:28:32,000 ta dogodek se bo ogenj, in to je točno to, kar se je zgodilo. 535 00:28:32,000 --> 00:28:36,000 To je nekako gumb neplačila stisnjenega dogodka. 536 00:28:36,000 --> 00:28:39,000 >> Vsa vprašanja tako daleč? 537 00:28:39,000 --> 00:28:43,000 Ok, to je, kako lahko začnemo žice se stvari v našem zakoniku 538 00:28:43,000 --> 00:28:46,000 v stvari znotraj našega vmesnika. 539 00:28:46,000 --> 00:28:49,000 Ne pozabite, prva stvar, ki jo je moral storiti, je bilo, da bi našli kodo, 540 00:28:49,000 --> 00:28:54,000 in potem ožičen vmesnik s kodo, 541 00:28:54,000 --> 00:28:57,000 in tam je naš prvi app. 542 00:28:57,000 --> 00:29:00,000 Ok, to je bilo res kul, in smo ustvarili ta gumb. 543 00:29:00,000 --> 00:29:03,000 Kaj pa, če ne želimo, da ustvarite kup lastnosti 544 00:29:03,000 --> 00:29:05,000 kar te gumbe? 545 00:29:05,000 --> 00:29:08,000 Na primer, v Tic Tac Toe Imam 9 gumbov, 546 00:29:08,000 --> 00:29:11,000 in bi bilo super, super siten, da so za povleci in spusti 9 krat 547 00:29:11,000 --> 00:29:14,000 ali če sem imel, da bi Tic Tac Toe z 81 namesto 9 548 00:29:14,000 --> 00:29:17,000 in sem morala povleci in spusti 81-krat, in to je slabo. 549 00:29:17,000 --> 00:29:20,000 Kaj lahko namesto tega je podobno kot HTML 550 00:29:20,000 --> 00:29:23,000 ko smo imeli stvari, kot so ID-ji in imena, in ne moremo iskati stvari 551 00:29:23,000 --> 00:29:27,000 njihov ID, tam je podoben pojem v iOS pozval oznake. 552 00:29:27,000 --> 00:29:31,000 >> Tag je preprosto edinstven številčno oznako za komponento. 553 00:29:31,000 --> 00:29:34,000 Če rečem, to je oznako 0, na primer, 554 00:29:34,000 --> 00:29:38,000 če ustvarite gumb in ji dati oznako 0, pa bomo videli, kako to storiti v samo sekundo, 555 00:29:38,000 --> 00:29:41,000 če želite, da se ta gumb lahko preprosto povedati hočem, da pokličete 556 00:29:41,000 --> 00:29:45,000 the viewWithTag metodo na objektu tukaj, 557 00:29:45,000 --> 00:29:48,000 the self.view, ki predstavlja sedanjo zaslon, na primer. 558 00:29:48,000 --> 00:29:53,000 Če vas vabim, da se viewWithTag način, bom vleči nazaj na gumb z oznako 0. 559 00:29:53,000 --> 00:29:58,000 Oglejmo si na tem opira Tic Tac Toe. 560 00:29:58,000 --> 00:30:01,000 Prvič, to je moja storyboard. 561 00:30:01,000 --> 00:30:05,000 Ustvaril sem te UI 10 gumbov. 562 00:30:05,000 --> 00:30:07,000 Obvestilo so vsi enake velikosti. 563 00:30:07,000 --> 00:30:11,000 Če sem kliknite eno od teh in sem prišel nazaj sem na tej desni strani 564 00:30:11,000 --> 00:30:15,000 boste videli, da prilagodi pisavo tukaj, tako da sem pisavo, malo večji, 565 00:30:15,000 --> 00:30:19,000 ampak tisto, kar sem tudi storil sem bila nastavljena to oznako. 566 00:30:19,000 --> 00:30:23,000 Rekel sem, da ima to oznako 1, in da je zgoraj levo. 567 00:30:23,000 --> 00:30:26,000 >> Zdaj, če sem kliknite drug gumb, kot je ta drugi tu, 568 00:30:26,000 --> 00:30:29,000 Zdaj boste videli, da je moj tag je 2. 569 00:30:29,000 --> 00:30:32,000 Vsaka od teh gumbov, samo ima edinstveno oznako, 570 00:30:32,000 --> 00:30:35,000 in tako je to pozneje, kako bom začel interakciji 571 00:30:35,000 --> 00:30:38,000 s svojo aplikacijo. 572 00:30:38,000 --> 00:30:40,000 To je vse znotraj enega pogleda upravljavca, 573 00:30:40,000 --> 00:30:42,000 ampak tukaj je tisto, kar imamo. 574 00:30:42,000 --> 00:30:44,000 Imamo 3 lastnosti tukaj. 575 00:30:44,000 --> 00:30:49,000 Prva in zadnja se bo pomenilo stanje moji ladji. 576 00:30:49,000 --> 00:30:53,000 V bistvu je to prva je matrika predstavlja kjer Xs in so Os. 577 00:30:53,000 --> 00:30:57,000 Ta druga tukaj nam pove, katere je na vrsti. 578 00:30:57,000 --> 00:31:01,000 Opazili boste, da imam tudi te stvari tukaj. 579 00:31:01,000 --> 00:31:05,000 Pred ko smo prijavljeni lastnosti smo jim dali ime in tip. 580 00:31:05,000 --> 00:31:08,000 Prav tako lahko dobijo dodatne informacije tukaj. 581 00:31:08,000 --> 00:31:11,000 Ta prvi pravi nonatomic, in kaj to pove 582 00:31:11,000 --> 00:31:16,000 je v bistvu samo ena stvar, kdaj se poskušate dostopiti do te spremenljivke hkrati. 583 00:31:16,000 --> 00:31:19,000 Lahko naredite bolj kompleksne aplikacije, ki so multi-navojem, 584 00:31:19,000 --> 00:31:22,000 in tako nazaj Scratch smo imeli različne teme, 585 00:31:22,000 --> 00:31:25,000 in bi lahko zaradi različnih sprites se delaš različne stvari hkrati. 586 00:31:25,000 --> 00:31:29,000 >> Če to ne drži, kar pa ni v nič, da bomo lahko gledaš, 587 00:31:29,000 --> 00:31:33,000 če rečemo, da je nonatomic dejansko dogaja, da se stvari malo hitreje. 588 00:31:33,000 --> 00:31:37,000 Imamo tudi to stvar, imenovano dodeliti, močna ali šibka. 589 00:31:37,000 --> 00:31:40,000 Ta dodeli samo pravi, da je to standardni tip. 590 00:31:40,000 --> 00:31:43,000 To ni predmet ali kazalec, saj je to le int, 591 00:31:43,000 --> 00:31:46,000 Tako je bool vgrajen v Objective-C. 592 00:31:46,000 --> 00:31:49,000 Ta pravi, da ne poskušajo storiti ničesar fancy s kazalci tukaj. 593 00:31:49,000 --> 00:31:51,000 To je redni stara Scaler. 594 00:31:51,000 --> 00:31:54,000 Močne in šibke, je to slaba pravi, da je dejansko 595 00:31:54,000 --> 00:31:57,000 Želim, da se to kaže na nekaj, kar je po mnenju upravljavca. 596 00:31:57,000 --> 00:32:00,000 Ne bom se dejansko dodelijo ali init to sam. 597 00:32:00,000 --> 00:32:04,000 Vmesnik builder, ko sem prost app, da se bo ravnanje z vso to inicializacijo. 598 00:32:04,000 --> 00:32:07,000 Če rečem šibka, ki pravi, da je nekdo drug se bo ta ustvarja. 599 00:32:07,000 --> 00:32:09,000 Če rečem, močna, ta pravi, da bom lahko 1 600 00:32:09,000 --> 00:32:12,000 ki jo ustvarja ta deska predmeta, 601 00:32:12,000 --> 00:32:14,000 zato tu imam nekaj več metod tukaj 602 00:32:14,000 --> 00:32:18,000 na primer tožba, ko pritisnete gumb za novo igro, 603 00:32:18,000 --> 00:32:20,000 dejanje, ko pritisnete na katero od drugih gumbov, 604 00:32:20,000 --> 00:32:23,000 in tako dalje. 605 00:32:23,000 --> 00:32:26,000 >> Ne bomo dobili v preveč logike Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 čeprav je zelo razburljivo, vendar pa si oglejte 607 00:32:30,000 --> 00:32:33,000 nekatere stvari, ki jih počnemo znotraj iOS. 608 00:32:33,000 --> 00:32:35,000 Ta nova metoda igra se bo odpuščen 609 00:32:35,000 --> 00:32:37,000 ko pritisnem gumb za nov igro. 610 00:32:37,000 --> 00:32:41,000 Kavelj, da do sem le prišel v mojo snemalno knjigo. 611 00:32:41,000 --> 00:32:43,000 Sem kliknil na novo igro. 612 00:32:43,000 --> 00:32:47,000 Če sem prišel sem na desni vidim, da se 613 00:32:47,000 --> 00:32:50,000 Dotaknite Up Inside je nakazan na newGame metodo. 614 00:32:50,000 --> 00:32:53,000 To je, zakaj se to dogaja, da bi dobili službo. 615 00:32:53,000 --> 00:32:56,000 Metoda newGame bo naredil nekaj postavitev. 616 00:32:56,000 --> 00:32:59,000 To se dogaja, da hočem, da počistite stanje sveta. 617 00:32:59,000 --> 00:33:01,000 To je lep način za spremenljive nize. 618 00:33:01,000 --> 00:33:03,000 To se dogaja, da pravijo, da je zdaj na vrsti Xa, 619 00:33:03,000 --> 00:33:07,000 in zdaj bom to izkoristil viewWithTag stvar. 620 00:33:07,000 --> 00:33:11,000 >> Vem, da mi gumbi imajo oznake, 1-9, 621 00:33:11,000 --> 00:33:13,000 in to je nekaj, kar sem samovoljno izbrala. 622 00:33:13,000 --> 00:33:15,000 Če želim iz besedila vsak gumb, da je prazna 623 00:33:15,000 --> 00:33:17,000 ker sem pravkar začel novo igro in ne želim vse 624 00:33:17,000 --> 00:33:20,000 Xs ali OS, ki so ostala, lahko to storim. 625 00:33:20,000 --> 00:33:24,000 Lahko rečem, hočem pogled z oznako, 1, 2, 3, 4 in tako naprej. 626 00:33:24,000 --> 00:33:27,000 To bo pull drug gumb vsakič. 627 00:33:27,000 --> 00:33:30,000 Tukaj bom, da ga oddanih UIButton. 628 00:33:30,000 --> 00:33:33,000 Tako kot smo lahko odda ints, da plava in obratno 629 00:33:33,000 --> 00:33:37,000 Ta pravi, da želim, da glasuje za to UIButton. 630 00:33:37,000 --> 00:33:40,000 To pomeni, da bo tip to * UIButton 631 00:33:40,000 --> 00:33:43,000 ker kazalcev, vendar ne skrbite, saj niso več strah. 632 00:33:43,000 --> 00:33:47,000 >> Ko sem ta gumb, vam bom poklical metodo na njej. 633 00:33:47,000 --> 00:33:50,000 Ta metoda se imenuje setTitle forState, zato je ta pravi 634 00:33:50,000 --> 00:33:53,000 Rad bi postavil besedilo gumb za prazen niz, 635 00:33:53,000 --> 00:33:57,000 in želim, da bi bilo prazen niz, ko ni pritisnjena. 636 00:33:57,000 --> 00:34:01,000 Če bom na ta način, lahko spremenite besedilo na gumb 637 00:34:01,000 --> 00:34:04,000 takoj, ko je nekdo udari, ampak želimo povedati, ko je gumb samo sedel tam 638 00:34:04,000 --> 00:34:07,000 Želim besedilo na prazno. 639 00:34:07,000 --> 00:34:10,000 Na koncu bomo za inicializacijo desko, 640 00:34:10,000 --> 00:34:12,000 in bom rekel, da je vse, kar je trenutno na 0, 641 00:34:12,000 --> 00:34:15,000 tako da je ta svet člani nespremenljiva, je spremenljiva polja, 642 00:34:15,000 --> 00:34:21,000 kar pomeni, da lahko pokličete addObject način in samo 0 notri. 643 00:34:21,000 --> 00:34:23,000 To se zgodi, ko sem ustvariti novo igro. 644 00:34:23,000 --> 00:34:25,000 >> Oglejmo si še enega. 645 00:34:25,000 --> 00:34:28,000 Ta metoda tukaj je IBAction, da bo treba pritisniti 646 00:34:28,000 --> 00:34:31,000 vsakič, ko pritisnete eno od teh kvadratov. 647 00:34:31,000 --> 00:34:33,000 Zdaj imamo nekaj Tic Tac Toe logiko tukaj. 648 00:34:33,000 --> 00:34:36,000 Ugotovimo, katere je na vrsti, 649 00:34:36,000 --> 00:34:39,000 in na tej podlagi smo bodisi določi X ali O, 650 00:34:39,000 --> 00:34:43,000 vendar smo opazili, da smo ponovno ta isti dogodek za obravnavo 651 00:34:43,000 --> 00:34:45,000 Za vsako od teh gumbov. 652 00:34:45,000 --> 00:34:49,000 To pomeni, da nimam način za zgornji levi gumb, 653 00:34:49,000 --> 00:34:52,000 drugačno metodo za gumb spodaj desno, lahko pa se moram storiti. 654 00:34:52,000 --> 00:34:54,000 To ne bi bilo res dobro oblikovanje. 655 00:34:54,000 --> 00:34:57,000 Kaj delam tukaj je, da sem dejansko dogaja, da določi 656 00:34:57,000 --> 00:35:00,000 Kaj je oznaka na gumb, ki je bil stisnjen je. 657 00:35:00,000 --> 00:35:04,000 Ste opazili, da je ta igra metoda vzame en argument. 658 00:35:04,000 --> 00:35:07,000 Imenuje se pošiljatelj in kaj je pošiljatelj pošiljatelj bo 659 00:35:07,000 --> 00:35:10,000 predstavljajo točno tisto, kar je ukrepala na podlagi. 660 00:35:10,000 --> 00:35:15,000 Če pritisnem na gumb, s pošiljateljem se bo, da UIButton 661 00:35:15,000 --> 00:35:18,000 da sem dejansko pritisnil, to pomeni, da UIButton 662 00:35:18,000 --> 00:35:20,000 ima oznako, ker sem ustvaril oznako. 663 00:35:20,000 --> 00:35:23,000 >> Če želim, da se na oznaki, lahko sem le reči, 664 00:35:23,000 --> 00:35:26,000 Želim oznako pošiljatelja, 665 00:35:26,000 --> 00:35:28,000 in spet sem samo ulivali na UIButton. 666 00:35:28,000 --> 00:35:32,000 Slučajno vem, da bo pošiljatelj je UIButton. 667 00:35:32,000 --> 00:35:34,000 To pa ni vedno nujno, da je UIButton. 668 00:35:34,000 --> 00:35:36,000 Lahko bi, na primer, registrirati isto za obravnavo dogodka 669 00:35:36,000 --> 00:35:38,000  enega za enega gumba, enega za drsniku. 670 00:35:38,000 --> 00:35:40,000 V tem primeru, vem, da so vsi gumbi, tako da bom povedal 671 00:35:40,000 --> 00:35:43,000 Hočem, da je to gumb, nato pa lahko dobim oznako, 672 00:35:43,000 --> 00:35:48,000 in z oznako Zdaj vem, kje sem znotraj odbora. 673 00:35:48,000 --> 00:35:51,000 Potem lahko preprosto nastavite bodisi X ali O, lahko prezrcali na vrsti, 674 00:35:51,000 --> 00:35:54,000 preveriti, kdo je zmagal, in tako naprej. 675 00:35:54,000 --> 00:35:59,000 >> Vsa vprašanja v zvezi s tem sedaj? 676 00:35:59,000 --> 00:36:02,000 V redu, vsi smo številka objavljene na spletu, ne želimo, da se v preveč 677 00:36:02,000 --> 00:36:06,000 za Tic Tac Toe logiko, zdaj pa lahko vidite, da res 678 00:36:06,000 --> 00:36:09,000 vsi delamo, je da smo zanka v tem polju, 679 00:36:09,000 --> 00:36:13,000 tako da imamo nekaj za zank tukaj, in mi smo samo primerjavo za prikaz 680 00:36:13,000 --> 00:36:18,000 imamo tekmo v vseh vrstah, podobno v koloni ali kaj podobnega. 681 00:36:18,000 --> 00:36:21,000 V resnici vodi ta program, če se dotaknete enega od teh gumbov 682 00:36:21,000 --> 00:36:24,000 da igra metoda je bila odpuščena, tako da pomeni, da sem ravnokar 683 00:36:24,000 --> 00:36:31,000 Gumb za X, tako da bo zdaj na ta gumb bo O in tako naprej, 684 00:36:31,000 --> 00:36:35,000 in da je, kako smo začeli sodelovati s to eno samo aplikacijo strani. 685 00:36:35,000 --> 00:36:38,000 >> Bomo objavili kodo, zato vas prosimo, da se seznanijo z vsebino, 686 00:36:38,000 --> 00:36:43,000 pa kaj je zdaj govoriti o nekaterih aplikacijah, ki so več kot le eno stran. 687 00:36:43,000 --> 00:36:47,000 Tako razburljivo, kot Tic Tac Toe bilo veliko aplikacij znotraj iOS 688 00:36:47,000 --> 00:36:50,000 so vrste teh vrtanje navzdol stvari z več zasloni. 689 00:36:50,000 --> 00:36:54,000 Prvi koncept, da bomo morali govoriti o so protokoli, 690 00:36:54,000 --> 00:36:57,000 in protokol je zgolj skupek metod 691 00:36:57,000 --> 00:36:59,000 da lahko obljubim opredeliti. 692 00:36:59,000 --> 00:37:02,000 Če sem ustvaril tega novega protokola z 2 metodami, ta prvi, 693 00:37:02,000 --> 00:37:05,000 Če donos tip je nična, klicala sem ga foo. 694 00:37:05,000 --> 00:37:07,000 To traja nobenih argumentov. Imam drugo metodo. 695 00:37:07,000 --> 00:37:11,000 To vrne int. Poklical sem ga ovira, in to traja en argument. 696 00:37:11,000 --> 00:37:14,000 Vse to je protokol, ki se imenuje SomeProtocol tu gor, 697 00:37:14,000 --> 00:37:19,000 To je niz stvari, ki jih lahko nekdo izvajajo. 698 00:37:19,000 --> 00:37:22,000 Nisem znotraj tega protokola povedal, kaj počne foo. 699 00:37:22,000 --> 00:37:26,000 Namesto tega, samo pravim, da bi lahko določite foo, če želite. 700 00:37:26,000 --> 00:37:30,000 Če sem ustvariti pogled upravljavca ali ustvarjanje razred 701 00:37:30,000 --> 00:37:33,000 Jaz lahko znotraj tega razreda obljubo, da bo izvajanje 702 00:37:33,000 --> 00:37:40,000 nekatere od teh metod, tako da na primer, če pravijo 703 00:37:40,000 --> 00:37:43,000 to zdaj pravi, da delam obljubo, da vam, da v notranjosti 704 00:37:43,000 --> 00:37:50,000 tega razreda pogled kontrolorja bom imel definicije tako za foo in bar. 705 00:37:50,000 --> 00:37:52,000 >> Zakaj je to uporabno? 706 00:37:52,000 --> 00:37:55,000 Veliko delov notranjosti za iOS izkoristiti to 707 00:37:55,000 --> 00:37:58,000 design vzorec se imenuje delegacijo, in kaj pravi delegacija 708 00:37:58,000 --> 00:38:01,000 je, da je, na primer, če imam polja z besedilom 709 00:38:01,000 --> 00:38:04,000 in obstaja nekaj dogodkov, ki bi lahko registrirani znotraj mojega polje z besedilom, 710 00:38:04,000 --> 00:38:07,000 namesto ustvarjanja ločenih dogodkov, kar lahko storim je, lahko rečem, 711 00:38:07,000 --> 00:38:10,000 Delegat to polje z besedilom bo nekaj predmetov. 712 00:38:10,000 --> 00:38:13,000 Ko sem rekel, da je to delegat zdaj to pomeni, da 713 00:38:13,000 --> 00:38:16,000 ko bi bili nekateri dogodek odpustili v polju z besedilom 714 00:38:16,000 --> 00:38:18,000 namesto da bi morali registrirati ali kaj podobnega 715 00:38:18,000 --> 00:38:21,000 to je le, da bo poklical metodo za delegata. 716 00:38:21,000 --> 00:38:24,000 Na primer, znotraj mojega polje z besedilom imam metodo, ko pritisnete 717 00:38:24,000 --> 00:38:27,000 da narediti gumb v spodnjem desnem kotu, 718 00:38:27,000 --> 00:38:30,000 in tako namesto registracije za obravnavo dogodkov, kar lahko rečem je 719 00:38:30,000 --> 00:38:34,000 polje z besedilom, tukaj je cilj, ki ga želim vam, da pokličete metode na 720 00:38:34,000 --> 00:38:37,000 Vsakič, ko nekdo pritisne gumb Končano, 721 00:38:37,000 --> 00:38:40,000 in to pomeni, da je ta objekt ima nekaj za izvajanje protokola 722 00:38:40,000 --> 00:38:45,000 , ki pravi, obljubim, da bom naredil, da se opredeli ukrepe gumb, 723 00:38:45,000 --> 00:38:47,000 ker če ne opredeljuje to metodo in jo pritisnite Done, 724 00:38:47,000 --> 00:38:49,000 potem se bo lahko zavajajoče. 725 00:38:49,000 --> 00:38:55,000 >> Oglejmo si primer. 726 00:38:55,000 --> 00:38:58,000 Tu sem le eno polje z besedilom, 727 00:38:58,000 --> 00:39:04,000 in ena izmed lastnosti tega polja z besedilom, več o tem tukaj desni strani je delegat. 728 00:39:04,000 --> 00:39:06,000 To je lastnost razreda. 729 00:39:06,000 --> 00:39:09,000 Kar sem storil je, da sem tukaj, nadzor kliknili, in sem vlekel iz tega mesta tukaj 730 00:39:09,000 --> 00:39:13,000 za ogled krmilnik, in ki pravi, da se zdaj delegata to polje z besedilom 731 00:39:13,000 --> 00:39:18,000 se bo pogled na krmilnik. 732 00:39:18,000 --> 00:39:20,000 To pomeni, da ko se nekateri ukrepi zgodilo, namesto registracije 733 00:39:20,000 --> 00:39:25,000 ločene viličarji dogodek Želim si, da jih pošlje delegatu. 734 00:39:25,000 --> 00:39:28,000 Zdaj pa si oglejte mojem mnenju upravljavca. 735 00:39:28,000 --> 00:39:32,000 Znotraj datoteke. Ure sem obljubil. 736 00:39:32,000 --> 00:39:36,000 Sem obljubil, da bo izvajanje nekaterih metod znotraj tega protokola 737 00:39:36,000 --> 00:39:38,000 imenovano UITextFieldDelegate, in spet, 738 00:39:38,000 --> 00:39:42,000 To je le nekaj seznam nekaterih stvari, ki jih lahko izberejo, da izvajajo. 739 00:39:42,000 --> 00:39:46,000 >> Če bom prišel v mojo. M datoteko, ki sem jih izvaja en tak način. 740 00:39:46,000 --> 00:39:49,000 Sklical sem jo textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 ker to je tisto, kar je bila imenovana znotraj protokola. 742 00:39:52,000 --> 00:39:57,000 In zdaj, ko sem pritisnite gumb Končano znotraj tega polja z besedilom 743 00:39:57,000 --> 00:40:00,000 To je tisto, kar se dogaja, da pokličejo, tako da nisem registrirati za obravnavo dogodkov. 744 00:40:00,000 --> 00:40:03,000 Povezal sem delegata, in ko je odpuščen ta dogodek 745 00:40:03,000 --> 00:40:08,000 To je metoda, ki se bo imenoval, tako da če sem prišel sem, da bi mi snemalno knjigo in jo vodijo, 746 00:40:08,000 --> 00:40:11,000 medtem ko je nakladanje vidimo kaj sledi. 747 00:40:11,000 --> 00:40:13,000 Na mojem zaslonu imam 2 stvari. 748 00:40:13,000 --> 00:40:16,000 Imam besedilno polje, in imam to nalepko. 749 00:40:16,000 --> 00:40:19,000 Jaz samo pravim, da želite, da se besedilo te oznake 750 00:40:19,000 --> 00:40:23,000 da so enaki ne glede na Vtipkali v notranjosti polje. 751 00:40:23,000 --> 00:40:26,000 Ta naslednji line tukaj je preprosto način, da kličem 752 00:40:26,000 --> 00:40:29,000 na polje, ki pravi, želim, da skrijete tipkovnico. 753 00:40:29,000 --> 00:40:33,000 To je le samovoljno način, da je Apple odločil. 754 00:40:33,000 --> 00:40:38,000 >> Še enkrat, preden sem naredil vse, kar sem imel za žice vse gor, tako da sem prišel sem. 755 00:40:38,000 --> 00:40:42,000 Z vidika upravljavca sem povlecite čez besedilnega polja. 756 00:40:42,000 --> 00:40:46,000 Pustil sem šel, in sem lahko tukaj vidite, da sem lahko to lastnost besedilno polje 757 00:40:46,000 --> 00:40:49,000 saj sem v pogledu krmilnik sem določeno lastnost 758 00:40:49,000 --> 00:40:52,000 da je IBOutlet za polje z besedilom. 759 00:40:52,000 --> 00:40:55,000 Ta pravi, da sem lahko priključite nepremičnino navzgor 760 00:40:55,000 --> 00:40:59,000 na polje v svojem uporabniškem vmesniku. 761 00:40:59,000 --> 00:41:03,000 Zdaj, ko sem kliknite na to lahko začnem tipkati. 762 00:41:03,000 --> 00:41:06,000 Zdaj, če sem kliknite na gumb Done to se dogaja na ogenj 763 00:41:06,000 --> 00:41:08,000 dogodek, ki lahko zdaj odzvali. 764 00:41:08,000 --> 00:41:10,000 Brez rutine za obravnavo dogodkov. 765 00:41:10,000 --> 00:41:13,000 Tako sem odgovorila na to opravljeno gumb. 766 00:41:13,000 --> 00:41:15,000 Smiselno? 767 00:41:15,000 --> 00:41:20,000 >> To ni design vzorec, da, morda ne boste nikoli našli sami 768 00:41:20,000 --> 00:41:23,000 ustvarjanju lastne protokol, ampak samo vem, da nekateri 769 00:41:23,000 --> 00:41:27,000 različne komponente iOS registracijo dogodkov na različne načine. 770 00:41:27,000 --> 00:41:29,000 Gumbi, na primer uporabo teh IBActions. 771 00:41:29,000 --> 00:41:32,000 Besedilna polja, na drugi strani pa se bo uporaba delegatov. 772 00:41:32,000 --> 00:41:36,000 Vidimo lahko, in si lahko ogledate vse do notranjosti te dokumentacije. 773 00:41:36,000 --> 00:41:41,000 Mimogrede, tam je pravzaprav tone stvari UI vgrajen v iOS za vas, 774 00:41:41,000 --> 00:41:46,000 Tako, na primer, je tako, kot sem rekel, da je naredil v spodnjem desnem 775 00:41:46,000 --> 00:41:48,000 I izbrali to polje z besedilom. 776 00:41:48,000 --> 00:41:50,000 Prišel sem. 777 00:41:50,000 --> 00:41:53,000 Jaz se pomika navzdol malo, da se vrnete ključ 778 00:41:53,000 --> 00:41:56,000 in sem lahko dejansko narediti to cel kup stvari, kot če želim povedati, da je 779 00:41:56,000 --> 00:42:00,000 Klic v sili namesto tega lahko storim to, kar je povsem naključno, 780 00:42:00,000 --> 00:42:02,000 in ne vem, zakaj je vgrajen gumb za klic v sili, 781 00:42:02,000 --> 00:42:06,000 vendar pa pravi, klic v sili, v resnici malimi črkami. 782 00:42:06,000 --> 00:42:08,000 Tukaj imaš. 783 00:42:08,000 --> 00:42:12,000 >> Zagotovo raziskati vse te različne možnosti v iOS. 784 00:42:12,000 --> 00:42:14,000 Vsa vprašanja v zvezi delegatov? 785 00:42:14,000 --> 00:42:18,000 Še enkrat, samo zanimiv design vzorec, da bi morali biti seznanjeni z. 786 00:42:18,000 --> 00:42:22,000 V redu, naslednji si oglejte tabele mnenj. 787 00:42:22,000 --> 00:42:26,000 Pogled tabele je v bistvu, da seznam predmetov, ki je po vsem mestu v iOS. 788 00:42:26,000 --> 00:42:29,000 Ko ste lahkota skozi vse svoje stike, gledate 789 00:42:29,000 --> 00:42:34,000 nastavitev strani, in da je vrsta seznamu stvari, ki se imenuje pogled tabel. 790 00:42:34,000 --> 00:42:37,000 Izvajanje tabele pogled na iOS je zelo preprosta. 791 00:42:37,000 --> 00:42:41,000 Namesto da bi v razredu, ki se spušča iz te UIViewController 792 00:42:41,000 --> 00:42:44,000 tako kot smo naredili, preden smo preprosto morali reči ne 793 00:42:44,000 --> 00:42:46,000 vse UIViewController ne želim storiti, 794 00:42:46,000 --> 00:42:50,000 Rečem vse UITableViewController ne želim storiti, 795 00:42:50,000 --> 00:42:54,000 tako, da preprosto dodaja nekaj dodatnih stvari, ki so v celoti naredil za nas. 796 00:42:54,000 --> 00:42:58,000 Moramo storiti zelo malo, v bistvu izpolniti obrazec znotraj preglednice. 797 00:42:58,000 --> 00:43:02,000 >> Za prikaz tabele moram odgovoriti na nekatera vprašanja. 798 00:43:02,000 --> 00:43:06,000 Prvo vprašanje moram odgovoriti, je, koliko so oddelki v tabeli? 799 00:43:06,000 --> 00:43:08,000 Ko ste brskanja po telefonskem imeniku spletne boste opazili, da je vrsta 800 00:43:08,000 --> 00:43:12,000 organizira Ker potem boš imel BS, in imate, da se malo sub glavo. 801 00:43:12,000 --> 00:43:14,000 Vsak od teh se imenuje oddelek. 802 00:43:14,000 --> 00:43:16,000 Vi lahko ali pa ne potrebujejo teh. 803 00:43:16,000 --> 00:43:19,000 Prva stvar, kar morate storiti je, da izvaja metode 804 00:43:19,000 --> 00:43:22,000 imenovano tableView: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 To preprosto vrne, koliko delov imate, 806 00:43:25,000 --> 00:43:29,000 tako da bi to lahko rekli vrne 1, če imajo eno veliko mizo pogled. 807 00:43:29,000 --> 00:43:33,000 Naslednje vprašanje, ki iOS mora vedeti, koliko vrstic imaš? 808 00:43:33,000 --> 00:43:36,000 Na primer, ste lahkota skozi pogledu tabele. 809 00:43:36,000 --> 00:43:39,000 Imate določeno število pesmi, ki jo iščete ali na določeno število stikov. 810 00:43:39,000 --> 00:43:41,000 Če si me, seveda, ni tako veliko, 811 00:43:41,000 --> 00:43:44,000 in da je, kako iOS ve, koliko celic prikazati. 812 00:43:44,000 --> 00:43:46,000 >> Še enkrat, to lahko pomeni nekaj podobnega zameno 3. 813 00:43:46,000 --> 00:43:49,000 Moj pogled tabele ima 3 vrstice. 814 00:43:49,000 --> 00:43:52,000 Končno iOS mora vedeti, kaj vsaka celica izgleda, 815 00:43:52,000 --> 00:43:54,000 tako da tisto, kar je dejansko storil, je klic te metode tukaj, 816 00:43:54,000 --> 00:43:57,000 To tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 To se dogaja, da pokličete na ta način vsako posamezno celico znotraj vaše mize. 818 00:44:01,000 --> 00:44:03,000 Kako to vem kolikokrat, da ga pokličete? 819 00:44:03,000 --> 00:44:06,000 No, ti je to povedal v notranjosti število vrstic v oddelku. 820 00:44:06,000 --> 00:44:08,000 Mi jo bomo imenovali to na vseh naših celic, 821 00:44:08,000 --> 00:44:11,000 in znotraj tega je, kjer lahko dejansko narediti stvari, kot so 822 00:44:11,000 --> 00:44:16,000 Nastavite besedilo ali povedati, kaj ta mali modri gumb na desni strani ne. 823 00:44:16,000 --> 00:44:19,000 Vzorec za pridobivanje teh celic, bomo uporabili to metodo 824 00:44:19,000 --> 00:44:22,000 imenovano dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objective-C je dejansko zelo dobro znano, za smešno dolžino njihovih imen metoda, 826 00:44:29,000 --> 00:44:32,000 in to je res lepo zgodilo v primeru točke. 827 00:44:32,000 --> 00:44:37,000 Kaj je ta metoda pa je to le pravi, da želim, da mi celico. 828 00:44:37,000 --> 00:44:39,000 Samo stvar iOS. 829 00:44:39,000 --> 00:44:41,000 Če imate kaj takega 100.000 skladb na iPodu 830 00:44:41,000 --> 00:44:45,000 kaj iOS ne želite storiti, je dodelila 100.000 celic, 831 00:44:45,000 --> 00:44:48,000 ker če ste na vrhu seznama, pa je res treba dodeliti pomnilnika 832 00:44:48,000 --> 00:44:51,000 za celico, ki je 99.000 vrstic navzdol? 833 00:44:51,000 --> 00:44:55,000 Ne, ker, kot ste vi lahko pomikate vrste dodelijo kot greste skupaj. 834 00:44:55,000 --> 00:44:57,000 To se naredi za vas. 835 00:44:57,000 --> 00:44:59,000 Ni vam treba skrbeti za vse te neumne stvari uspešnosti. 836 00:44:59,000 --> 00:45:02,000 Vse, kar ste rekli se kličeš to metodo dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 in ta pravi, v redu, če želite bom ustvaril novo enoto za vas. 838 00:45:06,000 --> 00:45:09,000 >> Ampak, če ste na dnu tabele in ste že dodeljene nekaj celic 839 00:45:09,000 --> 00:45:12,000 Na vrhu tabele, ki si res ne bo treba kmalu 840 00:45:12,000 --> 00:45:15,000 Bom dal eno tistih nazaj, namesto dodelitve novega, 841 00:45:15,000 --> 00:45:17,000 in zato je to lepo uspešnosti skrb. 842 00:45:17,000 --> 00:45:21,000 Če ne bi bilo treba nameniti celicah sami. 843 00:45:21,000 --> 00:45:23,000 To se dogaja, da vam nazaj v celico. 844 00:45:23,000 --> 00:45:25,000 To se dogaja, da se vrnete na vas mobilni objekt. 845 00:45:25,000 --> 00:45:28,000 Ko imate mobilni predmet, ki ga lahko naredimo nekaj za to. 846 00:45:28,000 --> 00:45:32,000 Nastavite lahko besedilo v celici s tem premoženjem, imenovano besedilo okolje. 847 00:45:32,000 --> 00:45:36,000 Lahko dodam, da puščico na desni ali kakšno drugo naključno stvari 848 00:45:36,000 --> 00:45:41,000 s to drugo premoženje pozval accessoryType, in tako naprej in tako naprej. 849 00:45:41,000 --> 00:45:46,000 >> Oglejmo si na dejansko izvajanje pogled tabel zdaj. 850 00:45:46,000 --> 00:45:49,000 Ko sem ustvaril ta projekt 851 00:45:49,000 --> 00:45:53,000 kot pravi sam pogled na vlogo sem dejansko prišel sem 852 00:45:53,000 --> 00:45:57,000 za uporabo v glavni podrobnosti, in tako v bistvu to ustreza mail app 853 00:45:57,000 --> 00:46:01,000 na iPad z pogledu tabele na levi in ​​nato se vsebina na desni strani. 854 00:46:01,000 --> 00:46:07,000 Na iPod ali iPhone se bo to ustreza enem pogledu tabele. 855 00:46:07,000 --> 00:46:10,000 To je, če sem dobila zagon kode. 856 00:46:10,000 --> 00:46:13,000 >> Naj najprej pogledamo na snemalno knjigo. 857 00:46:13,000 --> 00:46:15,000 Vse to je bilo narejeno za mene, v bistvu ustvarjen. 858 00:46:15,000 --> 00:46:18,000 Ta vrstica za krmarjenje mi je pokazal, kako lahko na primer celice videti, 859 00:46:18,000 --> 00:46:22,000 in sem lahko dvokliknete to, spremenite naslov. 860 00:46:22,000 --> 00:46:25,000 Vsi drugi pomisleki, UI bom zmogel tam. 861 00:46:25,000 --> 00:46:27,000 Glava datoteke izgleda res preprosta. 862 00:46:27,000 --> 00:46:30,000 Namesto da bi rekel je to UIViewController smo zdaj pravi, da je to 863 00:46:30,000 --> 00:46:35,000 TableViewController, tako da vemo, da smo želeli poklicati vse te tabele metod. 864 00:46:35,000 --> 00:46:38,000 Naslednja želim ustvariti lastnost, ki se dogaja, da zastopa 865 00:46:38,000 --> 00:46:40,000 stvari znotraj moje mize. 866 00:46:40,000 --> 00:46:43,000 Ta tabela se bo samovoljno prikaz 867 00:46:43,000 --> 00:46:46,000 seznam sadja, zato moram ustvariti neko vrsto 868 00:46:46,000 --> 00:46:49,000 , v kateri lahko vstavite sadove. 869 00:46:49,000 --> 00:46:52,000 Znotraj mojega izvajanja datoteke prva stvar, želim storiti 870 00:46:52,000 --> 00:46:55,000 Želim se prepričati sem inicializacijo to vrsto. 871 00:46:55,000 --> 00:46:58,000 >> Rekel sem alloc pr ustvaril svojo sadno vrsto, 872 00:46:58,000 --> 00:47:03,000 in sem dodal 4 stvari z njim, od katerih je ena veliko bolj sporen kot drugi 3. 873 00:47:03,000 --> 00:47:06,000 In zdaj imam celo paleto velikosti 4. 874 00:47:06,000 --> 00:47:08,000 Mi smo jo stresa v CS50. 875 00:47:08,000 --> 00:47:11,000 Zdaj imam celo paleto velikosti 4. 876 00:47:11,000 --> 00:47:13,000 Zdaj bom začel odgovorih na ta vprašanja, in dejansko, 877 00:47:13,000 --> 00:47:16,000 ko sem ustvaril ta program je bilo vse to že storil zame. 878 00:47:16,000 --> 00:47:19,000 Nisem imel vnesti navedeno število oddelkov v pogledu tabele. 879 00:47:19,000 --> 00:47:22,000 To je bil že tam, jaz pa izpolnite prazne. 880 00:47:22,000 --> 00:47:24,000 Koliko oddelki imam? 881 00:47:24,000 --> 00:47:26,000 Ena. Vse opravljeno. 882 00:47:26,000 --> 00:47:28,000 Koliko vrstic imam? 883 00:47:28,000 --> 00:47:31,000 No, jaz imam eno vrstico za vsako sadje, zato je to število 884 00:47:31,000 --> 00:47:34,000 je lastnost vsake matrike, ki pravi, kako velik je? 885 00:47:34,000 --> 00:47:36,000 To je, koliko vrstic imam. 886 00:47:36,000 --> 00:47:42,000 Na koncu moram reči, kaj vsaka celica videti? 887 00:47:42,000 --> 00:47:46,000 Jaz bom rekel dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Spet je bilo to že napisal zame. 889 00:47:48,000 --> 00:47:51,000 Nisem moral to storiti sam, in želim, da bi dobili nazaj 890 00:47:51,000 --> 00:47:54,000 ta celica na tej lokaciji. 891 00:47:54,000 --> 00:47:57,000 Ne pozabite, da smo kličeš to isto metodo na vsako posamezno celico, 892 00:47:57,000 --> 00:48:01,000 in ta argument tukaj, ta argument indexPath, 893 00:48:01,000 --> 00:48:03,000 Kaj pa pravi vrstica sem noter 894 00:48:03,000 --> 00:48:05,000 Če rečem, indexPath.row tukaj 895 00:48:05,000 --> 00:48:09,000 to bo 0, potem bo 1, potem bo 2, in to ne vem 896 00:48:09,000 --> 00:48:11,000 kaj celica Jaz sem trenutno na zaslonu. 897 00:48:11,000 --> 00:48:15,000 Rad bi postavil besedilo celice prek te nepremičnine textLabel 898 00:48:15,000 --> 00:48:19,000 iti v mojo sadja in dobili niz 899 00:48:19,000 --> 00:48:21,000 objekt, ki ustreza vsako vrstico. 900 00:48:21,000 --> 00:48:24,000 Če je to niz, sem sedaj določa 901 00:48:24,000 --> 00:48:28,000 Besedilo nepremičnine v niz. 902 00:48:28,000 --> 00:48:30,000 Lahko naredim še eno stvar. 903 00:48:30,000 --> 00:48:32,000 Jaz se lahko prijavijo za obravnavo dogodkov na vsako od celic, 904 00:48:32,000 --> 00:48:35,000 Ko sem izkoristiti vsako od teh celic 905 00:48:35,000 --> 00:48:39,000 To didSelectRowAtIndexPath, to se dogaja, da se imenuje za mene, 906 00:48:39,000 --> 00:48:42,000 Tako preprosto z določitvijo to lahko sedaj ravnati, kaj se zgodi 907 00:48:42,000 --> 00:48:46,000 ko pritisnete celico in spet smo mimo, v kateri je izkoristiti celic 908 00:48:46,000 --> 00:48:50,000 tako da smo ponovno ta isti trener dogodek za vse naše celice. 909 00:48:50,000 --> 00:48:53,000 >> Tudi to je nekaj, iOS dela za mene. 910 00:48:53,000 --> 00:48:55,000 Naj se prikaže drugo siten ljudstvo 911 00:48:55,000 --> 00:48:59,000 , ki preprosto pravi, da si si izbrala nekaj, kjer da nekaj 912 00:48:59,000 --> 00:49:04,000 se bo vrsta objekta. 913 00:49:04,000 --> 00:49:10,000 Ko sem teči to, da bom, da je to lep pogled tabele 914 00:49:10,000 --> 00:49:14,000 z eno vrstico za vsako od teh sadja, in če sem se dotaknite 1 915 00:49:14,000 --> 00:49:16,000 to mi pove, kaj se je zgodilo. 916 00:49:16,000 --> 00:49:21,000 Smiselno? 917 00:49:21,000 --> 00:49:24,000 Zgradimo malo bolj zapletena od app, 918 00:49:24,000 --> 00:49:28,000 toliko, kot si izbral tako, da kliknete paradižnik je. 919 00:49:28,000 --> 00:49:31,000 Lepo del o storyboarding 920 00:49:31,000 --> 00:49:35,000 se je ne samo nam bo pomagal oblikovanje zaslonov posamično, 921 00:49:35,000 --> 00:49:38,000 Prav tako nam bo pomagal povezali našo celotno aplikacijo, 922 00:49:38,000 --> 00:49:42,000 tako da končna ca bomo Stavba je to lepo športne novice bralec, 923 00:49:42,000 --> 00:49:45,000 in zato se dogaja, da imajo več zaslonov, in da bom lahko dejansko predstavljajo 924 00:49:45,000 --> 00:49:48,000 vsaka od teh več zaslonih na snemalni knjigi 925 00:49:48,000 --> 00:49:52,000 in sem lahko povečate, in glej moje aplikacije na visoki ravni. 926 00:49:52,000 --> 00:49:55,000 >> Da bi ustvarili nov element znotraj mojega snemalno knjigo 927 00:49:55,000 --> 00:49:59,000 to je zelo preprosta notranjost Builder vmesnika. 928 00:49:59,000 --> 00:50:01,000 Če želim dodati še eno zaslon za to, na primer, 929 00:50:01,000 --> 00:50:06,000 Jaz lahko najprej pomanjšati s ščepcem zoomom, da Apple ljubi tako zelo, 930 00:50:06,000 --> 00:50:09,000 in dol, preden sem poiskal na gumb 931 00:50:09,000 --> 00:50:12,000 in sem povleci in spusti gumb 932 00:50:12,000 --> 00:50:15,000 če želim ustvariti nov zaslon, lahko dejansko samo povleci in spusti 933 00:50:15,000 --> 00:50:19,000 Celoten krmilnik pogled, tako da če sem izbral ta, ga potegnite tukaj, 934 00:50:19,000 --> 00:50:23,000 hej, tam je še en zaslon, zato zdaj s to isto storyboard slika 935 00:50:23,000 --> 00:50:26,000 Lahko imam vse zaslonov znotraj moje app, in lahko pomanjšate 936 00:50:26,000 --> 00:50:28,000 in videli, kako med seboj sodelujejo. 937 00:50:28,000 --> 00:50:32,000 To še ne bo interakcijo. 938 00:50:32,000 --> 00:50:36,000 Način, na katerega so ti zasloni 2 interakcijo je definirati odnose. 939 00:50:36,000 --> 00:50:39,000 Lahko v bistvu pomeni ta zaslon, ko pritisnete na ta gumb, 940 00:50:39,000 --> 00:50:42,000 Želim si, da zdrsne v tej novi zaslon. 941 00:50:42,000 --> 00:50:44,000 To pomeni, da je ta vrsta odnosa med 942 00:50:44,000 --> 00:50:46,000  Prvi zaslon in drugi zaslon. 943 00:50:46,000 --> 00:50:49,000 Boste v bistvu ima puščico, od tega gumba na drugem zaslonu 944 00:50:49,000 --> 00:50:53,000 pravijo, da ko pritisnete na ta gumb, da je, če hočem. 945 00:50:53,000 --> 00:50:57,000 Tako kot smo krmiljenja kliknete in vlečete za opredelitev trgov 946 00:50:57,000 --> 00:51:01,000 bomo narediti isto stvar za opredelitev teh segues. 947 00:51:01,000 --> 00:51:05,000 >> Bomo videli zgled za to, in preden smo dejansko prehod 948 00:51:05,000 --> 00:51:08,000 iz enega zaslona na drugega iOS je dovolj prijazen, da pokličete to metodo 949 00:51:08,000 --> 00:51:11,000 imenovano prepareForSegue, in to je, če lahko začnemo 950 00:51:11,000 --> 00:51:14,000 pošiljanje podatkov iz enega v drugo aplikacijo. 951 00:51:14,000 --> 00:51:17,000 V primeru, da smo na tem, da pogled na to bo v bistvu nam omogočajo 952 00:51:17,000 --> 00:51:20,000 za filtriranje baseball ekipe, ki jih lige in delitve. 953 00:51:20,000 --> 00:51:23,000 Ko sem izberete ligo, na primer, želim, da prehod 954 00:51:23,000 --> 00:51:25,000 v mojem naslednjem zaslonu, kjer lahko prikažete vse oddelke 955 00:51:25,000 --> 00:51:27,000 v tej ligi ali vseh različnih ekip. 956 00:51:27,000 --> 00:51:31,000 Moram poslati tem zaslonu, kaj ekipe morate prikazati. 957 00:51:31,000 --> 00:51:35,000 Če želite to narediti, da bom izkoristil te metode tukaj. 958 00:51:35,000 --> 00:51:39,000 >> Končno, samo naključna točka na iOS. 959 00:51:39,000 --> 00:51:41,000 Če želite shraniti podatke pa je to stvar, ki se imenuje temeljni podatki, 960 00:51:41,000 --> 00:51:44,000 ki je pravzaprav nekako zapleteno delati. 961 00:51:44,000 --> 00:51:47,000 Prav tako lahko uporabite SQL za shranjevanje podatkov, 962 00:51:47,000 --> 00:51:51,000 , ki je spet lepo, ampak nekako na bolj zapleten strani delati, 963 00:51:51,000 --> 00:51:55,000 ampak iOS podpira tudi to res kul stvari, imenovane lastnine navaja, 964 00:51:55,000 --> 00:52:00,000 in premoženje seznam je samo datoteka, ki predstavlja ključne parov vrednosti. 965 00:52:00,000 --> 00:52:03,000 Ti določajo seznam tipk, in vi pravite na to tipko se bo matrika. 966 00:52:03,000 --> 00:52:06,000 Ta ključ se bo niz, v bistvu vse, kar lahko 967 00:52:06,000 --> 00:52:10,000 V JSON lahko počnejo na nepremičnine seznama 968 00:52:10,000 --> 00:52:14,000 in zato je to res lepo nam omogoča delo z nekaterimi podatki. 969 00:52:14,000 --> 00:52:18,000 Na primer, imam Teams.plist, ki sem jo ustvaril. 970 00:52:18,000 --> 00:52:22,000 Ustvaril sem novo PLIST datoteko in sem lahko v globino. 971 00:52:22,000 --> 00:52:26,000 To je slovar, to je slovar, so strune, 972 00:52:26,000 --> 00:52:30,000 in zato je to lepo grafični prikaz listine JSON 973 00:52:30,000 --> 00:52:33,000 ali samo nabor ključnih parov vrednosti, 974 00:52:33,000 --> 00:52:37,000 in tako to je podatek, da bom delal z mojo notranjost cca. 975 00:52:37,000 --> 00:52:40,000 >> Naj prvi pride sem. Imamo veliko več datotek sedaj. 976 00:52:40,000 --> 00:52:44,000 Ampak kaj je prvi pride sem v snemalno knjigo. 977 00:52:44,000 --> 00:52:48,000 Storyboard tukaj, če mi pomanjšati- 978 00:52:48,000 --> 00:52:51,000 Sedaj lahko vidimo, da je to tok moj app. 979 00:52:51,000 --> 00:52:53,000 Jaz sem jih prej začeti na tem zaslonu. 980 00:52:53,000 --> 00:52:55,000 Bom vrtanje navzdol na tem zaslonu 981 00:52:55,000 --> 00:52:58,000 in bom vrtanje navzdol na tem zaslonu, in bomo lahko tukaj vidimo, da če sem nekako 982 00:52:58,000 --> 00:53:04,000 premakniti eno od teh, ki smo jih okoli te puščice gredo od tu do tu, 983 00:53:04,000 --> 00:53:08,000 in tako sem določiti, da je bila puščica, če se približate malo, 984 00:53:08,000 --> 00:53:12,000 in če sem prišel na ta pogled upravljavca, 985 00:53:12,000 --> 00:53:16,000 in tukaj je celica, želim povedati, da ko se dotaknete celico 986 00:53:16,000 --> 00:53:18,000 Želim si, da zdrsne na drugo zaslonu. 987 00:53:18,000 --> 00:53:21,000 Lahko preprosto držite nadzor, 988 00:53:21,000 --> 00:53:26,000 pomaknete preko malo, držite nadzor, povlecite celico znova in spusti. 989 00:53:26,000 --> 00:53:30,000 >> In tukaj govorimo, kaj je prehod, ki ga želite uporabiti? 990 00:53:30,000 --> 00:53:32,000 Ali želite uporabiti to slide stvar, ki se imenuje pritisk? 991 00:53:32,000 --> 00:53:34,000 Ali želite, da zdrsne od spodaj navzgor? 992 00:53:34,000 --> 00:53:36,000 Temu se reče prenosa. 993 00:53:36,000 --> 00:53:40,000 In ko sem kliknite eno od teh, da se bo pripraviti na to puščico za mene, 994 00:53:40,000 --> 00:53:44,000 kar pomeni, da sem dejansko obravnava, kaj se zgodi, ko pritisnem na ta gumb grafično. 995 00:53:44,000 --> 00:53:48,000 Nisem napisati kodo, da dejansko potegnite iz enega zaslona na naslednjo. 996 00:53:48,000 --> 00:53:51,000 Jaz to opredelil vizualno znotraj Builder vmesnika. 997 00:53:51,000 --> 00:53:55,000 Če sem kliknite na to puščico, lahko vidimo, da sem dal to stvar ime. 998 00:53:55,000 --> 00:53:59,000 Poklical sem ga showDivisions, in to je, da bom lahko vedel 999 00:53:59,000 --> 00:54:03,000 Kaj prehod se bo zgodilo, pa bomo videli, zakaj v samo trenutek. 1000 00:54:03,000 --> 00:54:06,000 Tako sem ožičen različne zaslone v moji app. 1001 00:54:06,000 --> 00:54:09,000 Če bi bilo to tipko, na primer, ne pa pogled tabele, 1002 00:54:09,000 --> 00:54:11,000 Lahko nadzor, kliknite na gumb, povlecite prenesejo v naslednji zaslon, 1003 00:54:11,000 --> 00:54:16,000 in to je, kako lahko naredim, da navigacijsko pot. 1004 00:54:16,000 --> 00:54:19,000 >> Res hitro, če pridemo v MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 še enkrat, bomo preprosto bo, da se opredeli seznam stvari, 1006 00:54:22,000 --> 00:54:26,000 , ki bo prikazan v pogledu tabele. 1007 00:54:26,000 --> 00:54:29,000 Tu govorim Želim si, da to PLIST datoteko 1008 00:54:29,000 --> 00:54:32,000 in želim, da ga naložiti gor v slovarju, 1009 00:54:32,000 --> 00:54:35,000 in ko ste to zbirko, bom odgovoriti na ta ista vprašanja znova. 1010 00:54:35,000 --> 00:54:37,000 Tu je število oddelkov. 1011 00:54:37,000 --> 00:54:41,000 Ena pa je ena vrstica za vsako ligo, in besedilo vsake celice 1012 00:54:41,000 --> 00:54:46,000 morajo biti bodisi prvo, 1. liga, 2. liga, in tako naprej. 1013 00:54:46,000 --> 00:54:51,000 Končno bom uporabo te metode, da smo videli samo z imenom prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 in to je način, da se dogaja, da se izstreli ko kliknem 1015 00:54:54,000 --> 00:54:57,000 na eni od teh vrstic in zato aktivira ta prehod 1016 00:54:57,000 --> 00:54:59,000 da sem ustanovljen s puščicami. 1017 00:54:59,000 --> 00:55:02,000 To se pravi, da sem lahko več 1018 00:55:02,000 --> 00:55:05,000 odnosi z enega zaslona na drugega. 1019 00:55:05,000 --> 00:55:08,000 Če imam 2 gumboma in vsak gumb vas popelje v drug zaslon 1020 00:55:08,000 --> 00:55:10,000 Jaz bom imel 2 segues, 1 za vsak gumb. 1021 00:55:10,000 --> 00:55:14,000 Ampak to je prepareForSegue spet bo treba ponovno 1022 00:55:14,000 --> 00:55:17,000 za vsako od različnih razmerij, to pomeni, da moram pot 1023 00:55:17,000 --> 00:55:21,000 identifikacije, če pritisnete gumb za 1. ali pritisnete drugi gumb. 1024 00:55:21,000 --> 00:55:25,000 >> Se spomniš, ko sem dal tej segue ime, to showDivisions, 1025 00:55:25,000 --> 00:55:29,000 Tako sem zdaj vem, da je to segue, ki je bil aktiviran. 1026 00:55:29,000 --> 00:55:32,000 Vse, kar želim storiti, je, hočem reči, 1027 00:55:32,000 --> 00:55:35,000 Želim, da ugotovimo, kaj sem zadel, 1028 00:55:35,000 --> 00:55:38,000 in tako priti, da lahko rečem, da hočem indexPath za izbrano vrsto, 1029 00:55:38,000 --> 00:55:42,000 Spominjam se indexPath samo pravi, če sem kliknil, 1030 00:55:42,000 --> 00:55:47,000 in potem hočem povedati želim, da ugotovimo, kam grem. 1031 00:55:47,000 --> 00:55:50,000 Ta destinationViewController, ki je last segue. 1032 00:55:50,000 --> 00:55:53,000 To je zaslon grem, 1033 00:55:53,000 --> 00:55:56,000 zato vem, da je zaslon bom pozval DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 ker sem ustvaril ta razred, 1035 00:55:59,000 --> 00:56:02,000 in sedaj, če rečem d.divisions 1036 00:56:02,000 --> 00:56:06,000 Sedaj sem z določitvijo lastnost ogled krmilnika sem o kraju. 1037 00:56:06,000 --> 00:56:10,000 To je, kako sem pošilja podatke iz enega zaslona na drug zaslon. 1038 00:56:10,000 --> 00:56:13,000 >> Tako si ogleduje ta DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 si lahko ogledate tukaj, da je v datoteki. h 1040 00:56:16,000 --> 00:56:20,000 pa je, da je premoženje oddelki, in to je tisto, kar sem v bistvu poselitve, 1041 00:56:20,000 --> 00:56:25,000 tako, da je, kako sem vedel, da bom prikaz delitve, ki ustrezajo 1042 00:56:25,000 --> 00:56:28,000 liga, da sem kliknil, in spet, 1043 00:56:28,000 --> 00:56:31,000 Dejansko miza, izgleda precej enako, le odgovor tistim 1044 00:56:31,000 --> 00:56:34,000 3 preprostih vprašanj, kot tudi prepoznavanje 1045 00:56:34,000 --> 00:56:37,000 kaj se zgodi, ko se premaknete na naslednji zaslon. 1046 00:56:37,000 --> 00:56:40,000 Samo nekaj drugih stvari tukaj. 1047 00:56:40,000 --> 00:56:43,000 Ste opazili, na vrhu tukaj, da ne pravim # include 1048 00:56:43,000 --> 00:56:45,000 Zdaj sem rekel # uvoziti. 1049 00:56:45,000 --> 00:56:47,000 To je samo Objective-C stvar. 1050 00:56:47,000 --> 00:56:52,000 Uvoz je v bistvu lepše različica vključujejo, 1051 00:56:52,000 --> 00:56:57,000 in, na primer, moramo vedeti, kaj je to razred, 1052 00:56:57,000 --> 00:57:00,000 tako da ne morem reči, DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Če nismo hashtag standardio.c znotraj naše datoteke. C 1054 00:57:05,000 --> 00:57:07,000 prevajalnik imel pojma, kaj je bilo printf. 1055 00:57:07,000 --> 00:57:12,000 Podobno, če ne uvažajo DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 prevajalnik res nima pojma, kaj je DivisionsViewController. 1057 00:57:16,000 --> 00:57:19,000 Samo poskrbite, da znotraj vaše različne. Datotek m ste prepričani, da za uvoz 1058 00:57:19,000 --> 00:57:25,000 ustrezna. h datoteke, tako da prevajalnik ne ve, kaj se dogaja. 1059 00:57:25,000 --> 00:57:31,000 >> Končno, kaj Apple na koncu pa je prikaz nekaterih podatkov prek spletnega pogled, 1060 00:57:31,000 --> 00:57:35,000 in tako spletno pogled je objekt, v katerem lahko vključite 1061 00:57:35,000 --> 00:57:37,000 Malo spletni brskalnik znotraj vašega programa. 1062 00:57:37,000 --> 00:57:40,000 Vse kar morate storiti je, da predloži URL v spletni brskalnik, 1063 00:57:40,000 --> 00:57:43,000 zato želim iti v mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 in to je, kako lahko dostopate na domači strani za vsako ekipo, 1065 00:57:46,000 --> 00:57:49,000 in tako, da gre v tem URL-ju 1066 00:57:49,000 --> 00:57:52,000 Spletna pogled lahko prikažete to zame, in sem lahko okoli brskanje, 1067 00:57:52,000 --> 00:58:01,000 in simulator je v uporabi ta. 1068 00:58:01,000 --> 00:58:03,000 No, to pa mi je PLIST. 1069 00:58:03,000 --> 00:58:07,000 Če sem kliknite to tudi to pa mi je PLIST, in to drsenje bil obravnavan 1070 00:58:07,000 --> 00:58:09,000 Z opredelitvijo teh segues. 1071 00:58:09,000 --> 00:58:12,000 I kliknite to in še eno, 1072 00:58:12,000 --> 00:58:15,000 in zdaj je moj UIWebView, tako da kar tako 1073 00:58:15,000 --> 00:58:19,000 Tukaj je spletna stran za URL, da sem vključen, 1074 00:58:19,000 --> 00:58:21,000 in nisem imel ničesar za obravnavo norega. 1075 00:58:21,000 --> 00:58:24,000 To je, kako prikazati spletne strani. 1076 00:58:24,000 --> 00:58:27,000 Stvari, kot je ta zadnji gumb tukaj so tudi z mano 1077 00:58:27,000 --> 00:58:33,000 popolnoma brezplačno, ker sem te odnose s pomočjo opredeljena segues. 1078 00:58:33,000 --> 00:58:37,000 >> Kakšno vprašanje? Ja. 1079 00:58:37,000 --> 00:58:40,000 [Študent] Torej, če uporabljate alloc, ne boste nikoli več prostega kaj? 1080 00:58:40,000 --> 00:58:43,000 Točno tako, ko kličem alloc in pr vam ni treba sprostiti. 1081 00:58:43,000 --> 00:58:46,000 IOS bo ročaj vse to za vas. 1082 00:58:46,000 --> 00:58:51,000 To je čudovito, in ti ne kršijo nobenih pravil. Ja. 1083 00:58:51,000 --> 00:58:54,000 [Študent] Če bi vključili več ekip, ki bi ustrezali na zaslonu, 1084 00:58:54,000 --> 00:58:58,000 bi bilo avtomatično pomikanje možnost, ali je to nekaj, kar morate dodati? 1085 00:58:58,000 --> 00:59:01,000 Točno tako, če bi imel več skupin, na primer, bi to avtomatično ročaj 1086 00:59:01,000 --> 00:59:04,000 pomikanjem za mene, in vsi pomisleki uspešnosti 1087 00:59:04,000 --> 00:59:08,000 z veliko mizo tudi ravna povsem zame. 1088 00:59:08,000 --> 00:59:11,000 >> Druga vprašanja? 1089 00:59:11,000 --> 00:59:13,000 Vse to oznako se bo objavljen. 1090 00:59:13,000 --> 00:59:16,000 Mi nekako prezrli malo bolj manjših podrobnosti, 1091 00:59:16,000 --> 00:59:19,000 vendar stvari, kot določa nekatere lastnosti na spletni mnenju 1092 00:59:19,000 --> 00:59:22,000 so samo stvari, ki jih lahko dobite z brskanjem dokumentacijo Apple, 1093 00:59:22,000 --> 00:59:24,000 , ki je zelo, zelo lepo urejeni. 1094 00:59:24,000 --> 00:59:27,000 Imajo veliko vzorčnih aplikacij in primer običajih 1095 00:59:27,000 --> 00:59:34,000 različnih API-jev, tako da zagotovo seznanijo z vsebino tistih, če lahko. 1096 00:59:34,000 --> 00:59:36,000 Tako bi lahko nekaj koristnih povezav, ki jih želite, da pogled na. 1097 00:59:36,000 --> 00:59:38,000 To je le nekaj priročnih dokumentacija navodila. 1098 00:59:38,000 --> 00:59:41,000 URL-ji so velike, tako da si skrajša. 1099 00:59:41,000 --> 00:59:44,000 Ta prva je celotna knjižnica dokumentacije. 1100 00:59:44,000 --> 00:59:46,000 Še malo palice iskanje, tako da če začnete tipkati gumb 1101 00:59:46,000 --> 00:59:50,000 bo začela vam daje vse informacije o vseh stvareh, ki jih lahko storite z gumbom. 1102 00:59:50,000 --> 00:59:53,000 Jaz sem tudi za programiranje pogledu tabele Guide. 1103 00:59:53,000 --> 00:59:56,000 Skrbi tabele stališča precej bolj podrobno, 1104 00:59:56,000 --> 01:00:00,000 kako narediti stvari, kot so dinamično dodate celice ali celice, urejanje ali odstraniti. 1105 01:00:00,000 --> 01:00:02,000 >> Obstaja veliko vzorčnih aplikacij od Apple, ki vam bo pokazal, kako to storiti, 1106 01:00:02,000 --> 01:00:05,000 in nazadnje, ta zadnja je vmesnik človek smernice 1107 01:00:05,000 --> 01:00:09,000 in to je v bistvu pogovor komponent uporabniškega vmesnika, 1108 01:00:09,000 --> 01:00:12,000 stvari, kot je, ne da bi gumb, ki je 4 točk za 4 pik. 1109 01:00:12,000 --> 01:00:15,000 To je slaba ideja, in druge stvari, ki jih Apple želi, da narediš 1110 01:00:15,000 --> 01:00:18,000 spodbujati dobro oblikovanje. 1111 01:00:18,000 --> 01:00:23,000 >> Kakšne zadnje vprašanje, preden bomo zaključili do? 1112 01:00:23,000 --> 01:00:27,000 V redu, vsekakor vas prosimo, da sva-se dogaja, da imajo posebne oznake na razpravo. 1113 01:00:27,000 --> 01:00:30,000 Bomo imeli iOS 1, tako da zagotovo vas prosimo, da izkoristijo to. 1114 01:00:30,000 --> 01:00:34,000 Če želite delati s svojimi sošolci na projektih 1115 01:00:34,000 --> 01:00:37,000 ali pomagajo ugotoviti nekaj naključnih stvari iOS 1116 01:00:37,000 --> 01:00:40,000 vas prosimo, da email mi in zagotovo skrbno pregledati vse kode na spletu, saj 1117 01:00:40,000 --> 01:00:43,000 samo v interesu takrat, ko smo nekako prezrli več 1118 01:00:43,000 --> 01:00:45,000 lepši zrnata podrobnosti o stvari. 1119 01:00:45,000 --> 01:00:47,000 Ampak, če ne, potem veliko sreče na vaše projekte iOS, in upam, da bomo imeli 1120 01:00:47,000 --> 01:00:53,000 Velik priliv aplikacij v App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]