1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminar] [iOS: Pisanje Apps Poput Boss] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Sveučilište Harvard] 3 00:00:04,000 --> 00:00:08,000 [Ovo je CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> U redu, svi, dobrodošli na iOS: Pisanje Apps poput Boss. 5 00:00:12,000 --> 00:00:16,000 Ovaj seminar će se usredotočiti na pisanje aplikacija za iPhone 6 00:00:16,000 --> 00:00:19,000 i opet pisati aplikacije za iPad, pa smo u osnovi idemo šetati 7 00:00:19,000 --> 00:00:23,000 par različitih primjera kako napraviti aplikaciju, jednostavno igra poput Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 ili ako ste više zainteresirani za izradu aplikacije kao neka vrsta čitač vijesti 9 00:00:26,000 --> 00:00:30,000 ili nešto da komunicira s internetom ću govoriti o tome kao dobro. 10 00:00:30,000 --> 00:00:32,000 Evo naš kratki program. 11 00:00:32,000 --> 00:00:36,000 >> IOS aplikacije su pisane u jeziku zove Objective-C, 12 00:00:36,000 --> 00:00:39,000 pa to je malo sličan C, ali stvarno ne na sve, 13 00:00:39,000 --> 00:00:41,000 pa ćemo razgovarati malo o jeziku sama 14 00:00:41,000 --> 00:00:45,000 i onda kako izgraditi iPhone aplikacije koriste ovaj app program pod nazivom XCode, 15 00:00:45,000 --> 00:00:48,000 što ako ga niste preuzeli još slobodno započeti preuzimanje sada. 16 00:00:48,000 --> 00:00:50,000 To je nekoliko gigabajta. 17 00:00:50,000 --> 00:00:54,000 To bi trebao biti slobodan na App Store, tako da ćete morati imati Mac 18 00:00:54,000 --> 00:00:57,000 idealno trčanje najnoviju verziju OS X. 19 00:00:57,000 --> 00:00:59,000 Ako niste, nema problema. 20 00:00:59,000 --> 00:01:02,000 Imamo Macove u znanstvenom centru na raspolaganju za svoj rad 21 00:01:02,000 --> 00:01:05,000 s XCode instaliran, pa slobodno koristiti onima za razvoj. 22 00:01:05,000 --> 00:01:07,000 Ako želite napraviti aplikaciju, ali nemaju Mac, ne brinite. 23 00:01:07,000 --> 00:01:09,000 Ima dosta kampusu resursa za to. 24 00:01:09,000 --> 00:01:15,000 I tako onda ćemo pokriti dvije veće primjere različitih aplikacija koje možete napraviti. 25 00:01:15,000 --> 00:01:19,000 Objective-C je tehnički ono što se zove super set C. 26 00:01:19,000 --> 00:01:24,000 To znači da svaki C koda je također vrijedi i Objective-C koda. 27 00:01:24,000 --> 00:01:29,000 To znači da smo vrsta kanala sniman na nekim dodatnim značajkama do C. 28 00:01:29,000 --> 00:01:33,000 Neke od tih značajki ne uključuju vlasništvo ikada napisati malloc opet, hvala Bogu, 29 00:01:33,000 --> 00:01:36,000 ne moraju brinuti o tim glupim pokazivače te ih oslobađaju i sve te stvari 30 00:01:36,000 --> 00:01:40,000 što je mrzio o C, a to je vrsta otišao u Objective-C. 31 00:01:40,000 --> 00:01:43,000 >> Sada, Objective-C također ima mnogo veći standardni knjižnicu, 32 00:01:43,000 --> 00:01:47,000 tako da je puno više funkcionalnosti ste dobili za besplatno unutrašnjost Objective-C. 33 00:01:47,000 --> 00:01:50,000 Sjetite se kada smo pisali PHP primijetili smo da smo išli od 34 00:01:50,000 --> 00:01:54,000 to najmanji jezik div knjižnica svih tih ludih stvari koje možete učiniti. 35 00:01:54,000 --> 00:01:56,000 Ista stvar se događa u iOS. 36 00:01:56,000 --> 00:01:59,000 Postoji objekti za stvari kao što su budističke kalendaru, a zapravo ništa 37 00:01:59,000 --> 00:02:05,000 vam eventualno mogu misliti vjerojatno već postoji u Objective-C je provedbe. 38 00:02:05,000 --> 00:02:08,000 Cilj dio Objective-C je pozivom nešto 39 00:02:08,000 --> 00:02:11,000 zove Objektno programiranje. 40 00:02:11,000 --> 00:02:14,000 To je vrsta novog koncepta, ali smo zapravo sam uglavnom naučila 41 00:02:14,000 --> 00:02:17,000 Puno tih pojmova već. 42 00:02:17,000 --> 00:02:19,000 Ideja Objektno orijentirano programiranje je da idete na strukturu 43 00:02:19,000 --> 00:02:23,000 puno kodu oko tih stvari zove nastavu, 44 00:02:23,000 --> 00:02:26,000 i ove klase su stvarno proslavio tvorevina. 45 00:02:26,000 --> 00:02:30,000 Unutar jedne struct smo u osnovi rekao ovdje je stvar, 46 00:02:30,000 --> 00:02:32,000 a to stvar može imati članova. 47 00:02:32,000 --> 00:02:35,000 Na primjer, čvor u povezane liste mogao imati i druge stvari 48 00:02:35,000 --> 00:02:38,000 kao vrijednosti, pokazivač na sljedeći čvor u popisu, 49 00:02:38,000 --> 00:02:44,000 i zajedno da pokazivač i da je vrijednost sastoji ovu jednu instancu struct. 50 00:02:44,000 --> 00:02:47,000 Klase su vrlo slični, osim 51 00:02:47,000 --> 00:02:50,000 klase također mogu imati funkcije unutar njih. 52 00:02:50,000 --> 00:02:54,000 Kada smo proglasili struct, možemo samo reći int n ili čvor * sljedećoj. 53 00:02:54,000 --> 00:02:57,000 >> Sada s Objective-C zapravo možemo staviti funkcije 54 00:02:57,000 --> 00:02:59,000 unutar tih stvari. 55 00:02:59,000 --> 00:03:03,000 Još jedna stvar koja razredi mogu učiniti je da može naslijediti podatke iz drugih razreda. 56 00:03:03,000 --> 00:03:07,000 Na primjer, mi ćemo biti u potrazi na hrpu izgrađen-in Objective-C klase. 57 00:03:07,000 --> 00:03:11,000 Jedan od njih mogao bi biti klasa koja predstavlja pogled za ekran, 58 00:03:11,000 --> 00:03:14,000 i tako rekavši želim provesti svoj pogled 59 00:03:14,000 --> 00:03:18,000 smo u osnovi reći nekome nad na Apple, vjerojatno stvarno lijepih ljudi, 60 00:03:18,000 --> 00:03:21,000 pisao ovu klasu za mene, a to obrađuje stvari kao što su prikazivanje tipke 61 00:03:21,000 --> 00:03:25,000 ili pružanje ekran, a mi bi jako bolan 62 00:03:25,000 --> 00:03:28,000 provesti sve da funkcionalnost sami, i tako jednostavno 63 00:03:28,000 --> 00:03:31,000 nasljeđivanje podataka možemo reći sve što ste učinili u toj klasi 64 00:03:31,000 --> 00:03:34,000 Također želim unutar mog razreda, a onda ću napraviti neke druge stvari, 65 00:03:34,000 --> 00:03:37,000 naime implementirati aplikaciju. 66 00:03:37,000 --> 00:03:40,000 To je ono što ta riječ znači nasljedstvo. Vidjet ćemo više konkretan primjer. 67 00:03:40,000 --> 00:03:42,000 >> I na kraju, ključ s objektno orijentirano programiranje je da 68 00:03:42,000 --> 00:03:45,000 to dovodi do podataka kućištima. 69 00:03:45,000 --> 00:03:48,000 U neke od naših problema postavlja bismo mogli imati ove velike, globalne varijable 70 00:03:48,000 --> 00:03:51,000 i globals svugdje, a to je kako ćemo pratiti stanje. 71 00:03:51,000 --> 00:03:55,000 S klasa možemo početi encapsulating informacije unutar nekog objekta. 72 00:03:55,000 --> 00:03:58,000 Ako imamo jedan zaslon na naše aplikacije, mi stvarno ne trebaju imati nikakve podatke iz 73 00:03:58,000 --> 00:04:01,000 drugi zaslon u našoj aplikaciji unutar toga, 74 00:04:01,000 --> 00:04:04,000 i tako encapsulating stvari u klasama to zapravo vodi 75 00:04:04,000 --> 00:04:08,000 da puno bolje kod dizajna, a to je moguće uz neke od dodatnih mogućnosti 76 00:04:08,000 --> 00:04:11,000 od Objective-C. 77 00:04:11,000 --> 00:04:15,000 Forewarning, sintaksa za Objective-C je banana. 78 00:04:15,000 --> 00:04:19,000 To je kao da se ništa što smo vidjeli prije, 79 00:04:19,000 --> 00:04:22,000 tako da je malo krivulja učenja navikavaju 80 00:04:22,000 --> 00:04:24,000 Koji je kurac to znači? 81 00:04:24,000 --> 00:04:27,000 Ali jednom kada se prošlosti da početna krivulja učenja je stvarno, stvarno glatka 82 00:04:27,000 --> 00:04:29,000 početi pisati aplikacije. 83 00:04:29,000 --> 00:04:33,000 >> Da proglasiti klase, reći ovdje je moj razred, ona postoji, 84 00:04:33,000 --> 00:04:35,000 a možda i ovdje su neke stvari koje ću definirati kasnije, 85 00:04:35,000 --> 00:04:38,000 Ja ću reći @ sučelje. 86 00:04:38,000 --> 00:04:41,000 Ja ću reći @ sučelje. Ja ću dati mom razredu ime. 87 00:04:41,000 --> 00:04:43,000 A onda kasnije negdje drugdje ću reći @ kraj, 88 00:04:43,000 --> 00:04:46,000 i sve između @ sučelje i @ kraja 89 00:04:46,000 --> 00:04:48,000 će biti moj razred. 90 00:04:48,000 --> 00:04:51,000 To će biti ono što je unutar naših. H datoteka. 91 00:04:51,000 --> 00:04:55,000 Baš kao u C naši. H datoteke u osnovi rekao ovdje su neke stvari koje će postojati. 92 00:04:55,000 --> 00:04:57,000 Ja ne nužno vam reći što im je činiti, ali, 93 00:04:57,000 --> 00:04:59,000 ali prevodilac treba znati da oni postoje. 94 00:04:59,000 --> 00:05:04,000 Kasnije unutar naše. M-datoteke jer m za Objective-C 95 00:05:04,000 --> 00:05:08,000 tamo gdje mi zapravo idemo definirati što ove klase učiniti. 96 00:05:08,000 --> 00:05:11,000 Slično kao i naše. C datoteke, pod uvjetom da je provedba za funkcije. 97 00:05:11,000 --> 00:05:15,000 Unutar našeg. M. datoteku ćemo reći ovdje je ono što sve funkcije 98 00:05:15,000 --> 00:05:18,000 unutar moj razred-što oni sve učiniti. 99 00:05:18,000 --> 00:05:22,000 I na kraju, unutar jedne struct mogli bismo reći unutar tih vitičastih zagrada 100 00:05:22,000 --> 00:05:25,000 int n ili čvor * next, 101 00:05:25,000 --> 00:05:28,000 i Objective-C idemo ključnu riječ @ imovine, 102 00:05:28,000 --> 00:05:31,000 i to je ono što se događa definirati svojstva, 103 00:05:31,000 --> 00:05:36,000 ili ne-funkcije koje su dio moje klase. 104 00:05:36,000 --> 00:05:40,000 >> Pozivanje funkcije u Objective-C je također banane. 105 00:05:40,000 --> 00:05:43,000 Kada smo proglasili funkcije u C mi je rekao nešto poput int foo 106 00:05:43,000 --> 00:05:46,000 i otvorena zagrada, a zatim ga je dao popis argumenata. 107 00:05:46,000 --> 00:05:51,000 To je ono što izjavljuje metode ili funkcije izgleda u Objective-C. 108 00:05:51,000 --> 00:05:54,000 Ako želim da se proglasi funkciju ili metodu 109 00:05:54,000 --> 00:05:58,000 gdje sam rekao metoda je zapravo samo funkcija koja je član klase, 110 00:05:58,000 --> 00:06:01,000 tako nekako međusobno, ali ne i stvarno, 111 00:06:01,000 --> 00:06:03,000 tako da unutar moje metode Želim stvoriti novu metodu. 112 00:06:03,000 --> 00:06:06,000 To će vratiti ništa, tako da će to biti tipa prazninu. 113 00:06:06,000 --> 00:06:08,000 Ovo je povratak vrsta moje funkcije. 114 00:06:08,000 --> 00:06:11,000 Sada imamo parens ovdje jer-ne znam. 115 00:06:11,000 --> 00:06:14,000 Sljedeća će biti ime moje funkcije, 116 00:06:14,000 --> 00:06:17,000 i onda napokon imamo zarez baš kao što smo imali u C. 117 00:06:17,000 --> 00:06:19,000 Što je novo ovdje je ovaj momak ovdje. 118 00:06:19,000 --> 00:06:22,000 Ova crtica je zapravo potrebno, i što to govori da je 119 00:06:22,000 --> 00:06:26,000 ova metoda ovdje mora biti pozvan na primjer klase. 120 00:06:26,000 --> 00:06:29,000 >> Nakon što smo proglašeni naše tvorevina smo vjerojatno rekao nešto poput 121 00:06:29,000 --> 00:06:32,000 struct čvor n, te da je zapravo stvorio 122 00:06:32,000 --> 00:06:35,000 ili instanciraju jedan od onih tvorevina, tako da sam zapravo mogao početi raditi 123 00:06:35,000 --> 00:06:38,000 s onim što je unutar njega, tako da je ovo crtica znači da moramo 124 00:06:38,000 --> 00:06:41,000 instantiate razred baš kao što smo instanciraju da struct 125 00:06:41,000 --> 00:06:43,000 prije nego što možemo nazvati ovu metodu na njega. 126 00:06:43,000 --> 00:06:46,000 Ako želim početi dodavanjem argumente na moje metode 127 00:06:46,000 --> 00:06:48,000 to dobiva još više banane. 128 00:06:48,000 --> 00:06:50,000 Evo moja metoda ime. 129 00:06:50,000 --> 00:06:53,000 Tada ću imati debelog crijeva, a nakon toga debelo piše ovdje dolazi neke argumente. 130 00:06:53,000 --> 00:06:56,000 Ova metoda uzima jedan argument. 131 00:06:56,000 --> 00:06:59,000 Vrsta svojoj argument je int, a ime tog argumenta 132 00:06:59,000 --> 00:07:03,000 ili varijabla da ću početi koristiti unutar metode je sam nazvao. 133 00:07:03,000 --> 00:07:05,000 Opet, ovo je metoda. To traje jedan argument. 134 00:07:05,000 --> 00:07:10,000 >> Ako želite početi dodavanjem više argumenata da dobije više banane 135 00:07:10,000 --> 00:07:13,000 u koji smo to debelo da kaže evo moj popis argumenata. 136 00:07:13,000 --> 00:07:15,000 Ovaj prvi argument je cijeli broj. 137 00:07:15,000 --> 00:07:17,000 Sada, ovaj drugi argument je zanimljivo. 138 00:07:17,000 --> 00:07:20,000 Varijabla koja ću biti koristeći unutar moje funkcije 139 00:07:20,000 --> 00:07:23,000 se zove f, tako da unutar mog funkciju sam mogao reći 140 00:07:23,000 --> 00:07:25,000 f + = 1 ili tako nešto. 141 00:07:25,000 --> 00:07:30,000 To je stvar ovdje je u osnovi ključ za taj argument ili parametar. 142 00:07:30,000 --> 00:07:34,000 Baš kao što smo imali ključne parova i nešto poput JSON ili asocijativnih nizova 143 00:07:34,000 --> 00:07:37,000 Objective-C je donio odluku za reći, ok, samo tako da je stvarno jasno 144 00:07:37,000 --> 00:07:39,000 kada pozvati metodu ono što svi ovi parametri su 145 00:07:39,000 --> 00:07:41,000 Ja sam zapravo događa u ime svih njih. 146 00:07:41,000 --> 00:07:45,000 Kada zovete način, zapravo ćete reći andFloat, 147 00:07:45,000 --> 00:07:47,000 i tada ćete ga proći u. 148 00:07:47,000 --> 00:07:50,000 >> Zanimljivo, to nitko ne zove, ali svi ostali parametri su, 149 00:07:50,000 --> 00:07:53,000 pa ako smo imali treći argument da sam mogao reći andFloat 150 00:07:53,000 --> 00:07:56,000 a drugi float i tako dalje. 151 00:07:56,000 --> 00:08:01,000 Kad sam poziv ove metode je, naravno, banana, 152 00:08:01,000 --> 00:08:04,000 pa ako imam neki predmet, a ja definira metodu zvanu foo, 153 00:08:04,000 --> 00:08:09,000 i želim ga nazvati, nego govoreći foo otvaranje / zatvaranje parens 154 00:08:09,000 --> 00:08:11,000 Idem otvoriti konzolu. 155 00:08:11,000 --> 00:08:13,000 Evo ime moje metode. 156 00:08:13,000 --> 00:08:17,000 Ja ću zatvoriti zagradu, a to je objekt zovem ga na. 157 00:08:17,000 --> 00:08:20,000 Zapamtite, sve ove metode postoje unutar klase 158 00:08:20,000 --> 00:08:23,000 jer klasa može imati metode definirane unutar njih. 159 00:08:23,000 --> 00:08:26,000 >> Ovdje sam samovoljno smo stvorili objekt neke klase, 160 00:08:26,000 --> 00:08:28,000 i to je sintaksa za taj događaj. 161 00:08:28,000 --> 00:08:31,000 Postoje dva koraka za stvaranje objekta. 162 00:08:31,000 --> 00:08:34,000 Prvi korak je reći želim izdvojiti prostor. 163 00:08:34,000 --> 00:08:37,000 Ovo je ekvivalent malloc. Mi ne moramo reći malloc više. 164 00:08:37,000 --> 00:08:42,000 Mi ispao m, napravio ga alloc, a zamijenio. C sa. M.. 165 00:08:42,000 --> 00:08:47,000 Nakon što smo alloc nešto mi onda morate ga inicijalizirati. 166 00:08:47,000 --> 00:08:49,000 Uglavnom, kada ste stvorili predmete možda želite imati neke logike 167 00:08:49,000 --> 00:08:53,000 da izvršava kada oni stvorili, tako da možete proći u nekim zadanim vrijednostima 168 00:08:53,000 --> 00:08:57,000 ili nešto slično, i tako to init metoda je ono što zapravo stvara objekt. 169 00:08:57,000 --> 00:08:59,000 Mi smo prvi put dodijeliti prostor, baš kao što smo učinili u C, 170 00:08:59,000 --> 00:09:04,000 i onda smo ga inicijalizirati, što može ili ne može učiniti puno. 171 00:09:04,000 --> 00:09:07,000 Onda smo se vraćaju ovu stvar u objektu o. 172 00:09:07,000 --> 00:09:09,000 Tu je zvijezda ovdje, jer je to tehnički pokazivač, 173 00:09:09,000 --> 00:09:12,000 ali ne brinite, pokazivače nisu tako veliki posao u Objective-C više. 174 00:09:12,000 --> 00:09:15,000 >> Sada smo instanciraju ovu klasu zvanu NSObject, 175 00:09:15,000 --> 00:09:19,000 i to je samo slučajna klasa da Apple ima. 176 00:09:19,000 --> 00:09:22,000 Mi smo instanciraju to, a sada imam instancu te klase 177 00:09:22,000 --> 00:09:25,000 u ovom objektu o, tako da znači da ako sam definirao 178 00:09:25,000 --> 00:09:29,000 ove metode mogu ih nazvati ovako. 179 00:09:29,000 --> 00:09:31,000 Isto tako, ako sam htio pozvati metodu s jednim argumentom, 180 00:09:31,000 --> 00:09:34,000 pa to je bar metoda, koja traje jedan argument, 181 00:09:34,000 --> 00:09:38,000 i ovdje je baz: qux metoda, tako da to traje dva argumente. 182 00:09:38,000 --> 00:09:44,000 Ovo je poziv jedne funkcije u ovom objektu o. 183 00:09:44,000 --> 00:09:46,000 Smisla? 184 00:09:46,000 --> 00:09:50,000 Sintaksa bi imalo smisla, ali nekako naviknuti na to. 185 00:09:50,000 --> 00:09:54,000 >> Ok, ajmo razgovarati o nekoliko stvari koje su ugrađene u Objective-C 186 00:09:54,000 --> 00:09:56,000 koje nisu nužno ugraditi u C. 187 00:09:56,000 --> 00:09:59,000 U C mi nekako morali nositi s tim što su žice glupih znakova polja, 188 00:09:59,000 --> 00:10:01,000 i to je dobio jako neugodno. 189 00:10:01,000 --> 00:10:04,000 Objective-C ima onih koji su izgrađeni u za nas, a to je građena u 190 00:10:04,000 --> 00:10:06,000 Korištenjem ove klase pod nazivom NSString. 191 00:10:06,000 --> 00:10:10,000 Kad želim stvoriti NSString imamo više tajanstveni sintaksu. 192 00:10:10,000 --> 00:10:15,000 Umjesto govoreći: "cs50" kažemo @ "cs50" 193 00:10:15,000 --> 00:10:17,000 i to je samo sintaksa za proglašenje konce u Objective-C. 194 00:10:17,000 --> 00:10:21,000 To je vrlo lako zaboraviti, pa ne znam. 195 00:10:21,000 --> 00:10:24,000 Sada, kada sam ovo, ovo je niz, ali primijetiti 196 00:10:24,000 --> 00:10:26,000 to je zapravo samo objekt. 197 00:10:26,000 --> 00:10:30,000 Rekao sam NSString, što znači da sam instanciraju razred 198 00:10:30,000 --> 00:10:32,000 zove NSString, koje je netko drugi napisao za mene, 199 00:10:32,000 --> 00:10:35,000 i oni su vrlo lijepo o njemu, i tako sada 200 00:10:35,000 --> 00:10:37,000 Ja mogu početi zovete metode o tome. 201 00:10:37,000 --> 00:10:40,000 Ako ja zovem metoda duljinu na ovaj predmet je 202 00:10:40,000 --> 00:10:43,000 to će se vratiti na mene duljinu niza. 203 00:10:43,000 --> 00:10:45,000 To je baš kao i strlen u C. 204 00:10:45,000 --> 00:10:47,000 To će se vratiti 4. 205 00:10:47,000 --> 00:10:51,000 >> Isto tako, još jedan način sam možda želite stalo je ovo characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 To je metoda koja kaže da se na ovaj niz s 207 00:10:54,000 --> 00:10:57,000 Želim vam da dobijete 0. karakter, 208 00:10:57,000 --> 00:10:59,000 pa to bi se vratili na mene lik c, 209 00:10:59,000 --> 00:11:02,000 i tu je cijela hrpa više od tih metoda koje možete Googleu stvarno lako. 210 00:11:02,000 --> 00:11:07,000 Appleov dokumentacija je velik, a mi ćemo pogledati kako u malo. 211 00:11:07,000 --> 00:11:09,000 Oni su nizovi. 212 00:11:09,000 --> 00:11:11,000 Također smo varijabilne veličine polja izgrađen u. 213 00:11:11,000 --> 00:11:13,000 Sjeti se u C kada smo proglasili niz 214 00:11:13,000 --> 00:11:16,000 imali smo reći da imate pet elemenata, kraj priče. 215 00:11:16,000 --> 00:11:18,000 Kad smo stigli na JavaScript i PHP bismo mogli početi 216 00:11:18,000 --> 00:11:20,000 radi stvari kao što je dodavanje elemenata ili se kreće elemente. 217 00:11:20,000 --> 00:11:22,000 Mi možemo učiniti isto u Objective-C. 218 00:11:22,000 --> 00:11:26,000 Umjesto stvoriti niz u normalnom C putu 219 00:11:26,000 --> 00:11:30,000 imamo opet drugi razred zove NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 Tu je također NSArray, 221 00:11:33,000 --> 00:11:35,000 i to se događa u osnovi utjelovljuje neki niz. 222 00:11:35,000 --> 00:11:38,000 To govori prva stvar želim učiniti je želim izdvojiti 223 00:11:38,000 --> 00:11:41,000 prostor za novo polje, a nakon što sam ga izdvojiti 224 00:11:41,000 --> 00:11:43,000 I onda je potrebno da ga inicijalizirati. 225 00:11:43,000 --> 00:11:45,000 Opet, samo nazivajući ove dvije metode. 226 00:11:45,000 --> 00:11:48,000 Sada to znači da unutar tog objekta je 227 00:11:48,000 --> 00:11:50,000 Ja sam prazna polja sjedi tamo. 228 00:11:50,000 --> 00:11:54,000 Ako želim dodati nešto na ovaj niz, ja mogu pozvati addObject metodu. 229 00:11:54,000 --> 00:11:59,000 Želim dodati objekt na polju je, i želim dodati niz CS50. 230 00:11:59,000 --> 00:12:02,000 Ako sam želio obratno ukloniti da mogu reći želim 231 00:12:02,000 --> 00:12:09,000 ukloniti objekt na prvom mjestu na polje ili objekt. 232 00:12:09,000 --> 00:12:11,000 >> Smisla? 233 00:12:11,000 --> 00:12:14,000 Ok, vrsta naviknuti na ovom trgu noseći stvar. 234 00:12:14,000 --> 00:12:18,000 Usput, unutar puno Appleovim knjižnica vidjet ćete ovu NS. 235 00:12:18,000 --> 00:12:21,000 NS zapravo zalaže za sljedeći korak, koji je bio jedan od Steve Jobs prvih tvrtki, 236 00:12:21,000 --> 00:12:24,000 i to je gdje je on stvarno počeo pisati puno koda 237 00:12:24,000 --> 00:12:27,000 kao vrsta osnova za Mac OS X i sve druge stvari, 238 00:12:27,000 --> 00:12:32,000 i tako to NS je vrsta ovog lijepog ostavštine kriknuti jednom od ranijih poduzeća 239 00:12:32,000 --> 00:12:34,000 natrag kada je Apple prvi put počinje out. 240 00:12:34,000 --> 00:12:36,000 To je svugdje. 241 00:12:36,000 --> 00:12:41,000 Idemo pogledati više holistički Objective-C primjer. 242 00:12:41,000 --> 00:12:44,000 Ovdje sam unutar Xcode. 243 00:12:44,000 --> 00:12:47,000 Da biste dobili ovdje, sam prvi put skinuti Xcode iz App Store, 244 00:12:47,000 --> 00:12:50,000 ga otvorio, a onda sam otišao do ovdje datoteci, 245 00:12:50,000 --> 00:12:54,000 ovamo na novoj, a zatim projekt. 246 00:12:54,000 --> 00:12:57,000 Nakon što sam to učinio sam sve ove opcije što želim napraviti, 247 00:12:57,000 --> 00:12:59,000 i tako ćemo pogledati tih opcija kasnije, 248 00:12:59,000 --> 00:13:03,000 ali samo za ovaj primjer, jer nismo zapravo će imati app još 249 00:13:03,000 --> 00:13:06,000 Došao sam ovdje dolje, a ja sam rekao Command Line Tool, 250 00:13:06,000 --> 00:13:09,000 i to je app da sam mogao pokrenuti na naredbenog retka 251 00:13:09,000 --> 00:13:12,000 baš kao što smo bili trčanje iz C. 252 00:13:12,000 --> 00:13:16,000 Tako sam stvorio ovaj projekt, pa sada sam ovdje, 253 00:13:16,000 --> 00:13:20,000 pa neka prvi pogled na ovu sliku, i to bi trebalo izgledati lijepo upoznati. 254 00:13:20,000 --> 00:13:24,000 Imam int ime. Tu je moj prijatelj argc, moj drugi prijatelj argv. 255 00:13:24,000 --> 00:13:30,000 I tako možemo vidjeti da je to polazna točka za moj prvi Objective-C programa. 256 00:13:30,000 --> 00:13:32,000 Ovdje možemo ignorirati to za sada. 257 00:13:32,000 --> 00:13:35,000 To je u osnovi neke stvari upravljanje memorijom da nećete stvarno 258 00:13:35,000 --> 00:13:37,000 ikada morati brinuti o tome. 259 00:13:37,000 --> 00:13:39,000 >> Pogledajmo ovog prvog bloka ovdje. 260 00:13:39,000 --> 00:13:46,000 Ovaj prvi red, ako kažem Studentski * alice = [[Studentski alloc] init] što je to radiš? 261 00:13:46,000 --> 00:13:50,000 Ovo je prvi student ovdje, ovo je vjerojatno klasa. 262 00:13:50,000 --> 00:13:54,000 To nije klasa da Apple napisao, ali to je klasa koja sam napisao. 263 00:13:54,000 --> 00:13:57,000 Prva stvar želim učiniti je želim izdvojiti prostor za novi učenik, 264 00:13:57,000 --> 00:14:00,000 i onda želim da ga inicijalizirati, pa to mi daje natrag 265 00:14:00,000 --> 00:14:05,000 ovaj novi studentski objekt, i ja sam to spremanje u varijablu zove Alice. 266 00:14:05,000 --> 00:14:07,000 Odakle da klase dolaze iz? 267 00:14:07,000 --> 00:14:12,000 Pa, ovdje na lijevoj strani su sve različite datoteke unutar mog projekta. 268 00:14:12,000 --> 00:14:16,000 Možemo vidjeti ovdje imam Student.h i Student.m. 269 00:14:16,000 --> 00:14:20,000 . H datoteku, zapamtite, je mjesto gdje sam proglasiti sve stvari 270 00:14:20,000 --> 00:14:22,000 koje će postojati unutar klase. 271 00:14:22,000 --> 00:14:25,000 >> Idemo pogledati to. 272 00:14:25,000 --> 00:14:29,000 U redu, ovdje imamo tu @ sučelje, a to govori da je ovdje riječ o 273 00:14:29,000 --> 00:14:33,000 izjave o svemu što će postojati u mom razredu. 274 00:14:33,000 --> 00:14:36,000 Onda imam debelo crijevo. Tada sam ovu NSObject stvar. 275 00:14:36,000 --> 00:14:40,000 To znači da je debelo nasljedstvo malo smo raspravljali malo ranije. 276 00:14:40,000 --> 00:14:43,000 To sve govori NSObject može učiniti 277 00:14:43,000 --> 00:14:46,000 gdje NSObject je ova klasa napisao netko drugi, 278 00:14:46,000 --> 00:14:50,000 sve to NSObject može učiniti Želim biti u mogućnosti to učiniti. 279 00:14:50,000 --> 00:14:54,000 Po riječima: NSObject to znači da sam u osnovi 280 00:14:54,000 --> 00:14:58,000 naslijedio sve funkcionalnosti druge klase. 281 00:14:58,000 --> 00:15:02,000 To stvarno mi je dao hrpu različitih metoda i svojstava koje mogu koristiti. 282 00:15:02,000 --> 00:15:05,000 Ovdje dolje sam stvara dva svojstva. 283 00:15:05,000 --> 00:15:08,000 To znači moj učenik, ako je to bila struct, to će biti dvije stvari 284 00:15:08,000 --> 00:15:11,000 unutar mog struct, tako da svaki student ima ime 285 00:15:11,000 --> 00:15:14,000 da je niz i student ima ocjenu, 286 00:15:14,000 --> 00:15:17,000 što je int. 287 00:15:17,000 --> 00:15:23,000 >> Konačno, ovdje ću stvoriti metodu za moj učenik. 288 00:15:23,000 --> 00:15:26,000 Zvao sam moj način, initWithName, i to traje jedan argument, 289 00:15:26,000 --> 00:15:31,000 i taj argument je string, i nazvao sam ga nazvati. 290 00:15:31,000 --> 00:15:35,000 Sada pogledajmo kako smo zapravo provodi ovu klasu. 291 00:15:35,000 --> 00:15:38,000 Evo, sada sam unutar moje. M datoteku, 292 00:15:38,000 --> 00:15:40,000 m za provedbu, pretpostavljam. 293 00:15:40,000 --> 00:15:44,000 Imam svoju primjenu, moj kraj, i ovdje gdje sam zapravo definiranje 294 00:15:44,000 --> 00:15:47,000 što initWithName radi. 295 00:15:47,000 --> 00:15:50,000 Imam initWithName, ime mog parametra, a onda ova 296 00:15:50,000 --> 00:15:53,000 gdje sam zapravo stvaranje učenika, 297 00:15:53,000 --> 00:15:56,000 pa to je malo zagonetan, ali to je vrsta predloženi 298 00:15:56,000 --> 00:15:58,000 koje želite uključiti u konstruktorima. 299 00:15:58,000 --> 00:16:02,000 Ovo inicijalizacija funkciju ovdje, initWithName, je vrsta konstruktora. 300 00:16:02,000 --> 00:16:05,000 Vi ste zapravo izgradnju novog studentskog objekt 301 00:16:05,000 --> 00:16:07,000 a možda i slanje neke podatke unutar nje. 302 00:16:07,000 --> 00:16:11,000 Prva stvar želim učiniti je želim pozvati init na ovom super stvar. 303 00:16:11,000 --> 00:16:15,000 >> Zapamtite da kada sam rekao ovdje u. H datoteci 304 00:16:15,000 --> 00:16:21,000 da je sve NSObject ima student ima. 305 00:16:21,000 --> 00:16:24,000 To znači da kada sam stvoriti studenta što sam također trebate učiniti je 306 00:16:24,000 --> 00:16:28,000 pobrinite se da NSObject da sam baštineći sve te podatke iz 307 00:16:28,000 --> 00:16:32,000 također je inicijalizirana ispravno. 308 00:16:32,000 --> 00:16:36,000 Što moram reći da je to super zapravo događa da se odnosi na matičnom razredu 309 00:16:36,000 --> 00:16:39,000 da sam nasljeđivanje iz, pa želim da biste bili sigurni da inicijalizirati 310 00:16:39,000 --> 00:16:43,000 sve što sam ovisno o prije nego što sam početi pokušavate ga koristiti. 311 00:16:43,000 --> 00:16:46,000 Onda ako je to ispravno inicijaliziran to je samo kao što je rekao, ako malloc 312 00:16:46,000 --> 00:16:50,000 nije se vratio null onda mogu početi postavljanje neka svojstva. 313 00:16:50,000 --> 00:16:54,000 >> U JavaScript i PHP smo to ključna zove ovaj, 314 00:16:54,000 --> 00:16:58,000 i to iz trenutne instance klase. 315 00:16:58,000 --> 00:17:00,000 U Objective-C zovemo sebe. 316 00:17:00,000 --> 00:17:04,000 Kad kažem self.name, to znači da je objekt 317 00:17:04,000 --> 00:17:07,000 Upravo sam napravio kada sam rekao da učenik alloc init, 318 00:17:07,000 --> 00:17:09,000 da će mi vratiti objekt. 319 00:17:09,000 --> 00:17:12,000 To znači da želim postaviti ime tog objekta 320 00:17:12,000 --> 00:17:15,000 što god sam prošao i. 321 00:17:15,000 --> 00:17:18,000 Baš kao u C, imamo pristup članove s ovom točkom, 322 00:17:18,000 --> 00:17:21,000 tako self.name kaže ime studentskog objekta 323 00:17:21,000 --> 00:17:24,000 sada će biti ono što ste upravo prošli u. 324 00:17:24,000 --> 00:17:28,000 I tako napokon, mogu ga vratiti tako da sam zapravo dobiti nešto natrag. 325 00:17:28,000 --> 00:17:30,000 >> Pitanja? 326 00:17:30,000 --> 00:17:34,000 Ok, tako da je ovo samo = super init, 327 00:17:34,000 --> 00:17:37,000 ako ne potpuno razumijem nasljedstvo stvari ne brinite. 328 00:17:37,000 --> 00:17:40,000 Samo znam da li ste ikada željeli napraviti svoj vlastiti init metodu samo 329 00:17:40,000 --> 00:17:42,000 to, a vi ćete biti dobro ide. 330 00:17:42,000 --> 00:17:44,000 Da. >> [Studentski] Što ako samo znači? 331 00:17:44,000 --> 00:17:49,000 To znači da kada smo malloc nešto što mi uvijek provjeriti ako je to bila jednaka null, 332 00:17:49,000 --> 00:17:51,000 a ako je nula, onda smo izašli. 333 00:17:51,000 --> 00:17:55,000 To je ista stvar, jer ako se to vraća null, onda vjerojatno ide na SEG krivnjom 334 00:17:55,000 --> 00:17:57,000 ako ćemo početi pokušava manipulirati. 335 00:17:57,000 --> 00:18:01,000 To je naša studentica klase. 336 00:18:01,000 --> 00:18:03,000 To znači da možemo inicijalizirati naše studente na jedan od dva načina. 337 00:18:03,000 --> 00:18:08,000 Ako kažem učenik alloc init Ja ne koristim tu metodu da sam napisao, 338 00:18:08,000 --> 00:18:11,000 a umjesto toga sam jednostavno mogu reći alice.name, 339 00:18:11,000 --> 00:18:14,000 i sad ću postaviti tu imovinu ime. 340 00:18:14,000 --> 00:18:17,000 >> Isto tako, ako želim koristiti taj initWithName metodu 341 00:18:17,000 --> 00:18:20,000 Ja jednostavno ne može reći alloc, a zatim umjesto govoreći init 342 00:18:20,000 --> 00:18:24,000 Idem nazvati taj način da sam upravo stvorili, a ja ću proći u Bobu. 343 00:18:24,000 --> 00:18:30,000 U ovom trenutku, ovaj objekt Bob ima ime jednako Bob. 344 00:18:30,000 --> 00:18:35,000 Ok, ovdje sam koristiti taj NSMutableArray da smo gledali na ranije. 345 00:18:35,000 --> 00:18:38,000 Ja dodjele space.Then sam inicijalizirati novi niz. 346 00:18:38,000 --> 00:18:40,000 Ja ću dodati dvije stvari na njega. 347 00:18:40,000 --> 00:18:43,000 Ovo polje sada drži studentske objekte. 348 00:18:43,000 --> 00:18:46,000 Primijetit ćete da nigdje nisam moram reći da je to niz studenata. 349 00:18:46,000 --> 00:18:48,000 Rekao sam da je polje, razdoblje. 350 00:18:48,000 --> 00:18:50,000 Tada sam može staviti što god u njemu da želim. 351 00:18:50,000 --> 00:18:52,000 Ovdje sam dva predmeta. 352 00:18:52,000 --> 00:18:56,000 >> Konačno, imam još jedan objekt ovdje, ovaj TF. 353 00:18:56,000 --> 00:18:59,000 Ovamo u TF.h osnovi ista stvar. 354 00:18:59,000 --> 00:19:01,000 Ja sam nasljeđivanje iz NSObject, i usput, 355 00:19:01,000 --> 00:19:03,000 kada ste stvorili nastavu to je sve učinio za vas, 356 00:19:03,000 --> 00:19:06,000 ova vrsta sučelja predloženi. 357 00:19:06,000 --> 00:19:08,000 Ona ima svojstvo studenata. 358 00:19:08,000 --> 00:19:15,000 Imam par Način da se ovdje ne stvarno učiniti puno, 359 00:19:15,000 --> 00:19:18,000 pa to znači da nakon što sam stvoriti ovaj TF objekt 360 00:19:18,000 --> 00:19:23,000 Ja mogu nazvati ovu metodu ocjene o tome ovako. 361 00:19:23,000 --> 00:19:26,000 Sva pitanja o Objective-C sintaksu prije nego što počnemo kreće u neke više 362 00:19:26,000 --> 00:19:30,000 Zanimljivo aplikacije razvoj stvari? 363 00:19:30,000 --> 00:19:34,000 >> Ok, pa neka je zapravo napraviti iPhone aplikaciju. 364 00:19:34,000 --> 00:19:39,000 Jezgra klase koje ćete se koriste unutar vašeg iPhone app se zove pogled kontroleri, 365 00:19:39,000 --> 00:19:42,000 i pogled kontroler u osnovi predstavlja jednu ekran 366 00:19:42,000 --> 00:19:46,000 unutar svoje aplikacije, pa ako sam na glazbenoj aplikaciji, primjerice, 367 00:19:46,000 --> 00:19:50,000 jedan kontroler pogled moglo predstavljati pogled u kojem sam vidjeti sve pjesme na moj iPhone. 368 00:19:50,000 --> 00:19:53,000 Drugi kontroler pogled moglo biti kada sam kliknite na pjesmu i početi igrati 369 00:19:53,000 --> 00:19:55,000 ili kao što sam bušenje dolje u umjetnika. 370 00:19:55,000 --> 00:19:59,000 Svaki od tih različitih ekrana mogao biti predstavljeni kao drugačiji pogled kontroler, 371 00:19:59,000 --> 00:20:04,000 i pogled kontroler je zapravo samo klasa koja kaže kako se to radi ekran. 372 00:20:04,000 --> 00:20:07,000 Stvari unutrašnjost pogledom kontroler, idemo da ima svojstva, 373 00:20:07,000 --> 00:20:10,000 tako stvari poput gumba će biti vlasništvo naše more kontrolera. 374 00:20:10,000 --> 00:20:13,000 >> Mi smo također će imati metode, a to su u osnovi događaj rukuju. 375 00:20:13,000 --> 00:20:16,000 Ova metoda govori kada pritisnete ovu tipku 376 00:20:16,000 --> 00:20:19,000 Želim učiniti nešto, i na kraju, opet, 377 00:20:19,000 --> 00:20:24,000 mi smo idući u biti koristeći ovaj samo ključnu riječ za pristup trenutnu instancu. 378 00:20:24,000 --> 00:20:29,000 Za izgradnju sučelja u iOS je zapravo jako, jako jednostavno. 379 00:20:29,000 --> 00:20:32,000 Oni imaju ovu lijepu vuci i ispusti sučelje zove Sučelje Graditelj, 380 00:20:32,000 --> 00:20:37,000 i dvije temeljne pojmove koji žica svoj Objective-C Interface Builder 381 00:20:37,000 --> 00:20:40,000 su IBOutlet i IBAction. 382 00:20:40,000 --> 00:20:44,000 IBOutlet jednostavno kaže da ako se proglasi imovine koja je tipka, 383 00:20:44,000 --> 00:20:47,000 i želite ga spojiti na nešto u svom stvarnom UI, 384 00:20:47,000 --> 00:20:49,000 ideš reći da je izlaz. 385 00:20:49,000 --> 00:20:51,000 Isto tako, ako želite da predstavlja događaj rukovatelj 386 00:20:51,000 --> 00:20:54,000 onda ćeš reći da je akcija. 387 00:20:54,000 --> 00:20:57,000 >> Da zapravo spojiti se ovaj grafički prikaz 388 00:20:57,000 --> 00:21:00,000 i tvoj broj je jako, jako jednostavan. 389 00:21:00,000 --> 00:21:03,000 Ako želite priključiti IBOutlet, sve što morate učiniti je da kontrolirati klik, 390 00:21:03,000 --> 00:21:05,000 pa ćemo vidjeti primjer za to jako brzo. 391 00:21:05,000 --> 00:21:07,000 Vi kontrolirate kliknite gdje piše Pogledajte kontroler. 392 00:21:07,000 --> 00:21:09,000 Ti si idući u povucite u sučelju, ili obratno, 393 00:21:09,000 --> 00:21:13,000 ako želite spojiti događaj rukovatelj ćeš povući iz sučelja 394 00:21:13,000 --> 00:21:15,000 u drugom smjeru. 395 00:21:15,000 --> 00:21:20,000 Idemo pogledati stvarno jednostavan iOS primjer. 396 00:21:20,000 --> 00:21:23,000 >> Idemo stvoriti novi projekt. 397 00:21:23,000 --> 00:21:25,000 Ja ću doći ovdje na primjeni, 398 00:21:25,000 --> 00:21:28,000 i ja ću kliknuti jednom pogledu zahtjeva. 399 00:21:28,000 --> 00:21:31,000 Idem kliknite next. Ja ću dati moj projekt naziv. 400 00:21:31,000 --> 00:21:33,000 Nazvat ću ga Zdravo. 401 00:21:33,000 --> 00:21:36,000 Zanimljivo, Apple pretpostavlja da ste stvaranje proizvod 402 00:21:36,000 --> 00:21:38,000 tako da možete ga prodati i oni mogu zaraditi novac. 403 00:21:38,000 --> 00:21:41,000 Dolje ovdje ću reći da je to iPhone app. 404 00:21:41,000 --> 00:21:44,000 Možete stvoriti iPad aplikaciju, ili ako želite stvoriti jednu od tih aplikacija 405 00:21:44,000 --> 00:21:47,000 koji podržava oba uređaja možete to učiniti previše. 406 00:21:47,000 --> 00:21:49,000 To su ono što želite da vaše checkmarks izgledati. 407 00:21:49,000 --> 00:21:51,000 >> Vi želite koristiti storyboards, što ćemo kasnije vidjeti, 408 00:21:51,000 --> 00:21:54,000 a vi svakako želite koristiti automatsko referentnu brojanja, 409 00:21:54,000 --> 00:21:58,000 što je lijepo lice koje vas sprečava da ima za reći malloc i free. 410 00:21:58,000 --> 00:22:03,000 Ukoliko želite nazvati malloc i free, ja bih napustiti ovaj ček. 411 00:22:03,000 --> 00:22:07,000 Ja ću kliknite next, i na kraju, to će me pitati gdje želim da ga spasiti. 412 00:22:07,000 --> 00:22:14,000 Ja ću pogoditi stvoriti, i ovdje mi ići. 413 00:22:14,000 --> 00:22:16,000 Napravio sam novi projekt. 414 00:22:16,000 --> 00:22:19,000 Više ovdje na lijevoj strani su sve datoteke koje su unutar mog projekta, 415 00:22:19,000 --> 00:22:22,000 i primijetiti da sam dobio hrpu, a nisam ni ništa. 416 00:22:22,000 --> 00:22:24,000 IOS je super. 417 00:22:24,000 --> 00:22:27,000 >> Na primjer, ovdje je to ViewController.h, 418 00:22:27,000 --> 00:22:30,000 to će predstavljati moj prvi pogled kontroler, 419 00:22:30,000 --> 00:22:32,000 pa prvi ekranu unutar moje app. 420 00:22:32,000 --> 00:22:34,000 Sada znamo što je to rekao. 421 00:22:34,000 --> 00:22:36,000 Govorimo zovem ovu klasu ViewController, 422 00:22:36,000 --> 00:22:40,000 i ViewController čini sve da UIViewController radi, 423 00:22:40,000 --> 00:22:43,000 i to je, opet, neke klase da Apple napisao da se puno zgodan stvari za nas 424 00:22:43,000 --> 00:22:46,000 sviđa prikazali zaslon. 425 00:22:46,000 --> 00:22:50,000 Ovdje je mjesto gdje sam zapravo može početi definirati što je moj pogled kontroler radi, 426 00:22:50,000 --> 00:22:52,000 i ispada da ja stvarno ne trebaju ništa od ovoga. 427 00:22:52,000 --> 00:22:55,000 Ovo je predloženi broj da Apple mi daje besplatno. 428 00:22:55,000 --> 00:22:59,000 Ja sam je potrebno da prvu liniju, ili nemam razred, 429 00:22:59,000 --> 00:23:02,000 tako da možemo riješiti to i riješi to. 430 00:23:02,000 --> 00:23:05,000 Ok, tako da je ovo moj prazan ekran. 431 00:23:05,000 --> 00:23:08,000 >> Sada ćemo kliknite na ovaj MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 i to je mjesto gdje počinje da biste dobili zanimljiv. 433 00:23:11,000 --> 00:23:14,000 Ovo predstavlja prvi ekran na mom app. 434 00:23:14,000 --> 00:23:17,000 Ako želim dodati gumb, u HTML-u morao sam stvoriti gumb oznaku. 435 00:23:17,000 --> 00:23:20,000 U Android morate stvoriti gumb oznaku, 436 00:23:20,000 --> 00:23:23,000 ali u iOS, ako sam došao ovdje dolje na dnu desno 437 00:23:23,000 --> 00:23:27,000 a ako ja kliknite na ovaj treći jednom ovdje gdje piše objekte, 438 00:23:27,000 --> 00:23:31,000 i ja mogu pomicati prema dolje, ili mogu početi u potrazi za gumb. 439 00:23:31,000 --> 00:23:35,000 A pogledajte, gumb, tako da sam zapravo povući i ispustiti ovo pravo postoji, 440 00:23:35,000 --> 00:23:38,000 Upravo sam dodao gumb na ovaj zaslon na mom app. 441 00:23:38,000 --> 00:23:41,000 Ako želim promijeniti tekst, ja dvaput ga pritisnite, 442 00:23:41,000 --> 00:23:47,000 reći nešto mami poput "Me Pritisnite." 443 00:23:47,000 --> 00:23:51,000 Ok, sad ako sam pokrenuti ovu aplikaciju, tako da smo ga sastaviti, 444 00:23:51,000 --> 00:23:54,000 tako da ga pokrenuti sam kliknite na gumb za reprodukciju u gornjem lijevom kutu, a tu je moj app. 445 00:23:54,000 --> 00:23:58,000 Nisam ništa učiniti, a ja sam dobio slatko izgleda iPhone app. 446 00:23:58,000 --> 00:24:01,000 Ako želim da ga se zaustavi, možete kliknuti gumb zaustavljanje 447 00:24:01,000 --> 00:24:03,000 jer to je više zabave. 448 00:24:03,000 --> 00:24:07,000 >> Ajmo reći da sam zapravo žele nešto dogoditi kad sam pritisnite ovu tipku. 449 00:24:07,000 --> 00:24:09,000 Za to što trebam učiniti je da morate stvoriti 450 00:24:09,000 --> 00:24:13,000 novi događaj rukovatelj ili akcije. 451 00:24:13,000 --> 00:24:16,000 To znači da moram stvoriti neku metodu da želim da se zove 452 00:24:16,000 --> 00:24:18,000 kad sam pritisnite gumb, pa neka je stvoriti novu metodu. 453 00:24:18,000 --> 00:24:20,000 Ja sam unutar ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Moram reći da je metoda postoji. 455 00:24:22,000 --> 00:24:26,000 Trebam crticu prvi jer ću se zove ova na more kontroler. 456 00:24:26,000 --> 00:24:28,000 Moram dati ovo tip. 457 00:24:28,000 --> 00:24:31,000 Vrsta ovo će biti da IBAction stvar koju smo vidjeli ranije. 458 00:24:31,000 --> 00:24:35,000 To je događaj rukovatelj, tako da će se vratiti IBAction, 459 00:24:35,000 --> 00:24:38,000 i to je nagovještaj da Xcode reći da 460 00:24:38,000 --> 00:24:40,000 to je nešto što želim spojiti nešto. 461 00:24:40,000 --> 00:24:45,000 Ja mogu dati ime, kao buttonPressed, zarezom. 462 00:24:45,000 --> 00:24:48,000 >> Sada sam proglasio novu metodu unutar mog razreda. 463 00:24:48,000 --> 00:24:50,000 Ja sam rekao ova metoda mora postojati. 464 00:24:50,000 --> 00:24:53,000 Sada ćemo doći u ViewController.m, 465 00:24:53,000 --> 00:24:56,000 i recimo ono što je ova metoda može učiniti. 466 00:24:56,000 --> 00:25:03,000 Ako sam početi pisati, primjerice, (void) buttonPressed 467 00:25:03,000 --> 00:25:06,000 Obavijest XCode je stvarno lijepo i autocompletes za mene. 468 00:25:06,000 --> 00:25:09,000 To je stvarno prekrasno. 469 00:25:09,000 --> 00:25:12,000 Obavijest ovdje da unutar. M. datoteku Ja također mogu reći prazninu, 470 00:25:12,000 --> 00:25:15,000 a to je zato da IBAction nije zapravo vrsta. 471 00:25:15,000 --> 00:25:19,000 To je zapravo hashtag definirana negdje biti nevažeće, 472 00:25:19,000 --> 00:25:22,000 i opet, to je samo nagovještaj da Xcode da kaže 473 00:25:22,000 --> 00:25:25,000 Želim da ovo bude događaj rukovatelj, pa ćemo vidjeti zašto je u samo sekundi. 474 00:25:25,000 --> 00:25:28,000 Kad se pritisne tipka ću učiniti nešto neugodno 475 00:25:28,000 --> 00:25:30,000 sviđa prikazati popup. 476 00:25:30,000 --> 00:25:35,000 >> Za to sam može stvoriti novu instancu te klase pod nazivom UIAlertView, 477 00:25:35,000 --> 00:25:39,000 i to je klasa koja Apple je napisao da će se prikazivati ​​dosadne pučanstvo. 478 00:25:39,000 --> 00:25:43,000 Mi ćemo pozvati ovu popup upozorenja, a ja imam dva koraka, zapamtite, za stvaranje ovaj objekt. 479 00:25:43,000 --> 00:25:46,000 Prva stvar što trebate učiniti je izdvojiti prostor. 480 00:25:46,000 --> 00:25:48,000 Želim UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Želim da dodijeli prostor. To je moja prva metoda. 482 00:25:51,000 --> 00:25:53,000 Moj sljedeći način je želim ga inicijalizirati, 483 00:25:53,000 --> 00:25:58,000 i tako ja imam tu veliku, dugu metodu zvanu initWithTitle. 484 00:25:58,000 --> 00:26:01,000 To u osnovi će kontrolirati ono što ovaj skočnu kaže. 485 00:26:01,000 --> 00:26:04,000 Naslov moje popup može biti zdravo. 486 00:26:04,000 --> 00:26:08,000 Poruka je to skočnu može biti "Ovo je iOS." 487 00:26:08,000 --> 00:26:10,000 Delegat stvar, ne znam što je. 488 00:26:10,000 --> 00:26:13,000 Recimo to je ništa. 489 00:26:13,000 --> 00:26:18,000 Sada gumb koji će se pojaviti možete reći nešto poput: "To je sigurno", 490 00:26:18,000 --> 00:26:24,000 a ja stvarno ne želim nikakve druge tipke, pa ajmo izbrisati da i zatvorite držač. 491 00:26:24,000 --> 00:26:27,000 >> Ok, ja sam stvorio dodatni jedan. Tu ćemo ići. 492 00:26:27,000 --> 00:26:30,000 Ovo je kako ja mogu stvoriti novi popup. 493 00:26:30,000 --> 00:26:35,000 Ako želim da se zapravo pokazati popup želim pozvati show metodu. 494 00:26:35,000 --> 00:26:38,000 Za to mogu reći i pokazati upozorenja, 495 00:26:38,000 --> 00:26:40,000 i opet, samodovršetak je super lijepo. 496 00:26:40,000 --> 00:26:42,000 Ako sam zaboravio što je to, ako sam upisali u s., 497 00:26:42,000 --> 00:26:45,000 Ja možete prelistavati ovdje shvatiti što je to, 498 00:26:45,000 --> 00:26:48,000 i to filtrira lijepo. 499 00:26:48,000 --> 00:26:52,000 Sada sam stvorio ovaj novi popup. 500 00:26:52,000 --> 00:26:55,000 Vratit ćemo se na ono što delegat znači kasnije, 501 00:26:55,000 --> 00:26:58,000 i sada želim reći želim ova metoda biti ispaljene 502 00:26:58,000 --> 00:27:01,000 kad sam pritisnite gumb, pa ću se vratiti na moje scenarija, 503 00:27:01,000 --> 00:27:04,000 i ja želim da sada pridaju ovu IBAction. 504 00:27:04,000 --> 00:27:06,000 Prva stvar koju želite učiniti je kliknuti na tipku. 505 00:27:06,000 --> 00:27:08,000 Kad sam pritisnite ovu tipku Želim nešto dogodi. 506 00:27:08,000 --> 00:27:10,000 Neću da držite kontrolu. 507 00:27:10,000 --> 00:27:13,000 Idem kliknite i povucite od gumb 508 00:27:13,000 --> 00:27:15,000 na ovamo gdje se kaže View Controller. 509 00:27:15,000 --> 00:27:17,000 Možemo vidjeti da je to lijepo svijetli. 510 00:27:17,000 --> 00:27:22,000 >> Ako sam pustio s mojim mišem sada imam ovo skočnu ovamo gdje imam neke opcije. 511 00:27:22,000 --> 00:27:24,000 Jedan od njih je i događaji koji mogu registrirati. 512 00:27:24,000 --> 00:27:28,000 To su sve od tih metoda sam prijavljenih u mojoj h datoteku kao IBActions. 513 00:27:28,000 --> 00:27:31,000 Ovo je način kako XCode zna što bi se trebao pojaviti u ovom malom popisu, 514 00:27:31,000 --> 00:27:33,000 tako da je samo nagovještaj. 515 00:27:33,000 --> 00:27:37,000 Ako sam kliknite na gumb pritisnut, ja sada ste registrirani događaja rukovatelj. 516 00:27:37,000 --> 00:27:41,000 U JavaScriptu smo imali za reći imam neki kod koji registriran događaja rukovatelj. 517 00:27:41,000 --> 00:27:43,000 U Objective-C to je stvarno tako jednostavno. 518 00:27:43,000 --> 00:27:46,000 Ako sam pokrenuti ovaj opet 519 00:27:46,000 --> 00:27:49,000 Sada kad sam pritisnite tipku moj događaj rukovatelj ide na vatru, 520 00:27:49,000 --> 00:27:51,000 i ja ću dobiti ovaj popup. 521 00:27:51,000 --> 00:27:54,000 Super, super jednostavna tamo. 522 00:27:54,000 --> 00:27:57,000 >> Ako ste ikada željeli vidjeti sve događaje koji se dogoditi da bude registriran 523 00:27:57,000 --> 00:28:00,000 na komponente ako ja kliknite na ovaj gumb 524 00:28:00,000 --> 00:28:02,000 i ja doći ovamo na desnoj strani 525 00:28:02,000 --> 00:28:05,000 prvi možete vidjeti ovdje mogu napraviti stvari kao tip gumba, 526 00:28:05,000 --> 00:28:08,000 tako da ako želite jedan od onih koje sam je ili na Dodaj kontakt gumb 527 00:28:08,000 --> 00:28:10,000 ili što god. 528 00:28:10,000 --> 00:28:13,000 Ako želim vidjeti sve događaje koji su se na taj gumb 529 00:28:13,000 --> 00:28:16,000 ako dođem skroz ovamo na desnoj strani 530 00:28:16,000 --> 00:28:19,000 možemo vidjeti ovdje na događaje imam svih tih različitih događaja. 531 00:28:19,000 --> 00:28:23,000 Ja mogu pritisnuti gumb, kad sam neka ide na gumb, kad sam dvostruko slavinu ili što god, 532 00:28:23,000 --> 00:28:26,000 i jednom sam samo registrirani je ovaj događaj nazvao Touch Up Inside, 533 00:28:26,000 --> 00:28:29,000 i to kaže da će, čim mi je prst dolazi off gumb 534 00:28:29,000 --> 00:28:32,000 taj događaj ide na vatru, i to je upravo ono što se upravo dogodilo. 535 00:28:32,000 --> 00:28:36,000 To je vrsta zadani gumb pritisnut događaja. 536 00:28:36,000 --> 00:28:39,000 >> Sva pitanja do sada? 537 00:28:39,000 --> 00:28:43,000 Ok, to je kako možemo početi spojiti se stvari u našem kodu 538 00:28:43,000 --> 00:28:46,000 u stvari unutar našeg sučelja. 539 00:28:46,000 --> 00:28:49,000 Zapamtite prva stvar koju smo morali napraviti je pronaći kod, 540 00:28:49,000 --> 00:28:54,000 i onda smo poslali gore sučelje koda, 541 00:28:54,000 --> 00:28:57,000 i tu je naš prvi app. 542 00:28:57,000 --> 00:29:00,000 Dobro, to je stvarno cool, a mi smo stvorili ovu tipku. 543 00:29:00,000 --> 00:29:03,000 Što ako mi ne želite imati stvoriti hrpa svojstava 544 00:29:03,000 --> 00:29:05,000 predstavlja ove tipke? 545 00:29:05,000 --> 00:29:08,000 Na primjer, u Tic Tac Toe imam devet tipke, 546 00:29:08,000 --> 00:29:11,000 i to bi bilo super, super neugodno morati povući i ispustiti 9 puta 547 00:29:11,000 --> 00:29:14,000 ili ako sam morao napraviti Tic Tac Toe sa 81, umjesto od 9 548 00:29:14,000 --> 00:29:17,000 a ja sam morao povući i ispustiti 81 puta, a to je hrom. 549 00:29:17,000 --> 00:29:20,000 Što možemo učiniti umjesto toga je mnogo kao HTML 550 00:29:20,000 --> 00:29:23,000 kada smo imali stvari poput osobne iskaznice i imena i možemo tražiti stvari 551 00:29:23,000 --> 00:29:27,000 njihov ID, tu je sličan pojam u iOS naziva oznake. 552 00:29:27,000 --> 00:29:31,000 >> Oznaka je jednostavno jedinstvena brojčana oznaka za komponente. 553 00:29:31,000 --> 00:29:34,000 Ako kažem to ima oznaku 0, na primjer, 554 00:29:34,000 --> 00:29:38,000 ako sam stvoriti gumb i dati mu oznaku 0, pa ćemo vidjeti kako to učiniti u samo sekundu, 555 00:29:38,000 --> 00:29:41,000 ako želim dobiti taj gumb sam jednostavno mogu reći želim pozvati 556 00:29:41,000 --> 00:29:45,000 the viewWithTag način na objekt ovamo, 557 00:29:45,000 --> 00:29:48,000 self.view, koji predstavlja trenutni zaslon, na primjer. 558 00:29:48,000 --> 00:29:53,000 Ako sam nazvati taj viewWithTag metodu, ja ću se povući gumb s oznakom 0. 559 00:29:53,000 --> 00:29:58,000 Ajmo pogledati ovo izgradnjom Tic Tac Toe. 560 00:29:58,000 --> 00:30:01,000 Prvo, ovo je moja knjiga snimanja. 561 00:30:01,000 --> 00:30:05,000 Ja sam stvorio te 10 UI tipke. 562 00:30:05,000 --> 00:30:07,000 Obavijest oni su svi iste veličine. 563 00:30:07,000 --> 00:30:11,000 Ako sam kliknite na jednu od tih i ja vratiti ovdje na ovoj desnoj strani 564 00:30:11,000 --> 00:30:15,000 vidjet ćete da prilagoditi font ovdje, pa sam napravio font malo veći, 565 00:30:15,000 --> 00:30:19,000 ali ono što sam i učinio je sam postaviti ovu oznaku. 566 00:30:19,000 --> 00:30:23,000 Rekao sam da to ima oznaku 1, a to je vrh lijevo. 567 00:30:23,000 --> 00:30:26,000 >> Sada, ako sam pritisnite drugi gumb, kao što je ovaj drugi jedan ovdje, 568 00:30:26,000 --> 00:30:29,000 Sada ćete vidjeti da je moja oznaka je dva. 569 00:30:29,000 --> 00:30:32,000 Svaki od tih tipki samo ima jedinstvenu oznaku, 570 00:30:32,000 --> 00:30:35,000 pa to je kasnije kako ću početi interakcije 571 00:30:35,000 --> 00:30:38,000 s mojom aplikacijom. 572 00:30:38,000 --> 00:30:40,000 To je sve unutar jednog pogled kontroler, 573 00:30:40,000 --> 00:30:42,000 ali ovdje je ono što imamo. 574 00:30:42,000 --> 00:30:44,000 Imamo tri svojstva ovdje. 575 00:30:44,000 --> 00:30:49,000 Prvi i zadnji će predstavljati stanje mog odbora. 576 00:30:49,000 --> 00:30:53,000 Uglavnom ovo prvo je niz predstavlja kojima XS i Os su. 577 00:30:53,000 --> 00:30:57,000 Ovaj drugi ovdje nam govori čiji red je. 578 00:30:57,000 --> 00:31:01,000 Primijetit ćete da imam i te stvari ovdje. 579 00:31:01,000 --> 00:31:05,000 Prije kad smo proglasili svojstva smo im dali ime i tip. 580 00:31:05,000 --> 00:31:08,000 Također možemo im dati neke dodatne informacije ovdje. 581 00:31:08,000 --> 00:31:11,000 Ovaj prvi kaže nonatomic, i što to govori 582 00:31:11,000 --> 00:31:16,000 je u osnovi samo jedna stvar će ikada biti pokušavate pristupiti ovu varijablu na vrijeme. 583 00:31:16,000 --> 00:31:19,000 Ti bi mogao učiniti više složenih aplikacija koje su multi-navojem, 584 00:31:19,000 --> 00:31:22,000 pa natrag u Scratch imali smo različite teme, 585 00:31:22,000 --> 00:31:25,000 i različiti duhovi mogu raditi različite stvari u isto vrijeme. 586 00:31:25,000 --> 00:31:29,000 >> Ako to nije slučaj, koji se ne nalazi u svemu što ćemo biti obličje at, 587 00:31:29,000 --> 00:31:33,000 ako kažemo nonatomic to zapravo događa da bi se stvari malo brže. 588 00:31:33,000 --> 00:31:37,000 Također imamo ovu stvar zvanu dodijeli, jak, ili je slaba. 589 00:31:37,000 --> 00:31:40,000 Ovo dodijeliti samo kaže da je to standardni tip. 590 00:31:40,000 --> 00:31:43,000 To nije predmet ili pokazivač, jer to je samo bool, 591 00:31:43,000 --> 00:31:46,000 tako bool je izgrađen u Objective-C. 592 00:31:46,000 --> 00:31:49,000 To, kaže, ne pokušati učiniti ništa fantazija s pokazivačima ovdje. 593 00:31:49,000 --> 00:31:51,000 To je redoviti djelitelj stari. 594 00:31:51,000 --> 00:31:54,000 Jaka i slaba, to slaba kaže da je zapravo 595 00:31:54,000 --> 00:31:57,000 Želim da se to upućuje na nešto u prikazu regulatora. 596 00:31:57,000 --> 00:32:00,000 Neću da se zapravo izdvojiti ili init to sam. 597 00:32:00,000 --> 00:32:04,000 Sučelje graditelj, kad sam pokrenuti aplikaciju, koja će nositi svu tu inicijalizacije. 598 00:32:04,000 --> 00:32:07,000 Ako kažem slabi, da kaže netko drugi će biti stvaranje ovo. 599 00:32:07,000 --> 00:32:09,000 Ako kažem jaka, to govori da ću biti jedan 600 00:32:09,000 --> 00:32:12,000 da je stvaranje ovog odbora objekt, 601 00:32:12,000 --> 00:32:14,000 pa ovdje imam još neke metode ovdje, 602 00:32:14,000 --> 00:32:18,000 Primjerice, akcija za kada nova igra se pritisne tipka, 603 00:32:18,000 --> 00:32:20,000 akcija za kada bilo koja od ostalih gumba se pritisne, 604 00:32:20,000 --> 00:32:23,000 i et cetera. 605 00:32:23,000 --> 00:32:26,000 >> Nećemo dobiti u previše logike Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 iako je to vrlo uzbudljivo, ali ajmo pogledati 607 00:32:30,000 --> 00:32:33,000 neke od stvari koje možemo učiniti unutar iOS. 608 00:32:33,000 --> 00:32:35,000 Ova nova igra metoda će dobiti otkaz 609 00:32:35,000 --> 00:32:37,000 kad sam pritisnite tipku novu igru. 610 00:32:37,000 --> 00:32:41,000 Za kuka da se ja jednostavno doći do moje scenarija. 611 00:32:41,000 --> 00:32:43,000 Ja kliknuo na novoj igri. 612 00:32:43,000 --> 00:32:47,000 Ako dođem ovamo na desno vidim da 613 00:32:47,000 --> 00:32:50,000 Touch Up Inside je priključena na newGame metodom. 614 00:32:50,000 --> 00:32:53,000 To je razlog zašto se to događa s dobiti otkaz. 615 00:32:53,000 --> 00:32:56,000 The newGame način će se napraviti neki set up. 616 00:32:56,000 --> 00:32:59,000 To će reći želim vam da jasno stanje na ploči. 617 00:32:59,000 --> 00:33:01,000 To je lijepo metoda na promjenjiv polja. 618 00:33:01,000 --> 00:33:03,000 To će reći da je sada X red, 619 00:33:03,000 --> 00:33:07,000 i sad ću iskoristiti ovu viewWithTag stvar. 620 00:33:07,000 --> 00:33:11,000 >> Znam da su moji gumbi imaju oznake 1-9, 621 00:33:11,000 --> 00:33:13,000 i to je nešto što sam proizvoljno odabrao. 622 00:33:13,000 --> 00:33:15,000 Ako želim postaviti tekst svakog gumba biti prazna 623 00:33:15,000 --> 00:33:17,000 jer sam tek počeo novu igru, a ja ne želim da itko 624 00:33:17,000 --> 00:33:20,000 XS ili OS da se ostavi preko mogu to učiniti. 625 00:33:20,000 --> 00:33:24,000 Ja mogu reći hoću pogled s oznakom, 1, 2, 3, 4 et cetera. 626 00:33:24,000 --> 00:33:27,000 To će povući drugi gumb svaki put. 627 00:33:27,000 --> 00:33:30,000 Ovdje ću ga baci na UIButton. 628 00:33:30,000 --> 00:33:33,000 Baš kao što smo mogli baciti Ints da pliva i obrnuto 629 00:33:33,000 --> 00:33:37,000 to kaže da ja želim da se baci to na UIButton. 630 00:33:37,000 --> 00:33:40,000 To znači da tip to će biti UIButton * 631 00:33:40,000 --> 00:33:43,000 jer upućuje, ali ne brinite, oni nisu zastrašujuće više. 632 00:33:43,000 --> 00:33:47,000 >> Jednom sam ovaj gumb ću pozvati metodu na njega. 633 00:33:47,000 --> 00:33:50,000 Ova metoda se zove setTitle forState, i tako to kaže 634 00:33:50,000 --> 00:33:53,000 Želim postaviti tekst gumba biti prazan string, 635 00:33:53,000 --> 00:33:57,000 i ja želim da bude prazan string kada to nije pritisnuta. 636 00:33:57,000 --> 00:34:01,000 Ako sam koristeći ovu metodu, ja mogu promijeniti tekst gumba 637 00:34:01,000 --> 00:34:04,000 čim ga netko udari, ali želimo reći kada tipka samo sjedi tamo 638 00:34:04,000 --> 00:34:07,000 Želim tekst bude prazan. 639 00:34:07,000 --> 00:34:10,000 Konačno, mi ćemo inicijalizirati moju ploču, 640 00:34:10,000 --> 00:34:12,000 a ja ću reći da je sve trenutno na 0, 641 00:34:12,000 --> 00:34:15,000 tako da ova ploča članovi nepromjenljiv je promjenjiv niz, 642 00:34:15,000 --> 00:34:21,000 što znači da se može nazvati addObject metodu i samo 0 unutar nje. 643 00:34:21,000 --> 00:34:23,000 To je ono što se događa kada sam stvoriti novu igru. 644 00:34:23,000 --> 00:34:25,000 >> Idemo pogledati još jedan. 645 00:34:25,000 --> 00:34:28,000 Ova metoda je ovdje IBAction da će se pritisne 646 00:34:28,000 --> 00:34:31,000 svaki put kada jedan od tih kvadrata se pritisne. 647 00:34:31,000 --> 00:34:33,000 Sada imamo neke Toe Tic Tac logika ovdje. 648 00:34:33,000 --> 00:34:36,000 Mi shvatiti čiji red je, 649 00:34:36,000 --> 00:34:39,000 i na temelju toga mi ili postaviti X ili O, 650 00:34:39,000 --> 00:34:43,000 ali smo primijetiti da smo ponovno korištenje ovaj isti događaj rukovatelj 651 00:34:43,000 --> 00:34:45,000 za svaki jednoj od tih tipki. 652 00:34:45,000 --> 00:34:49,000 To znači da ne moram metodu gornjem lijevom tipkom, 653 00:34:49,000 --> 00:34:52,000 različite metode za gumb donjem desnom, iako sam mogao imati učinio. 654 00:34:52,000 --> 00:34:54,000 To stvarno ne bi bilo dobar dizajn. 655 00:34:54,000 --> 00:34:57,000 Što ja radim ovdje je zapravo sam ću odrediti 656 00:34:57,000 --> 00:35:00,000 što je oznaka na gumbu koji je pritisnut je. 657 00:35:00,000 --> 00:35:04,000 Možete primijetiti da je ova igra metoda uzima jedan argument. 658 00:35:04,000 --> 00:35:07,000 To se zove pošiljatelja, a što pošiljatelj je pošiljatelj će 659 00:35:07,000 --> 00:35:10,000 predstavljaju upravo ono što je poduzela akciju na. 660 00:35:10,000 --> 00:35:15,000 Ako sam pritisnite gumb, to pošiljatelj će biti da UIButton 661 00:35:15,000 --> 00:35:18,000 da sam zapravo pritisnuli, pa to znači da je UIButton 662 00:35:18,000 --> 00:35:20,000 ima oznaku jer sam stvorio oznaku. 663 00:35:20,000 --> 00:35:23,000 >> Ako želim da se na oznaku ja jednostavno mogu reći 664 00:35:23,000 --> 00:35:26,000 Želim oznaku od pošiljatelja, 665 00:35:26,000 --> 00:35:28,000 i opet, samo sam ga lijevani na UIButton. 666 00:35:28,000 --> 00:35:32,000 Ja znam da je pošiljatelj će biti UIButton. 667 00:35:32,000 --> 00:35:34,000 To ne mora uvijek biti UIButton. 668 00:35:34,000 --> 00:35:36,000 Mogao bih, na primjer, registrirajte isti rukovatelj događaja 669 00:35:36,000 --> 00:35:38,000  za jedan gumb, jedna za klizač. 670 00:35:38,000 --> 00:35:40,000 U ovom slučaju, znam da su svi gumbi, pa ću reći 671 00:35:40,000 --> 00:35:43,000 Želim da ovo bude gumb, a zatim mogu dobiti oznaku, 672 00:35:43,000 --> 00:35:48,000 i od krpa ja sada znam gdje sam unutar uprave. 673 00:35:48,000 --> 00:35:51,000 Tada sam jednostavno možete postaviti bilo X ili O, može okrenuti okrenuti, 674 00:35:51,000 --> 00:35:54,000 Provjerite tko je osvojio, et cetera. 675 00:35:54,000 --> 00:35:59,000 >> Sva pitanja na ovo do sada? 676 00:35:59,000 --> 00:36:02,000 Ok, sve kod smo objavili online-ne želimo da se u previše 677 00:36:02,000 --> 00:36:06,000 od Tic Tac Toe logike, ali sada možete vidjeti da je stvarno 678 00:36:06,000 --> 00:36:09,000 Svi mi radimo je da smo petlje nad ovom polju, 679 00:36:09,000 --> 00:36:13,000 pa imamo par za petlje ovdje, a mi smo samo usporedbom vidjeti 680 00:36:13,000 --> 00:36:18,000 mi imamo utakmicu u svim redovima, utakmica u stupcu ili nešto slično. 681 00:36:18,000 --> 00:36:21,000 Da zapravo pokrenuti ovu aplikaciju, ako sam kucnite na jednom od tih tipki 682 00:36:21,000 --> 00:36:24,000 da igra je metoda otkaz, pa to znači da sam samo postaviti 683 00:36:24,000 --> 00:36:31,000 Tipka biti X, tako da sada ova tipka će biti O, i tako dalje, 684 00:36:31,000 --> 00:36:35,000 pa to je kako smo počeli komunicirati s tom jedinstvenom stranice app. 685 00:36:35,000 --> 00:36:38,000 >> Mi ćemo postavljati kôd, pa slobodno prostudirati da, 686 00:36:38,000 --> 00:36:43,000 ali ajmo sada govoriti o nekim aplikacijama koje su više nego samo jednu stranicu. 687 00:36:43,000 --> 00:36:47,000 Kao uzbudljiv kao Tic Tac Toe je, puno aplikacija unutar iOS 688 00:36:47,000 --> 00:36:50,000 su vrsta tih bušilica dolje stvari s višestrukim zaslonima. 689 00:36:50,000 --> 00:36:54,000 Prvi koncept koji ćemo morati razgovarati o su protokoli, 690 00:36:54,000 --> 00:36:57,000 a protokol je jednostavno skup metoda 691 00:36:57,000 --> 00:36:59,000 da li mogu obećati da definiraju. 692 00:36:59,000 --> 00:37:02,000 Ako sam napraviti ovaj novi protokol s dvije metode, ovaj prvi jedan, 693 00:37:02,000 --> 00:37:05,000 ako povratni tip je ništetan, nazvao sam ga foo. 694 00:37:05,000 --> 00:37:07,000 Potrebno nema argumente. Imam još jedan način. 695 00:37:07,000 --> 00:37:11,000 To vraća int. Zvao sam ga zabranili, i to traje jedan argument. 696 00:37:11,000 --> 00:37:14,000 Sve ovo je protokol koji se zove SomeProtocol ovdje, 697 00:37:14,000 --> 00:37:19,000 ovo je set stvari koje netko može provesti. 698 00:37:19,000 --> 00:37:22,000 Nisam unutar ovog protokola je rekao ono što foo radi. 699 00:37:22,000 --> 00:37:26,000 Umjesto toga, ja sam samo rekao da bi mogao definirati foo ako želite. 700 00:37:26,000 --> 00:37:30,000 Ako sam stvaranje prikaza kontroler ili stvaranje razred 701 00:37:30,000 --> 00:37:33,000 Ja mogu unutar tog razreda obećanje da će provesti 702 00:37:33,000 --> 00:37:40,000 neke od tih metoda, tako da za primjer, ako kažem 703 00:37:40,000 --> 00:37:43,000 ovo sada kaže da izmišljam obećanje za vas da unutar 704 00:37:43,000 --> 00:37:50,000 ove klase pogled kontroler ću imati definicije za oba foo i bar. 705 00:37:50,000 --> 00:37:52,000 >> Zašto je to korisno? 706 00:37:52,000 --> 00:37:55,000 Puno komponenti unutar od iOS iskoristiti ovu 707 00:37:55,000 --> 00:37:58,000 dizajn uzorak zove izaslanstvo, a što delegacija kaže 708 00:37:58,000 --> 00:38:01,000 je da, na primjer, ako imam tekstualni okvir 709 00:38:01,000 --> 00:38:04,000 a tu su i neki događaji koji bi mogli biti registrirani unutar mog tekstualnog okvira, 710 00:38:04,000 --> 00:38:07,000 nego stvaranje zasebne događaje što mogu učiniti je što mogu reći 711 00:38:07,000 --> 00:38:10,000 delegat ovog tekstualni okvir će biti neki objekt. 712 00:38:10,000 --> 00:38:13,000 Kad kažem da je to delegat sada to znači da 713 00:38:13,000 --> 00:38:16,000 kad neki događaj koji bi bio ispaljen u tekstualni okvir 714 00:38:16,000 --> 00:38:18,000 umjesto da se registrirate ga ili bilo što slično 715 00:38:18,000 --> 00:38:21,000 to je samo ide na poziv način na delegata. 716 00:38:21,000 --> 00:38:24,000 Na primjer, unutar mojeg tekstualnog okvira Imam metodu za kad sam pritisnite 717 00:38:24,000 --> 00:38:27,000 da obavlja gumb u donjem desnom kutu, 718 00:38:27,000 --> 00:38:30,000 i tako nego Registracijom događaj rukovatelj što mogu reći je 719 00:38:30,000 --> 00:38:34,000 tekstualni okvir, ovdje je objekt koji želim pozvati metodu na 720 00:38:34,000 --> 00:38:37,000 Svaki put kad netko pritisne gumb Gotovo, 721 00:38:37,000 --> 00:38:40,000 a to znači da je taj objekt mora provesti neke protokol 722 00:38:40,000 --> 00:38:45,000 koji kaže Obećavam da definira tu učinio gumb akciju, 723 00:38:45,000 --> 00:38:47,000 jer ako on ne definira tu metodu i pritisnite Done, 724 00:38:47,000 --> 00:38:49,000 onda će to biti zbunjujuće. 725 00:38:49,000 --> 00:38:55,000 >> Idemo pogledati primjer. 726 00:38:55,000 --> 00:38:58,000 Ovdje sam jednostavno imati jedan tekstualni okvir, 727 00:38:58,000 --> 00:39:04,000 i jedna od karakteristika ovog tekstualnog okvira ovdje na ovoj desnoj strani je delegat. 728 00:39:04,000 --> 00:39:06,000 Ovo je svojstvo klasi. 729 00:39:06,000 --> 00:39:09,000 Ono što sam učinio ovdje sam kontrolirati kliknuo, i ja povući iz ove točke ovamo 730 00:39:09,000 --> 00:39:13,000 za pogled kontroler, i da kaže sada izaslanika ovaj tekstni okvir 731 00:39:13,000 --> 00:39:18,000 će biti pogled kontroler. 732 00:39:18,000 --> 00:39:20,000 To znači da kada neke akcije dogoditi, nego Registracijom 733 00:39:20,000 --> 00:39:25,000 odvojena događaja rukuju želim vam da ih poslati delegata. 734 00:39:25,000 --> 00:39:28,000 Sada ćemo pogledati moj pogled kontroler. 735 00:39:28,000 --> 00:39:32,000 Unutar. H datoteku sam napravio obećanje. 736 00:39:32,000 --> 00:39:36,000 Ja sam obećao da će provesti neke metode unutar ovog protokola 737 00:39:36,000 --> 00:39:38,000 zove UITextFieldDelegate, i opet, 738 00:39:38,000 --> 00:39:42,000 ovo je samo neki popis nekih stvari koje mogu izabrati za provedbu. 739 00:39:42,000 --> 00:39:46,000 >> Ako sam došao ovdje u mom. M. datoteku, sam provesti jedan takav način. 740 00:39:46,000 --> 00:39:49,000 Zvao sam ga textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 jer to je ono što je nazvao unutar protokola. 742 00:39:52,000 --> 00:39:57,000 I sad kad sam pritisnite gumb Gotovo unutrašnjost to polje 743 00:39:57,000 --> 00:40:00,000 to je ono što se događa da se zove, pa nisam registrirajte događaj rukovatelj. 744 00:40:00,000 --> 00:40:03,000 Ja spojen izaslanika, a kad je ovaj događaj je ispalio 745 00:40:03,000 --> 00:40:08,000 ovo je metoda koja će se pod nazivom, pa ako dođem ovamo na moj scenarija i pokrenuti ga- 746 00:40:08,000 --> 00:40:11,000 dok da je utovar možemo vidjeti što je to čini. 747 00:40:11,000 --> 00:40:13,000 Na mom ekranu imam dvije stvari. 748 00:40:13,000 --> 00:40:16,000 Imam ovaj tekst polje, a ja imam tu naljepnicu. 749 00:40:16,000 --> 00:40:19,000 Ja sam jednostavno govoreći Želim tekst ove oznake 750 00:40:19,000 --> 00:40:23,000 biti jednaka bez obzira korisnik upisao u unutrašnjosti tekstnom polju. 751 00:40:23,000 --> 00:40:26,000 Ovaj sljedeći redak ovdje je jednostavno način da sam pozivom 752 00:40:26,000 --> 00:40:29,000 na tekstualno polje na kojem piše Želim vam da sakriti tipkovnicu. 753 00:40:29,000 --> 00:40:33,000 Ovo je samo proizvoljna metoda koja Apple je izabrao. 754 00:40:33,000 --> 00:40:38,000 >> Opet, prije nego što sam učinio sve što sam morao spojiti sve gore, tako da sam prvi put došao ovamo. 755 00:40:38,000 --> 00:40:42,000 Od pogleda kontroler sam povucite preko tekstualnog okvira. 756 00:40:42,000 --> 00:40:46,000 Sam pustio, a ja mogu vidjeti da se ovdje mogu napraviti ovu nekretninu tekstualno polje 757 00:40:46,000 --> 00:40:49,000 jer ovdje u prikazu kontroler sam definirao nekretnine 758 00:40:49,000 --> 00:40:52,000 to je IBOutlet teksta polja. 759 00:40:52,000 --> 00:40:55,000 To govori da mogu spojiti ovu nekretninu gore 760 00:40:55,000 --> 00:40:59,000 u tekstualno polje u mom UI. 761 00:40:59,000 --> 00:41:03,000 Sada kada sam kliknite na ovu mogu početi pisati. 762 00:41:03,000 --> 00:41:06,000 Sada, ako sam pritisnite gumb učinio je to ide na vatru 763 00:41:06,000 --> 00:41:08,000 događaj koji sada mogu odgovoriti. 764 00:41:08,000 --> 00:41:10,000 Nema događaja rukuju. 765 00:41:10,000 --> 00:41:13,000 To je kako sam samo reagirao na to učinjeno gumb. 766 00:41:13,000 --> 00:41:15,000 Smisla? 767 00:41:15,000 --> 00:41:20,000 >> Ovo nije dizajn uzorak koji-ne ikada mogli pronaći sebe 768 00:41:20,000 --> 00:41:23,000 kreiranje vlastite protokol, ali samo znam da su neki 769 00:41:23,000 --> 00:41:27,000 različiti iOS komponente registrirati događaje na različite načine. 770 00:41:27,000 --> 00:41:29,000 Tipke, na primjer, koristiti one IBActions. 771 00:41:29,000 --> 00:41:32,000 Tekstualna polja, s druge strane, će koristiti delegate. 772 00:41:32,000 --> 00:41:36,000 Možemo vidjeti i možete gledati sve to do unutrašnjosti dokumentacije. 773 00:41:36,000 --> 00:41:41,000 Usput, tu je zapravo tona UI stvari izgrađen u iOS za vas, 774 00:41:41,000 --> 00:41:46,000 tako na primjer, način na koji sam napravio da kažu učinjeno u donjem desnom kutu 775 00:41:46,000 --> 00:41:48,000 je sam odabrao ovaj tekst polje. 776 00:41:48,000 --> 00:41:50,000 Došao sam ovamo. 777 00:41:50,000 --> 00:41:53,000 Ja svitak dolje malo vratiti ključ, 778 00:41:53,000 --> 00:41:56,000 a ja zapravo mogu napraviti ovo cijela hrpa stvari, kao što ako želim to reći 779 00:41:56,000 --> 00:42:00,000 hitnog poziva umjesto ja mogu učiniti, što je potpuno slučajna, 780 00:42:00,000 --> 00:42:02,000 i ne znam zašto je izgrađen-in hitne gumb, 781 00:42:02,000 --> 00:42:06,000 ali postoje, ona kaže hitne u jako malim slovima. 782 00:42:06,000 --> 00:42:08,000 Tu idete. 783 00:42:08,000 --> 00:42:12,000 >> Definitivno istražiti sve ove različite mogućnosti u iOS. 784 00:42:12,000 --> 00:42:14,000 Sva pitanja o delegatima? 785 00:42:14,000 --> 00:42:18,000 Opet, samo zanimljiv dizajn uzorak koji bi trebali biti svjesni. 786 00:42:18,000 --> 00:42:22,000 Ok, ajmo sljedeći pogledati tablice pregleda. 787 00:42:22,000 --> 00:42:26,000 Tablica pogled je u osnovi da popis stvari koje je sve više mjesta u iOS. 788 00:42:26,000 --> 00:42:29,000 Kada ste flipping kroz sve svoje kontakte, gledaš 789 00:42:29,000 --> 00:42:34,000 postavljanje stranica, a takav popis stvari koje se naziva tablice pogled. 790 00:42:34,000 --> 00:42:37,000 Implementacija tablice pogled na iOS je prilično jednostavna. 791 00:42:37,000 --> 00:42:41,000 Umjesto donošenja klase koji se spušta iz tog UIViewController 792 00:42:41,000 --> 00:42:44,000 kao što smo učinili prije jednostavno trebamo reći nego 793 00:42:44,000 --> 00:42:46,000 sve UIViewController ne želim to učiniti, 794 00:42:46,000 --> 00:42:50,000 Kažem sve UITableViewController ne želim to učiniti, 795 00:42:50,000 --> 00:42:54,000 tako da jednostavno dodaje neke dodatne stvari koje su potpuno učinio za nas. 796 00:42:54,000 --> 00:42:58,000 Moramo učiniti vrlo malo osnovi popuniti praznine unutar stola. 797 00:42:58,000 --> 00:43:02,000 >> Kako bi se prikazali tablicu moram odgovoriti na neka pitanja. 798 00:43:02,000 --> 00:43:06,000 Prvo pitanje moram odgovoriti je koliko dijelovi su u tablici? 799 00:43:06,000 --> 00:43:08,000 Kada ste flipping kroz kontakata app primijetit ćete da je to vrsta 800 00:43:08,000 --> 00:43:12,000 organizaciji Kao, onda imate BS, a imate taj mali sub zaglavlje. 801 00:43:12,000 --> 00:43:14,000 Svaki od tih se zove dio. 802 00:43:14,000 --> 00:43:16,000 Vi svibanj ili svibanj ne treba ti. 803 00:43:16,000 --> 00:43:19,000 Prva stvar koju trebate učiniti je provesti postupak 804 00:43:19,000 --> 00:43:22,000 zove tableView: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 To jednostavno vraća koliko sekcije imate, 806 00:43:25,000 --> 00:43:29,000 tako da bi to mogao reći vratiti jedan ako imate jednu veliku tablicu pogled. 807 00:43:29,000 --> 00:43:33,000 Sljedeće pitanje koje iOS treba znati je koliko redaka imate? 808 00:43:33,000 --> 00:43:36,000 Na primjer, da ste flipping kroz prikazu tablice. 809 00:43:36,000 --> 00:43:39,000 Imate određeni broj pjesama gledaš ili fiksni broj kontakata. 810 00:43:39,000 --> 00:43:41,000 Ako ste mi, naravno, nije da su mnogi, 811 00:43:41,000 --> 00:43:44,000 pa to je kako iOS zna koliko stanica za prikaz. 812 00:43:44,000 --> 00:43:46,000 >> Opet, to bi moglo reći nešto poput povratka 3. 813 00:43:46,000 --> 00:43:49,000 Moj stol pogled ima tri reda. 814 00:43:49,000 --> 00:43:52,000 Konačno, iOS treba znati što svaka stanica izgleda, 815 00:43:52,000 --> 00:43:54,000 tako što se zapravo događa učiniti je nazvati ovu metodu ovdje dolje, 816 00:43:54,000 --> 00:43:57,000 ovo tableView: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 To će se zvati ovu metodu na svaku pojedinu ćeliju unutar vašeg stola. 818 00:44:01,000 --> 00:44:03,000 Kako to znati koliko puta se to nazvati? 819 00:44:03,000 --> 00:44:06,000 Pa, vi to rekao unutar broja redaka u sekciji. 820 00:44:06,000 --> 00:44:08,000 Mi ćemo nazvati ovaj na svakoj od naših stanica, 821 00:44:08,000 --> 00:44:11,000 i unutar toga je mjesto gdje možete zaista učiniti stvari kao što su 822 00:44:11,000 --> 00:44:16,000 postaviti tekst ili vam reći što da se malo plavi gumb na desnoj strani radi. 823 00:44:16,000 --> 00:44:19,000 Uzorak za dobivanje ove stanice, idemo koristiti ovu metodu 824 00:44:19,000 --> 00:44:22,000 zove dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objective-C je zapravo vrlo dobro poznat po smiješnim duljine njihovih metoda imenima, 826 00:44:29,000 --> 00:44:32,000 i to je stvarno lijepo slučaj u točki primjer. 827 00:44:32,000 --> 00:44:37,000 Što je ova metoda radi je to samo kaže želim da mi dati ćeliju. 828 00:44:37,000 --> 00:44:39,000 Samo iOS stvar. 829 00:44:39,000 --> 00:44:41,000 Ako imate nešto poput 100.000 pjesama na vašem iPod 830 00:44:41,000 --> 00:44:45,000 ono što iOS ne želite učiniti je izdvojiti 100.000 stanice, 831 00:44:45,000 --> 00:44:48,000 jer ako si na vrhu popisa, da li vi stvarno trebate alocirati memoriju 832 00:44:48,000 --> 00:44:51,000 za ćeliju koja je 99.000 redaka dolje? 833 00:44:51,000 --> 00:44:55,000 Ne, jer kao što ste listanje možete vrsta izdvojiti kao što ide zajedno. 834 00:44:55,000 --> 00:44:57,000 To je učinio za vas. 835 00:44:57,000 --> 00:44:59,000 Vi ne morate brinuti o svim tim glupim performansi stvari. 836 00:44:59,000 --> 00:45:02,000 Sve što kažu da je nazovete ovu metodu dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 i to kaže, u redu, ako je potrebno da ću stvoriti novu ćeliju za vas. 838 00:45:06,000 --> 00:45:09,000 >> Ali, ako ste na dnu tablice, a već ste izdvojila neke stanice 839 00:45:09,000 --> 00:45:12,000 na vrhu tablice da ste stvarno ne ide trebati uskoro 840 00:45:12,000 --> 00:45:15,000 Ja ću vam dati jedan od onih natrag umjesto dodjele novu, 841 00:45:15,000 --> 00:45:17,000 i tako je to lijepo performanse briga. 842 00:45:17,000 --> 00:45:21,000 Vi ne morate izdvojiti stanicama sebe. 843 00:45:21,000 --> 00:45:23,000 To će vam dati natrag ćeliju. 844 00:45:23,000 --> 00:45:25,000 To će se vratiti na vas mobilni objekt. 845 00:45:25,000 --> 00:45:28,000 Nakon što ste mobilni objekt možete učiniti stvari na njega. 846 00:45:28,000 --> 00:45:32,000 Možete postaviti tekst u ćeliju s ovom objektu zvanom tekst natpisa. 847 00:45:32,000 --> 00:45:36,000 Možete dodati da strelicu na desnoj ili nekom drugom slučajnom stvari 848 00:45:36,000 --> 00:45:41,000 s ovim drugim imovine zove accessoryType, i tako dalje i tako dalje. 849 00:45:41,000 --> 00:45:46,000 >> Idemo pogledati zapravo provedbi tablice pogled sada. 850 00:45:46,000 --> 00:45:49,000 Kad sam stvorio ovaj projekt 851 00:45:49,000 --> 00:45:53,000 nego govori jedan pogled aplikaciju sam zapravo došao ovamo 852 00:45:53,000 --> 00:45:57,000 da gospodar-detaljno primjeni, i tako u osnovi to odgovara mail app 853 00:45:57,000 --> 00:46:01,000 na ipad s tablice pogledom na lijevo i zatim sadržaja na desno. 854 00:46:01,000 --> 00:46:07,000 Na iPod ili iPhone će to odgovarati jednom prikazu tablice. 855 00:46:07,000 --> 00:46:10,000 To je mjesto gdje sam dobio starter kod. 856 00:46:10,000 --> 00:46:13,000 >> Neka prvo pogledati ploču scenarija. 857 00:46:13,000 --> 00:46:15,000 Sve je to učinio za mene, u osnovi stvorio. 858 00:46:15,000 --> 00:46:18,000 Ovaj navigacijski bar mi nije pokazao što je primjer stanica moglo izgledati, 859 00:46:18,000 --> 00:46:22,000 i ja dvostruko kliknuti to promijeniti naslov. 860 00:46:22,000 --> 00:46:25,000 Svi ostali problemi UI mogu nositi tamo. 861 00:46:25,000 --> 00:46:27,000 Datoteka zaglavlja izgleda jako jednostavno. 862 00:46:27,000 --> 00:46:30,000 Umjesto da je ovo UIViewController mi sada reći je to 863 00:46:30,000 --> 00:46:35,000 TableViewController, tako da smo znali da želimo pozvati sve one tablice metode. 864 00:46:35,000 --> 00:46:38,000 Sljedeća Želim stvoriti nekretninu koja će predstavljati 865 00:46:38,000 --> 00:46:40,000 stvari unutar mog stola. 866 00:46:40,000 --> 00:46:43,000 Ovaj stol će se samovoljno prikaz 867 00:46:43,000 --> 00:46:46,000 popis voća, pa moram stvoriti neku niz 868 00:46:46,000 --> 00:46:49,000 u kojem mogu umetnuti voće. 869 00:46:49,000 --> 00:46:52,000 Unutar moje provedbe datoteku prva stvar želim učiniti 870 00:46:52,000 --> 00:46:55,000 je želim da biste bili sigurni da inicijalizirati ovaj niz. 871 00:46:55,000 --> 00:46:58,000 >> Rekao sam alloc init, stvorio moju voćni niz, 872 00:46:58,000 --> 00:47:03,000 i ja sam dodao četiri stvari na njega, jedan od kojih je mnogo više nego kontroverzni druge tri. 873 00:47:03,000 --> 00:47:06,000 I sada imam niz veličine 4. 874 00:47:06,000 --> 00:47:08,000 Mi smo ga trese u CS50. 875 00:47:08,000 --> 00:47:11,000 Ja sada imaju niz od četiri veličine. 876 00:47:11,000 --> 00:47:13,000 Sada ću početi odgovori na ta pitanja, i zapravo, 877 00:47:13,000 --> 00:47:16,000 kad sam stvorio ovu aplikaciju je sve to već učinio za mene. 878 00:47:16,000 --> 00:47:19,000 Nisam imao upisati se broj sekcija u prikazu tablice. 879 00:47:19,000 --> 00:47:22,000 To je već bio tamo, a ja sam popunjavanje praznine. 880 00:47:22,000 --> 00:47:24,000 Koliko sekcije imam? 881 00:47:24,000 --> 00:47:26,000 Jedan. Sve učinjeno. 882 00:47:26,000 --> 00:47:28,000 Koliko redaka imam? 883 00:47:28,000 --> 00:47:31,000 Pa, imam jedan redak za svaku voća, pa to count 884 00:47:31,000 --> 00:47:34,000 je vlasništvo bilo niz koji kaže kako je velika je to? 885 00:47:34,000 --> 00:47:36,000 To je koliko redaka imam. 886 00:47:36,000 --> 00:47:42,000 Konačno, moram reći ono što ne svaka stanica izgledati? 887 00:47:42,000 --> 00:47:46,000 Ja ću reći dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Opet, to je već bio napisan za mene. 889 00:47:48,000 --> 00:47:51,000 Nisam to morati učiniti ja osobno, i želim se vratiti 890 00:47:51,000 --> 00:47:54,000 ova stanica na ovoj lokaciji. 891 00:47:54,000 --> 00:47:57,000 Sjetite se da smo zovete ovaj isti način na svakom jednoj ćeliji, 892 00:47:57,000 --> 00:48:01,000 i taj argument ovdje, ovo indexPath argument, 893 00:48:01,000 --> 00:48:03,000 kaže ono red sam u. 894 00:48:03,000 --> 00:48:05,000 Ako kažem indexPath.row ovdje dolje 895 00:48:05,000 --> 00:48:09,000 to će biti 0, onda će to biti jedan, onda će to biti dva, i to je tako znam 896 00:48:09,000 --> 00:48:11,000 ono stanica Ja sam trenutno prikazuje. 897 00:48:11,000 --> 00:48:15,000 Želim postaviti tekst u ćeliju koristeći ovu textLabel nekretnine 898 00:48:15,000 --> 00:48:19,000 ići u mojoj voća niz i dobiti 899 00:48:19,000 --> 00:48:21,000 objekt odgovara svakom redu. 900 00:48:21,000 --> 00:48:24,000 Ako je to niz, ja sam sada postavljanjem 901 00:48:24,000 --> 00:48:28,000 tekst nekretnina u niz. 902 00:48:28,000 --> 00:48:30,000 Ja mogu napraviti jednu drugu stvar. 903 00:48:30,000 --> 00:48:32,000 Ja također mogu prijaviti događaj rukovatelj na svaku od stanica, 904 00:48:32,000 --> 00:48:35,000 pa kad sam dotaknite svaku od tih stanica 905 00:48:35,000 --> 00:48:39,000 ovo didSelectRowAtIndexPath, ovo će biti pozvan za mene, 906 00:48:39,000 --> 00:48:42,000 tako jednostavno definirajući to ja sada mogu nositi ono što se događa 907 00:48:42,000 --> 00:48:46,000 kad dodirnete ćeliju, a opet, mi prolazi u kojima stanica je odvodom 908 00:48:46,000 --> 00:48:50,000 tako da možemo ponovno ovu istu događaj rukovatelj za sve naše stanice. 909 00:48:50,000 --> 00:48:53,000 >> Opet, to je nešto iOS radi za mene. 910 00:48:53,000 --> 00:48:55,000 Ajmo prikaz drugog dosadnih popup 911 00:48:55,000 --> 00:48:59,000 da jednostavno kaže da bere nešto gdje da nešto 912 00:48:59,000 --> 00:49:04,000 će biti red objekt. 913 00:49:04,000 --> 00:49:10,000 Kad sam pokrenuti ovaj, ja ću imati ovu lijepu tablicu pogled 914 00:49:10,000 --> 00:49:14,000 s jednim redom za svaku od tih plodova, a ako sam dotaknite jedan 915 00:49:14,000 --> 00:49:16,000 to mi govori što se dogodilo. 916 00:49:16,000 --> 00:49:21,000 Smisla? 917 00:49:21,000 --> 00:49:24,000 Idemo graditi malo složeniji od app, 918 00:49:24,000 --> 00:49:28,000 koliko klikom ste odabrali rajčice je. 919 00:49:28,000 --> 00:49:31,000 Lijepo dio o storyboarda 920 00:49:31,000 --> 00:49:35,000 se to ne samo da će nam pomoći da dizajn ekrane pojedinačno, 921 00:49:35,000 --> 00:49:38,000 također će nam pomoći povezati cijelu našu aplikaciju, 922 00:49:38,000 --> 00:49:42,000 tako da konačna app ćemo biti Zgrada je ovo lijepo sportsko čitač vijesti, 923 00:49:42,000 --> 00:49:45,000 i tako to ide da imaju više ekrana, pa sam zapravo može predstavljati 924 00:49:45,000 --> 00:49:48,000 svaki od tih više ekrana na scenarija, 925 00:49:48,000 --> 00:49:52,000 i ja mogu zumirati i vidjeti moju aplikaciju iz visokoj razini. 926 00:49:52,000 --> 00:49:55,000 >> Da bi se stvorili novi element unutar mog scenarija 927 00:49:55,000 --> 00:49:59,000 to je stvarno jednostavan unutar sučelja Builder. 928 00:49:59,000 --> 00:50:01,000 Ako želim dodati još jedan zaslon za to, na primjer, 929 00:50:01,000 --> 00:50:06,000 Prvi put sam se udaljili s prikliještiti zoomom da Apple voli toliko, 930 00:50:06,000 --> 00:50:09,000 i ovdje dolje prije nego što sam potražiti na gumb 931 00:50:09,000 --> 00:50:12,000 i ja povucite i ispustite gumb 932 00:50:12,000 --> 00:50:15,000 ako želim stvoriti novi ekran sam zapravo može samo povucite i ispustite 933 00:50:15,000 --> 00:50:19,000 cijeli kontroler pogled, pa ako sam pokupiti ovo, povucite ga ovamo, 934 00:50:19,000 --> 00:50:23,000 hej, postoji još jedan zaslon, pa sada koriste taj isti scenarija datoteku 935 00:50:23,000 --> 00:50:26,000 Ja mogu imati sve ekranima unutar moje app, a ja mogu smanjivanje 936 00:50:26,000 --> 00:50:28,000 i vidjeti kako su u interakciji. 937 00:50:28,000 --> 00:50:32,000 To neće komunicirati gostiju. 938 00:50:32,000 --> 00:50:36,000 Način na koji ti dva ekrani interakciju je definiranje odnosa. 939 00:50:36,000 --> 00:50:39,000 Vi zapravo možete reći ovaj zaslon, kada pritisnete ovu tipku, 940 00:50:39,000 --> 00:50:42,000 Želim vam da slajd preko ovog novog zaslonu. 941 00:50:42,000 --> 00:50:44,000 To znači da je ova vrsta odnosa između 942 00:50:44,000 --> 00:50:46,000  prvi zaslon i drugi zaslon. 943 00:50:46,000 --> 00:50:49,000 Imat ćete osnovi strelicu iz tog gumba na drugom zaslonu 944 00:50:49,000 --> 00:50:53,000 rekavši da kada pritisnete ovu tipku da tamo želim ići. 945 00:50:53,000 --> 00:50:57,000 Baš kao što smo nadziru kliknuli i dovukao do definirati one poslovnice 946 00:50:57,000 --> 00:51:01,000 idemo napraviti istu stvar za definiranje ove segues. 947 00:51:01,000 --> 00:51:05,000 >> Vidjet ćemo primjer za to, i prije nego što smo zapravo prijelaz 948 00:51:05,000 --> 00:51:08,000 iz jednog zaslona na drugi iOS je lijepo dovoljno pozvati ovu metodu 949 00:51:08,000 --> 00:51:11,000 zove prepareForSegue, a to je mjesto gdje možemo početi 950 00:51:11,000 --> 00:51:14,000 slanje podataka iz jedne aplikacije u drugu. 951 00:51:14,000 --> 00:51:17,000 U primjeru smo o gledati na to u osnovi će omogućiti nam 952 00:51:17,000 --> 00:51:20,000 za filtriranje bejzbol timova lige i podjelama. 953 00:51:20,000 --> 00:51:23,000 Kad sam odabrati ligu, na primjer, želim da tranzicija 954 00:51:23,000 --> 00:51:25,000 za moj sljedeći ekran gdje mogu prikazati sve podjela 955 00:51:25,000 --> 00:51:27,000 u toj ligi ili svih različitih timova. 956 00:51:27,000 --> 00:51:31,000 Trebam poslati na tom ekranu ono teams trebali prikazati. 957 00:51:31,000 --> 00:51:35,000 Za to ću iskoristiti ovu metodu ovdje. 958 00:51:35,000 --> 00:51:39,000 >> Konačno, samo slučajni točka na iOS. 959 00:51:39,000 --> 00:51:41,000 Ako želite pohranu podataka tu je ta stvar, zvana osnovnih podataka, 960 00:51:41,000 --> 00:51:44,000 koja je zapravo vrsta komplicirano raditi. 961 00:51:44,000 --> 00:51:47,000 Također možete koristiti SQL za pohranu podataka, 962 00:51:47,000 --> 00:51:51,000 koji, opet, je lijepo, ali nekako na više komplicirano strani raditi, 963 00:51:51,000 --> 00:51:55,000 ali iOS također podržava ove stvarno cool stvari zove imovine popisi, 964 00:51:55,000 --> 00:52:00,000 i nekretnina popis je samo datoteka koja predstavlja ključne parova. 965 00:52:00,000 --> 00:52:03,000 Možete definirati popis tipki, a vi reći da je ovo ključan će biti niz. 966 00:52:03,000 --> 00:52:06,000 Ovaj ključ će biti niz, i, zapravo, sve što možete učiniti 967 00:52:06,000 --> 00:52:10,000 u JSON možete učiniti unutar jednog popisa svojstava, 968 00:52:10,000 --> 00:52:14,000 pa ovo je stvarno lijepo nam omogućuje da rade s nekim podacima. 969 00:52:14,000 --> 00:52:18,000 Na primjer, ja imam ovu Teams.plist da sam stvorio. 970 00:52:18,000 --> 00:52:22,000 Napravio sam novu PLIST datoteku, a ja mogu izbušiti dolje. 971 00:52:22,000 --> 00:52:26,000 To je rječnik, to je rječnik, to su žice, 972 00:52:26,000 --> 00:52:30,000 i tako je to lijepo grafički prikaz JSON dokumenta 973 00:52:30,000 --> 00:52:33,000 ili samo set ključnih vrijednosti parova, 974 00:52:33,000 --> 00:52:37,000 pa to je podatak da ću raditi s unutarnje strane moje app. 975 00:52:37,000 --> 00:52:40,000 >> Idemo prvi došao ovamo. Imamo puno više datoteka sada. 976 00:52:40,000 --> 00:52:44,000 No, neka prvi došao ovamo na ploču scenarija. 977 00:52:44,000 --> 00:52:48,000 Storyboard ovdje, ako ja mogu zumiranje- 978 00:52:48,000 --> 00:52:51,000 sada možemo vidjeti da je to tijek mog app. 979 00:52:51,000 --> 00:52:53,000 Prvi put sam ću početi na ovom zaslonu. 980 00:52:53,000 --> 00:52:55,000 Idem drill down ovom zaslonu, 981 00:52:55,000 --> 00:52:58,000 i ja ću izbušiti dolje na ovaj zaslon, a možemo vidjeti da se ovdje, ako sam vrsta 982 00:52:58,000 --> 00:53:04,000 premjestiti jednu od njih oko koje smo ove strelice ide odavde do ovdje, 983 00:53:04,000 --> 00:53:08,000 i način na koji sam definirati taj strelicu je ako sam povećavanje malo, 984 00:53:08,000 --> 00:53:12,000 i ako sam došao preko ovaj prikaz regulatora, 985 00:53:12,000 --> 00:53:16,000 i ovdje je mobitel, a želim reći da kad dodirnete ćeliju 986 00:53:16,000 --> 00:53:18,000 Želim vam da slajd na drugu zaslonu. 987 00:53:18,000 --> 00:53:21,000 Ja jednostavno držite kontrolu, 988 00:53:21,000 --> 00:53:26,000 pomicanje na malo, držite kontrolu, povucite ćeliju više i pustiti. 989 00:53:26,000 --> 00:53:30,000 >> I ovdje možemo reći ono što je prijelaz koji želite koristiti? 990 00:53:30,000 --> 00:53:32,000 Želite li koristiti taj slide stvar koja se zove guranje? 991 00:53:32,000 --> 00:53:34,000 Želite li da slajd s dna? 992 00:53:34,000 --> 00:53:36,000 To se zove modalna. 993 00:53:36,000 --> 00:53:40,000 I kad sam kliknite na jednu od njih, to će izvući ovu strelicu za mene, 994 00:53:40,000 --> 00:53:44,000 a to znači da sam zapravo rješava ono što se događa kad sam pritisnite ovu tipku grafički. 995 00:53:44,000 --> 00:53:48,000 Nisam pisati bilo koji broj zapravo micati s jednog zaslona na sljedeći jedan. 996 00:53:48,000 --> 00:53:51,000 Ja definirana ovo vizualno unutar sučelja Builder. 997 00:53:51,000 --> 00:53:55,000 Ako sam kliknite na ovu strelicu, možemo vidjeti da sam dao ovu stvar ime. 998 00:53:55,000 --> 00:53:59,000 Zvao sam ga showDivisions, a to je tako da mogu znati 999 00:53:59,000 --> 00:54:03,000 što tranzicija će se uskoro dogoditi, a mi ćemo vidjeti zašto u samo sekundi. 1000 00:54:03,000 --> 00:54:06,000 To je kako sam ožičen različite ekrane u mom app. 1001 00:54:06,000 --> 00:54:09,000 Ako je ovo bila tipka, na primjer, umjesto stol pogled, 1002 00:54:09,000 --> 00:54:11,000 Ja bi mogao kontrolirati kliknite na gumb, povucite preko sljedećem zaslonu, 1003 00:54:11,000 --> 00:54:16,000 a to je kako ja mogu učiniti navigaciju na taj način. 1004 00:54:16,000 --> 00:54:19,000 >> Stvarno brzo, ako dođemo u MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 opet, mi jednostavno idemo definirati popis stvari 1006 00:54:22,000 --> 00:54:26,000 koji će se prikazati u prikazu tablice. 1007 00:54:26,000 --> 00:54:29,000 Ovdje govorim želim da se taj PLIST datoteku, 1008 00:54:29,000 --> 00:54:32,000 i želim vam da ga natrpati u rječniku, 1009 00:54:32,000 --> 00:54:35,000 i nakon što su taj rječnik, ja ću odgovoriti na ta ista pitanja opet. 1010 00:54:35,000 --> 00:54:37,000 Ovdje je broj odjeljaka. 1011 00:54:37,000 --> 00:54:41,000 Jedan od njih, postoji jedan redak za svaku ligu, a tekst svakoj ćeliji 1012 00:54:41,000 --> 00:54:46,000 mora biti ili prvi, prva liga, druga liga, i tako dalje. 1013 00:54:46,000 --> 00:54:51,000 Konačno, ja ću koristiti ovu metodu da smo upravo vidio zove prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 i to je način da će dobiti otkaz kad sam kliknite 1015 00:54:54,000 --> 00:54:57,000 na jednom od tih redaka i stoga aktiviranje taj prijelaz 1016 00:54:57,000 --> 00:54:59,000 da sam postavio sa strelice. 1017 00:54:59,000 --> 00:55:02,000 To govori da mogu imati više 1018 00:55:02,000 --> 00:55:05,000 Odnosi s jednog zaslona na drugi. 1019 00:55:05,000 --> 00:55:08,000 Ako imam dvije tipke i svaki gumb vas vodi na drugu zaslonu 1020 00:55:08,000 --> 00:55:10,000 Ja ću imati dvije segues, jedan za svaki gumb. 1021 00:55:10,000 --> 00:55:14,000 Ali to prepareForSegue je, opet, će biti ponovno 1022 00:55:14,000 --> 00:55:17,000 za svaki od različitih odnosa, pa to znači da moram način 1023 00:55:17,000 --> 00:55:21,000 identificiranja ako pritisnete prvi gumb ili pritiskom na drugi gumb. 1024 00:55:21,000 --> 00:55:25,000 >> Sjetite se kada sam dao da segue ime, to showDivisions, 1025 00:55:25,000 --> 00:55:29,000 to je kako ja sada znam da je to segue da je aktiviran. 1026 00:55:29,000 --> 00:55:32,000 Sve što želim učiniti je što želim reći 1027 00:55:32,000 --> 00:55:35,000 Želim shvatiti što sam pogodio, 1028 00:55:35,000 --> 00:55:38,000 i tako bi dobili da, ja mogu reći hoću indexPath za odabrani redak, 1029 00:55:38,000 --> 00:55:42,000 sjećam indexPath samo kaže gdje sam samo kliknuo, 1030 00:55:42,000 --> 00:55:47,000 i onda želim reći želim shvatiti gdje idem. 1031 00:55:47,000 --> 00:55:50,000 Ovo destinationViewController, koji je vlasništvo segue. 1032 00:55:50,000 --> 00:55:53,000 To je zaslon Idem, 1033 00:55:53,000 --> 00:55:56,000 pa znam da je ekran ću se zove DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 jer sam stvorio tu klasu, 1035 00:55:59,000 --> 00:56:02,000 pa sad ako kažem d.divisions 1036 00:56:02,000 --> 00:56:06,000 Ja sam sada postavlja svojstvo pogled kontroler sam o da ide. 1037 00:56:06,000 --> 00:56:10,000 To je, kako sam slati podatke s jednog zaslona na drugi zaslon. 1038 00:56:10,000 --> 00:56:13,000 >> Samo gleda ovaj DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 možete vidjeti da se ovdje u. h datoteci 1040 00:56:16,000 --> 00:56:20,000 tu je da se imovina podjele, i to je ono što sam zapravo sam naseljavanja, 1041 00:56:20,000 --> 00:56:25,000 tako da je kako ja znam da sam prikazujući podjele odgovaraju 1042 00:56:25,000 --> 00:56:28,000 liga da sam kliknuo, i opet, 1043 00:56:28,000 --> 00:56:31,000 stvarna tablica pogled izgleda prilično mnogo isto, samo odgovorite onima 1044 00:56:31,000 --> 00:56:34,000 3 jednostavna pitanja kao i identificiranje 1045 00:56:34,000 --> 00:56:37,000 što se događa kada se premjestiti na sljedeći zaslon. 1046 00:56:37,000 --> 00:56:40,000 Samo par drugih stvari ovdje. 1047 00:56:40,000 --> 00:56:43,000 Možete primijetiti na vrhu da se ovdje umjesto govoreći # include 1048 00:56:43,000 --> 00:56:45,000 Ja sada govorim # uvesti. 1049 00:56:45,000 --> 00:56:47,000 Ovo je samo Objective-C stvar. 1050 00:56:47,000 --> 00:56:52,000 Uvoz je u osnovi ljepše verzija uključuju, 1051 00:56:52,000 --> 00:56:57,000 i za, primjerice, moramo znati što je to klasa, 1052 00:56:57,000 --> 00:57:00,000 tako da ja ne mogu samo reći DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Ako nismo hashtag standardio.c unutar naše. C datoteci 1054 00:57:05,000 --> 00:57:07,000 prevodilac nije imao pojma što printf bio. 1055 00:57:07,000 --> 00:57:12,000 Isto tako, ako ja ne uvesti DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 prevodilac stvarno nema pojma što je DivisionsViewController. 1057 00:57:16,000 --> 00:57:19,000 Samo pazite da unutar svoje različite. M. datoteka koje pobrinite se uvesti 1058 00:57:19,000 --> 00:57:25,000 odgovarajuće. h datoteke, tako da prevodilac ne zna što se događa. 1059 00:57:25,000 --> 00:57:31,000 >> Konačno, ono što Apple u konačnici ne se prikazati neke podatke pomoću web pogled, 1060 00:57:31,000 --> 00:57:35,000 i tako web Pogled je objekt u kojem možete ugraditi 1061 00:57:35,000 --> 00:57:37,000 malo web preglednik unutar svoje aplikacije. 1062 00:57:37,000 --> 00:57:40,000 Sve što trebate učiniti je dostaviti URL web pregledniku 1063 00:57:40,000 --> 00:57:43,000 pa želim ići na mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 a to je kako ja mogu pristupiti početnu stranicu za svaku momčad, 1065 00:57:46,000 --> 00:57:49,000 i tako prolazi u ovom URL 1066 00:57:49,000 --> 00:57:52,000 Pogled web može prikazati ovo za mene, a ja mogu pregledavati okolo, 1067 00:57:52,000 --> 00:58:01,000 i simulator je u uporabi od strane tog jednog. 1068 00:58:01,000 --> 00:58:03,000 Sada je to došao iz mog PLIST. 1069 00:58:03,000 --> 00:58:07,000 Ako sam kliknite ovaj to također došao iz mog PLIST, a to je klizna rukovati 1070 00:58:07,000 --> 00:58:09,000 definiranjem one segues. 1071 00:58:09,000 --> 00:58:12,000 Ja kliknite ovaj i još jedan, 1072 00:58:12,000 --> 00:58:15,000 i sada ovdje je moj UIWebView, pa baš kao da je 1073 00:58:15,000 --> 00:58:19,000 evo web stranice za URL koji sam upravo ugrađen, 1074 00:58:19,000 --> 00:58:21,000 i nisam imala nositi ništa ludo. 1075 00:58:21,000 --> 00:58:24,000 To je kako prikazati web-stranicu. 1076 00:58:24,000 --> 00:58:27,000 Stvari poput ove leđa gumb ovdje su također dali mi 1077 00:58:27,000 --> 00:58:33,000 potpuno besplatno jer sam definirao tih odnosa pomoću segues. 1078 00:58:33,000 --> 00:58:37,000 >> Ima li pitanja? Da. 1079 00:58:37,000 --> 00:58:40,000 [Studentski] Dakle, kada koristite alloc, da nikada ne morate ništa besplatno? 1080 00:58:40,000 --> 00:58:43,000 Točno, kada nazovete alloc i init nemate ga osloboditi. 1081 00:58:43,000 --> 00:58:46,000 IOS će nositi sve to za vas. 1082 00:58:46,000 --> 00:58:51,000 To je prekrasno, a niste nego nikakva pravila. Da. 1083 00:58:51,000 --> 00:58:54,000 [Studentski] Ako ste bili na uključiti više timova koji bi mogli stati na zaslonu, 1084 00:58:54,000 --> 00:58:58,000 će automatski imati scroll opciju, ili je to nešto što vam je potrebno dodati? 1085 00:58:58,000 --> 00:59:01,000 Točno, ako sam imao više timova, na primjer, to bi automatski obrađuju 1086 00:59:01,000 --> 00:59:04,000 pomicanje za mene, i sve performanse zabrinutost 1087 00:59:04,000 --> 00:59:08,000 s ogromnim stolom također su obrađene totalno za mene. 1088 00:59:08,000 --> 00:59:11,000 >> Ostala pitanja? 1089 00:59:11,000 --> 00:59:13,000 Sve ove koda će biti objavljena. 1090 00:59:13,000 --> 00:59:16,000 Mi vrsta premazani preko malo više manjih detalja, 1091 00:59:16,000 --> 00:59:19,000 ali stvari poput postavljanja neka svojstva na web pogledom 1092 00:59:19,000 --> 00:59:22,000 su samo stvari koje možete dobiti pregledavanjem Appleov dokumentaciju, 1093 00:59:22,000 --> 00:59:24,000 što je stvarno, stvarno lijepo iznio. 1094 00:59:24,000 --> 00:59:27,000 Oni imaju puno primjera aplikacije i primjer uzance 1095 00:59:27,000 --> 00:59:34,000 različitih API-ja, tako da definitivno prostudirati oni, ako možete. 1096 00:59:34,000 --> 00:59:36,000 Samo neke korisne veze možda želite pogledati. 1097 00:59:36,000 --> 00:59:38,000 Ovo su neki zgodan dokumentacija vodiča. 1098 00:59:38,000 --> 00:59:41,000 U URL-ovi su masivni, pa oni skratiti. 1099 00:59:41,000 --> 00:59:44,000 Ovaj prvi je cijela knjižnica dokumentacije. 1100 00:59:44,000 --> 00:59:46,000 Tu je malo traži barovi, pa ako počnete tipkati tipku 1101 00:59:46,000 --> 00:59:50,000 počet će dajući vam sve informacije o svim stvarima koje možete učiniti s gumbom. 1102 00:59:50,000 --> 00:59:53,000 Također sam uključen priručnik za programiranje Table View. 1103 00:59:53,000 --> 00:59:56,000 Ona obrađuje tablice pogled na mnogo više detalja, 1104 00:59:56,000 --> 01:00:00,000 kako to učiniti stvari kao što su dinamički dodati stanice ili urediti stanice ili ih ukloniti. 1105 01:00:00,000 --> 01:00:02,000 >> Ima puno primjera aplikacije iz Applea koji će vam pokazati kako to učiniti, 1106 01:00:02,000 --> 01:00:05,000 i na kraju, ovo zadnje je Human Interface Smjernice, 1107 01:00:05,000 --> 01:00:09,000 i to je u osnovi nekih rasprava o UI komponente, 1108 01:00:09,000 --> 01:00:12,000 stvari kao što ne bi gumb koji je 4 piksela po četiri piksela. 1109 01:00:12,000 --> 01:00:15,000 To je loša ideja, i druge stvari koje Apple želi da učinite 1110 01:00:15,000 --> 01:00:18,000 poticati dobar dizajn. 1111 01:00:18,000 --> 01:00:23,000 >> Bilo zadnja pitanja prije nego što smo završili gore? 1112 01:00:23,000 --> 01:00:27,000 U redu, definitivno slobodno-Idemo imati posebne oznake na raspravljati. 1113 01:00:27,000 --> 01:00:30,000 Mi ćemo imati iOS jedan, tako da definitivno slobodno koristiti to. 1114 01:00:30,000 --> 01:00:34,000 Ako želite raditi sa svojim kolegama na projektima 1115 01:00:34,000 --> 01:00:37,000 ili pomoći shvatiti neke random stvari iOS 1116 01:00:37,000 --> 01:00:40,000 slobodno me e-mail, i definitivno pregledati sve kod online, jer 1117 01:00:40,000 --> 01:00:43,000 samo u interesu vrijeme smo vrsta premazani preko više 1118 01:00:43,000 --> 01:00:45,000 finije grained detalji stvari. 1119 01:00:45,000 --> 01:00:47,000 Ali, ako ne, onda sretno na svojim iOS projekata, a nadam se da ćemo imati 1120 01:00:47,000 --> 01:00:53,000 veliki priliv aplikacija u App Storeu. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]