1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Seminár] [iOS: Písanie aplikácie ako šéf] 2 00:00:02,000 --> 00:00:04,000 [Tommy MacWilliam] [Harvard University] 3 00:00:04,000 --> 00:00:08,000 [To je CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Dobre, všetci, vitajte na iOS: Písanie aplikácie ako Boss. 5 00:00:12,000 --> 00:00:16,000 Tento seminár sa bude sústrediť na písanie aplikácií pre iPhone 6 00:00:16,000 --> 00:00:19,000 a zase písať aplikácie pre iPad, a tak sme v podstate chodiť cez 7 00:00:19,000 --> 00:00:23,000 pár rôznych príkladov, ako vytvoriť aplikácie, jednoduchá hra ako Tic Tac Toe, 8 00:00:23,000 --> 00:00:26,000 alebo ak vás viac zaujíma pri vytváraní aplikácii ako akési čítačky správ 9 00:00:26,000 --> 00:00:30,000 alebo niečo, ktorý spolupracuje s internetu som sa o tom hovoriť rovnako. 10 00:00:30,000 --> 00:00:32,000 Tu je náš stručný program. 11 00:00:32,000 --> 00:00:36,000 >> IOS aplikácie sú napísané v jazyku nazvanom Objective-C, 12 00:00:36,000 --> 00:00:39,000 a tak je trochu podobná C, ale v skutočnosti vôbec, 13 00:00:39,000 --> 00:00:41,000 takže budeme hovoriť trochu o jazyk sám 14 00:00:41,000 --> 00:00:45,000 a potom, ako sa postaviť iPhone aplikácie pomocou tejto app program s názvom Xcode, 15 00:00:45,000 --> 00:00:48,000 ktorá, ak ste si nenačítali to ešte pokojne začať sťahovanie teraz. 16 00:00:48,000 --> 00:00:50,000 Je to niekoľko gigabajtov. 17 00:00:50,000 --> 00:00:54,000 Malo by to byť zadarmo na App Store, takže budete musieť mať Mac 18 00:00:54,000 --> 00:00:57,000 v ideálnom prípade beží najnovšiu verziu OS X. 19 00:00:57,000 --> 00:00:59,000 Ak si nie ste, žiadny problém. 20 00:00:59,000 --> 00:01:02,000 Máme Macu v science centre k dispozícii pre vaše použitie 21 00:01:02,000 --> 00:01:05,000 s Xcode nainštalovaný, a tak neváhajte využiť tie, pre rozvoj. 22 00:01:05,000 --> 00:01:07,000 Ak chcete, aby sa aplikácie, ale nemajú Mac, nebojte sa. 23 00:01:07,000 --> 00:01:09,000 Je tu veľa areáli zdrojov za to. 24 00:01:09,000 --> 00:01:15,000 A potom sa budeme na pokrytie 2 väčšie príklady rôznych aplikácií, ktoré môžete urobiť. 25 00:01:15,000 --> 00:01:19,000 Objective-C je technicky, čo sa nazýva Super sada C. 26 00:01:19,000 --> 00:01:24,000 To znamená, že kód C je tiež platný Objective-C kóde. 27 00:01:24,000 --> 00:01:29,000 To znamená, že sme trochu potrubia páskou na niektorých ďalších funkcií do C. 28 00:01:29,000 --> 00:01:33,000 Niektoré z týchto funkcií patrí nemajú niekedy písať malloc znova, vďaka Bohu, 29 00:01:33,000 --> 00:01:36,000 no museli starať o tie hlúpe ukazovateľov a uvoľňovať ich a všetko to okolo 30 00:01:36,000 --> 00:01:40,000 nenávidel si o C, a je to celkom preč v Objective-C. 31 00:01:40,000 --> 00:01:43,000 >> Teraz, Objective-C má tiež oveľa väčšie štandardné knižnice, 32 00:01:43,000 --> 00:01:47,000 takže je oveľa viac funkcií, dostanete zdarma vnútorné Objective-C. 33 00:01:47,000 --> 00:01:50,000 Pamätáš, keď sme písali PHP sme si všimli, že sme išli od 34 00:01:50,000 --> 00:01:54,000 Tento najmenší jazyk obrie knižnice všetkých týchto šialených vecí, ktoré môžete urobiť. 35 00:01:54,000 --> 00:01:56,000 Rovnaká vec sa stane v iOS. 36 00:01:56,000 --> 00:01:59,000 Je tu objekty pre veci, ako je kalendár budhistov, a naozaj nič 37 00:01:59,000 --> 00:02:05,000 môžete myslieť, zo snáď už existuje v implementácii Objective-C je. 38 00:02:05,000 --> 00:02:08,000 Cieľom časť Objective-C je odkazovanie niečo 39 00:02:08,000 --> 00:02:11,000 tzv Object-Oriented Programming. 40 00:02:11,000 --> 00:02:14,000 To je niečo úplne nového konceptu, ale my sme v skutočnosti väčšinou naučil 41 00:02:14,000 --> 00:02:17,000 Mnoho z týchto pojmov už. 42 00:02:17,000 --> 00:02:19,000 Myšlienka objektovo orientovaného programovania je to, že budete štruktúrovať 43 00:02:19,000 --> 00:02:23,000 veľa kódu okolo týchto vecí tzv tried, 44 00:02:23,000 --> 00:02:26,000 a tieto triedy sú naozaj oslávený structs. 45 00:02:26,000 --> 00:02:30,000 Vnútri struct sme v podstate povedal, tu je vec, 46 00:02:30,000 --> 00:02:32,000 a táto vec môže mať členov. 47 00:02:32,000 --> 00:02:35,000 Napríklad, môže uzol v prepojenom zozname iné veci 48 00:02:35,000 --> 00:02:38,000 ako hodnoty, ukazovateľ na ďalší uzol v zozname, 49 00:02:38,000 --> 00:02:44,000 a spoločne, že ukazovateľ a hodnota tvorí túto jednu inštanciu struct. 50 00:02:44,000 --> 00:02:47,000 Triedy sú veľmi podobné, s výnimkou 51 00:02:47,000 --> 00:02:50,000 triedy môže mať tiež funkcie vnútri z nich. 52 00:02:50,000 --> 00:02:54,000 Keď sme deklarovali, struct, mohli by sme len povedať, int n alebo uzla * ďalšie. 53 00:02:54,000 --> 00:02:57,000 >> Teraz s Objective-C skutočne môžeme dať funkcie 54 00:02:57,000 --> 00:02:59,000 vnútri týchto vecí. 55 00:02:59,000 --> 00:03:03,000 Ďalšia vec, ktorá triedy môžu urobiť, je, že môžu dediť dáta z iných tried. 56 00:03:03,000 --> 00:03:07,000 Napríklad, budeme sa pozerať na veľa vstavaných Objective-C triedy. 57 00:03:07,000 --> 00:03:11,000 Jedným z nich by mohla byť trieda, ktorá predstavuje pohľad na obrazovke, 58 00:03:11,000 --> 00:03:14,000 a tak tým chcem realizovať svoj vlastný názor 59 00:03:14,000 --> 00:03:18,000 sme v podstate povedať, niekoho firmy Apple zrejme naozaj milí ľudia, 60 00:03:18,000 --> 00:03:21,000 napísal túto triedu pre mňa, a to zvláda veci, ako je zobrazenie tlačidiel 61 00:03:21,000 --> 00:03:25,000 alebo vykresľovanie na obrazovku, a my by sme boli naozaj bolestný 62 00:03:25,000 --> 00:03:28,000 vykonávať všetky tie funkcie sami, a tak jednoducho 63 00:03:28,000 --> 00:03:31,000 zdedenie údajov môžeme povedať všetko, čo urobil v tejto triede 64 00:03:31,000 --> 00:03:34,000 Chcem tiež vnútri mojej triede, a potom budem robiť nejaké ďalšie veci, 65 00:03:34,000 --> 00:03:37,000 konkrétne implementovať aplikáciu. 66 00:03:37,000 --> 00:03:40,000 To je to, čo to slovo znamená dedičnosť. Budeme vidieť viac konkrétny príklad. 67 00:03:40,000 --> 00:03:42,000 >> A konečne, kľúč s objektovo-orientovaného programovania je to, že 68 00:03:42,000 --> 00:03:45,000 to vedie k dátovej zapuzdrenie. 69 00:03:45,000 --> 00:03:48,000 V niektorej z našich problémov nastaví by sme mohli mať tieto veľké, globálne premenné 70 00:03:48,000 --> 00:03:51,000 a globals všade, a to je, ako by sme sledovať stav. 71 00:03:51,000 --> 00:03:55,000 S triedami môžeme začať zapuzdrenie informácie vo vnútri objektu. 72 00:03:55,000 --> 00:03:58,000 Ak budeme mať o jednu obrazovku na našej aplikácii, nemáme naozaj potrebujú mať všetky dáta z 73 00:03:58,000 --> 00:04:01,000 na inú obrazovku v našom app vnútri toho, 74 00:04:01,000 --> 00:04:04,000 a tak by zapuzdrenie veci v triedach to vlastne vedie 75 00:04:04,000 --> 00:04:08,000 na oveľa lepšie kódu designu, a to je možné s niektorými z ďalších funkcií 76 00:04:08,000 --> 00:04:11,000 Objective-C. 77 00:04:11,000 --> 00:04:15,000 Varuje, syntaxe Objective-C je banány. 78 00:04:15,000 --> 00:04:19,000 Je to ako nič sme nevideli, 79 00:04:19,000 --> 00:04:22,000 tak to je trochu krivka učenia zvykať 80 00:04:22,000 --> 00:04:24,000 Čo sakra to znamená? 81 00:04:24,000 --> 00:04:27,000 Ale akonáhle sa dostanete v minulosti, že počiatočné krivka učenia je to naozaj, ale naozaj hladký 82 00:04:27,000 --> 00:04:29,000 začať písať aplikácie. 83 00:04:29,000 --> 00:04:33,000 >> Ak chcete deklarovať triedu, teda tu je moja trieda, existuje, 84 00:04:33,000 --> 00:04:35,000 a možno tu sú niektoré veci, ktoré budem definovať neskôr, 85 00:04:35,000 --> 00:04:38,000 Idem povedať @ rozhranie. 86 00:04:38,000 --> 00:04:41,000 Idem povedať @ rozhranie. Chystám sa dať svojej triede meno. 87 00:04:41,000 --> 00:04:43,000 A potom neskôr niekde inde budem hovoriť @ koniec, 88 00:04:43,000 --> 00:04:46,000 a všetko medzi @ rozhranie a @ konca 89 00:04:46,000 --> 00:04:48,000 bude moja trieda. 90 00:04:48,000 --> 00:04:51,000 To bude to, čo je vo vnútri našich. Súborov h 91 00:04:51,000 --> 00:04:55,000 Rovnako ako v C naše. H súbory v podstate povedal, tu sú niektoré veci, ktoré budú existovať. 92 00:04:55,000 --> 00:04:57,000 Ja nie nevyhnutne tí, čo robia ešte, 93 00:04:57,000 --> 00:04:59,000 ale kompilátor potrebuje vedieť, že existujú. 94 00:04:59,000 --> 00:05:04,000 Neskôr vo vnútri našej. M. súbory, pretože m pre Objective-C 95 00:05:04,000 --> 00:05:08,000 je miesto, kde sme sa to vlastne bude definovať, čo tieto triedy robiť. 96 00:05:08,000 --> 00:05:11,000 Rovnako ako naše. Súbory C, sme poskytli implementácia pre funkcie. 97 00:05:11,000 --> 00:05:15,000 Vnútri našej. M. súboru budeme hovoriť tu je to, čo všetky funkcie 98 00:05:15,000 --> 00:05:18,000 vnútri moja trieda-čo všetci robia. 99 00:05:18,000 --> 00:05:22,000 A konečne, vnútri struct by sme mohli povedať, vnútri týchto zložených zátvoriek 100 00:05:22,000 --> 00:05:25,000 int n alebo uzol * budúci, 101 00:05:25,000 --> 00:05:28,000 a v Objective-C budeme používať na základe kľúčového slova @ majetok, 102 00:05:28,000 --> 00:05:31,000 a to je to, čo sa deje na definovanie vlastností, 103 00:05:31,000 --> 00:05:36,000 alebo non-funkcie, ktoré sú súčasťou mojej triedy. 104 00:05:36,000 --> 00:05:40,000 >> Volanie funkcie v Objective-C je tiež banány. 105 00:05:40,000 --> 00:05:43,000 Keď sme vyhlásili funkcie v jazyku C sme si povedali niečo ako int foo 106 00:05:43,000 --> 00:05:46,000 a otvorené párenie a potom dal jej zoznam argumentov. 107 00:05:46,000 --> 00:05:51,000 To je to, čo prehlasuje, metódy alebo funkcie vyzerá ako v Objective-C. 108 00:05:51,000 --> 00:05:54,000 Ak chcem, aby deklarovať funkciu alebo metódu 109 00:05:54,000 --> 00:05:58,000 kde hovorím metóda je naozaj len funkcia, ktorá je členom triedy, 110 00:05:58,000 --> 00:06:01,000 tak trochu vzájomne zameniteľné, ale nie v skutočnosti, 111 00:06:01,000 --> 00:06:03,000 tak vnútri mojej metódy Chcem vytvoriť novú metódu. 112 00:06:03,000 --> 00:06:06,000 Bude to nič vrátiť, takže to bude typu void. 113 00:06:06,000 --> 00:06:08,000 To je návratový typ mojej funkcie. 114 00:06:08,000 --> 00:06:11,000 Teraz máme parens tu, pretože-neviem. 115 00:06:11,000 --> 00:06:14,000 Ďalšie bude meno mojej funkcie, 116 00:06:14,000 --> 00:06:17,000 a potom konečne máme bodkočiarku, rovnako ako sme mali v C. 117 00:06:17,000 --> 00:06:19,000 Čo je nové tu je ten chlap tu. 118 00:06:19,000 --> 00:06:22,000 Táto pomlčka je skutočne nevyhnutné, a to, čo to hovorí, je to, že 119 00:06:22,000 --> 00:06:26,000 táto metóda tu musí byť volaná na inštanciu triedy. 120 00:06:26,000 --> 00:06:29,000 >> Potom, čo sme vyhlásil naše structs sme pravdepodobne povedal niečo ako 121 00:06:29,000 --> 00:06:32,000 n struct uzol, a že v skutočnosti vytvorili 122 00:06:32,000 --> 00:06:35,000 alebo inštancie jeden z tých structs tak, že som sa mohol skutočne začať pracovať 123 00:06:35,000 --> 00:06:38,000 s tým, čo je vo vnútri nej, takže to pomlčka znamená, že musíme 124 00:06:38,000 --> 00:06:41,000 inštanciu triedy, rovnako ako my, že inštancie struct 125 00:06:41,000 --> 00:06:43,000 Než budeme môcť túto metódu volať na neho. 126 00:06:43,000 --> 00:06:46,000 Ak chcem začať pridávať argumenty mojich metód 127 00:06:46,000 --> 00:06:48,000 to dostane ešte viac banánov. 128 00:06:48,000 --> 00:06:50,000 Tu je moje meno metódy. 129 00:06:50,000 --> 00:06:53,000 Potom budem mať dvojbodku, a po tomto dvojbodkou sa píše tu prichádza nejaké argumenty. 130 00:06:53,000 --> 00:06:56,000 Táto metóda prijíma jeden argument. 131 00:06:56,000 --> 00:06:59,000 Typ argumentu je int, a meno tohto argumentu 132 00:06:59,000 --> 00:07:03,000 alebo premenná, ktorá budem začať používať vnútri metódy sa nazýva i 133 00:07:03,000 --> 00:07:05,000 Aj v tomto prípade je metóda. Trvá jeden argument. 134 00:07:05,000 --> 00:07:10,000 >> Ak chcete začať pridávať ďalšie argumenty, že dostane viac banánov 135 00:07:10,000 --> 00:07:13,000 v tom, že sme to hrubého čreva, ktorá hovorí, že tu je môj zoznam argumentov. 136 00:07:13,000 --> 00:07:15,000 Tento prvý argument je číslo. 137 00:07:15,000 --> 00:07:17,000 Teraz, tento druhý argument je zaujímavé. 138 00:07:17,000 --> 00:07:20,000 Premenná, ktorá budem používať vo vnútri mojej funkcie 139 00:07:20,000 --> 00:07:23,000 sa nazýva f, takže vnútri mojej funkcie som mohol povedať, 140 00:07:23,000 --> 00:07:25,000 f + = 1, alebo tak niečo. 141 00:07:25,000 --> 00:07:30,000 To, čo je tu v podstate kľúčom k tomuto argumentu alebo parametra. 142 00:07:30,000 --> 00:07:34,000 Rovnako ako sme mali kľúčové hodnotové páry aj niečo ako JSON alebo asociatívnych poliach 143 00:07:34,000 --> 00:07:37,000 Objective-C sa rozhodli povedať, jo, len preto, že je to naozaj jasné, 144 00:07:37,000 --> 00:07:39,000 Pri volaní metódy, čo všetky tieto parametre sú 145 00:07:39,000 --> 00:07:41,000 Ja som vlastne bude menovať všetky. 146 00:07:41,000 --> 00:07:45,000 Keď zavoláte metódu, budete vlastne hovoria andFloat, 147 00:07:45,000 --> 00:07:47,000 a potom miniete ho dovnútra 148 00:07:47,000 --> 00:07:50,000 >> Je zaujímavé, že sa tento nie je pomenovaná, ale všetky ostatné parametre sú 149 00:07:50,000 --> 00:07:53,000 takže ak sme mali tretí argument, aby som mohol povedať andFloat 150 00:07:53,000 --> 00:07:56,000 a ďalšie plavák a tak ďalej. 151 00:07:56,000 --> 00:08:01,000 Keď som volať tieto metódy je samozrejme banánov, 152 00:08:01,000 --> 00:08:04,000 takže keď mám objekt, a som definoval metódu nazvanú foo, 153 00:08:04,000 --> 00:08:09,000 a chcem volať, skôr než hovoriť foo OPEN / CLOSE parens 154 00:08:09,000 --> 00:08:11,000 Idem otvoriť konzolu. 155 00:08:11,000 --> 00:08:13,000 Tu je meno môjho metódy. 156 00:08:13,000 --> 00:08:17,000 Chystám sa zavrieť držiak, a to je objekt Volám to na. 157 00:08:17,000 --> 00:08:20,000 Pamätajte si, že všetky tieto metódy existujú v rámci tried 158 00:08:20,000 --> 00:08:23,000 pretože triedy môžu mať metódy definované vo vnútri nich. 159 00:08:23,000 --> 00:08:26,000 >> Tu som svojvoľne vytvoril objekt nejakej triedy, 160 00:08:26,000 --> 00:08:28,000 a to je syntax pre to robí. 161 00:08:28,000 --> 00:08:31,000 K dispozícii sú 2 kroky na vytvorenie objektu. 162 00:08:31,000 --> 00:08:34,000 Prvým krokom je, že chcem, aby prideliť miesto. 163 00:08:34,000 --> 00:08:37,000 To je ekvivalent malloc. Nemáme hovoriť malloc už. 164 00:08:37,000 --> 00:08:42,000 My upustil m, robil to alloc, a nahradil. C s M.. 165 00:08:42,000 --> 00:08:47,000 Potom, čo sme Alloc niečo, čo potom je treba ju inicializovať. 166 00:08:47,000 --> 00:08:49,000 V podstate, keď si vytvárať objekty budete chcieť mať nejakú logiku 167 00:08:49,000 --> 00:08:53,000 , Ktorý vykonáva, keď ste vytvorili oni, takže si môžete prejsť v niektorých predvolených hodnôt 168 00:08:53,000 --> 00:08:57,000 alebo niečo také, a tak to init metóda je to, čo v skutočnosti vytvára objekt. 169 00:08:57,000 --> 00:08:59,000 Sme najprv vyčleniť priestor, rovnako ako sme to urobili v C, 170 00:08:59,000 --> 00:09:04,000 a potom sme ju inicializovať, ktoré môžu alebo nemusia urobiť veľa. 171 00:09:04,000 --> 00:09:07,000 Potom sa vraciame túto vec do objektu o. 172 00:09:07,000 --> 00:09:09,000 Je tu hviezda tu, pretože je to technicky ukazovateľ, 173 00:09:09,000 --> 00:09:12,000 ale nebojte sa, ukazovatele nie sú tak veľký obchod v Objective-C už. 174 00:09:12,000 --> 00:09:15,000 >> Teraz sme inštancií tejto triedy s názvom NSObject, 175 00:09:15,000 --> 00:09:19,000 a to je len náhodná trieda, ktorá má Apple. 176 00:09:19,000 --> 00:09:22,000 Sme inštanciu to, a teraz mám inštanciu tejto triedy 177 00:09:22,000 --> 00:09:25,000 v tomto objekte O, to znamená, že keď definovaná 178 00:09:25,000 --> 00:09:29,000 Tieto metódy som mohol zavolať im takhle. 179 00:09:29,000 --> 00:09:31,000 Podobne, keď som chcel volať metódu s jedným argumentom, 180 00:09:31,000 --> 00:09:34,000 tak toto je bar metóda, ktorá berie jeden argument, 181 00:09:34,000 --> 00:09:38,000 a tu je baz: qux metóda, tak to trvá 2 argumenty. 182 00:09:38,000 --> 00:09:44,000 Toto je volanie jednej funkcie na tohto objektu o. 183 00:09:44,000 --> 00:09:46,000 Zmysel? 184 00:09:46,000 --> 00:09:50,000 Syntax by mala zmysel, ale tak nejako na to zvyknúť. 185 00:09:50,000 --> 00:09:54,000 >> Dobre, poďme hovoriť o pár vecí, ktoré sú zabudované do Objective-C 186 00:09:54,000 --> 00:09:56,000 , Ktoré neboli nutne zabudovaný do C. 187 00:09:56,000 --> 00:09:59,000 V jazyku C sme trochu museli vysporiadať s reťazcami, pretože tieto hlúpych postáv poľa, 188 00:09:59,000 --> 00:10:01,000 a to mám naozaj otravné. 189 00:10:01,000 --> 00:10:04,000 Objective-C má tie všetko postavené v roku pre nás, a je postavená v roku 190 00:10:04,000 --> 00:10:06,000 Pomocou tejto triedy s názvom NSString. 191 00:10:06,000 --> 00:10:10,000 Keď chcem vytvoriť NSString máme viac obskurní syntaxe. 192 00:10:10,000 --> 00:10:15,000 Skôr než hovoriť "cs50" Hovoríme @ "cs50" 193 00:10:15,000 --> 00:10:17,000 a to je len Syntax pre deklarovania reťazcov v Objective-C. 194 00:10:17,000 --> 00:10:21,000 To je veľmi jednoduché zabudnúť, takže sa nemusíte. 195 00:10:21,000 --> 00:10:24,000 Teraz, keď som sa to, je to reťazec, ale všimnete 196 00:10:24,000 --> 00:10:26,000 je to naozaj len objekt. 197 00:10:26,000 --> 00:10:30,000 Povedal som NSString, čo znamená, že inštancia triedy 198 00:10:30,000 --> 00:10:32,000 volal NSString, ktoré niekto iný písal pre mňa, 199 00:10:32,000 --> 00:10:35,000 a oni boli veľmi milý, a tak teraz 200 00:10:35,000 --> 00:10:37,000 Môžem začať volať metódy na ňom. 201 00:10:37,000 --> 00:10:40,000 Ak som volať metódu dĺžky na tento objekt s 202 00:10:40,000 --> 00:10:43,000 to bude návrat ku mne dĺžku reťazca. 203 00:10:43,000 --> 00:10:45,000 To je rovnako ako strlen v C. 204 00:10:45,000 --> 00:10:47,000 To by sa vrátiť 4. 205 00:10:47,000 --> 00:10:51,000 >> Podobne, iný spôsob by som mohol chcieť len o to characterAtIndex. 206 00:10:51,000 --> 00:10:54,000 To je metóda, ktorá uvádza na tento reťazec je 207 00:10:54,000 --> 00:10:57,000 Chcem, aby ste si 0. charakter, 208 00:10:57,000 --> 00:10:59,000 a tak by to ku mne nevráti znak c, 209 00:10:59,000 --> 00:11:02,000 a tam je celá partia viac z týchto metód, ktoré môžete Google naozaj ľahko. 210 00:11:02,000 --> 00:11:07,000 Dokumentácia Apple je skvelá, a my sa na to pozrieť v trochu. 211 00:11:07,000 --> 00:11:09,000 Tí sú reťazce. 212 00:11:09,000 --> 00:11:11,000 Máme tiež variabilný veľkosť poľa zabudovaný 213 00:11:11,000 --> 00:11:13,000 Zapamätať si ma na C, keď sme vyhlásili, pole 214 00:11:13,000 --> 00:11:16,000 sme museli povedať, že máte 5 prvky, koniec príbehu. 215 00:11:16,000 --> 00:11:18,000 Keď sme sa dostali do JavaScriptu a PHP môžeme začať 216 00:11:18,000 --> 00:11:20,000 robiť veci, ako je pridávanie prvkov alebo pohyblivých prvkov. 217 00:11:20,000 --> 00:11:22,000 Môžeme to urobiť to isté v Objective-C. 218 00:11:22,000 --> 00:11:26,000 Skôr než vytvorenie poľa v normálnym spôsobom C 219 00:11:26,000 --> 00:11:30,000 máme opäť ďalšiu triedu s názvom NSMutableArray. 220 00:11:30,000 --> 00:11:33,000 K dispozícii je tiež NSArray, 221 00:11:33,000 --> 00:11:35,000 a to bude v podstate zostručniť nejakú ponuku. 222 00:11:35,000 --> 00:11:38,000 To hovorí, že prvá vec, ktorú chcem urobiť, je chcem prideliť 223 00:11:38,000 --> 00:11:41,000 priestor pre nové pole, a potom, čo som prideľovať 224 00:11:41,000 --> 00:11:43,000 Aj potom je potrebné, aby ju inicializovať. 225 00:11:43,000 --> 00:11:45,000 Opäť platí, že len volaním týchto metód 2. 226 00:11:45,000 --> 00:11:48,000 Teraz čo znamená, že vo vnútri tohto objektu sa 227 00:11:48,000 --> 00:11:50,000 Som prázdne pole tam sedí. 228 00:11:50,000 --> 00:11:54,000 Ak chcem pridať niečo na toto pole, môžem volať AddObject metódy. 229 00:11:54,000 --> 00:11:59,000 Chcem pridať objekt do poľa a, a chcem pridať reťazec CS50. 230 00:11:59,000 --> 00:12:02,000 Ak by som chcel naopak odstrániť, že môžem povedať, že chcem, aby 231 00:12:02,000 --> 00:12:09,000 odobrať objekt na prvom mieste na pole alebo objekt. 232 00:12:09,000 --> 00:12:11,000 >> Zmysel? 233 00:12:11,000 --> 00:12:14,000 Dobre, tak nejako zvyknúť hranatá zátvorka vec. 234 00:12:14,000 --> 00:12:18,000 Mimochodom, vo vnútri mnohých knižníc Apple uvidíte túto NS. 235 00:12:18,000 --> 00:12:21,000 NS vlastne kandiduje na ďalší krok, ktorý bol jednou z firiem Steve Jobs prvý, 236 00:12:21,000 --> 00:12:24,000 a to je, kde sa naozaj začal písať veľa kódu 237 00:12:24,000 --> 00:12:27,000 ako druh základ pre Mac OS X a všetky ostatné veci, 238 00:12:27,000 --> 00:12:32,000 a tak to NS je druh tejto peknej odkazu vykríknuť jedného z predchádzajúcich spoločností 239 00:12:32,000 --> 00:12:34,000 späť, keď Apple bol prvý začínate. 240 00:12:34,000 --> 00:12:36,000 Je to všade. 241 00:12:36,000 --> 00:12:41,000 Poďme sa pozrieť na viac holistického Objective-C napríklad. 242 00:12:41,000 --> 00:12:44,000 Tu som vnútri Xcode. 243 00:12:44,000 --> 00:12:47,000 Ak chcete sa sem dostal, som sa prvýkrát stiahli Xcode z App Store, 244 00:12:47,000 --> 00:12:50,000 otvoril ju, a potom som išiel sem do súboru, 245 00:12:50,000 --> 00:12:54,000 sem do nového, a potom sa projektu. 246 00:12:54,000 --> 00:12:57,000 Potom, čo som robiť, že som sa všetky tieto možnosti, čo chcem vytvoriť, 247 00:12:57,000 --> 00:12:59,000 a tak budeme sa pozrieť na tieto možnosti neskôr, 248 00:12:59,000 --> 00:13:03,000 ale len pre tento príklad, pretože sme v skutočnosti bude mať aplikácie ešte, 249 00:13:03,000 --> 00:13:06,000 Prišiel som sem, a ja som povedal Nástroj príkazového riadku, 250 00:13:06,000 --> 00:13:09,000 a to je aplikácia, ktorá by som mohol bežať na príkazovom riadku 251 00:13:09,000 --> 00:13:12,000 rovnako ako sme boli beží od C. 252 00:13:12,000 --> 00:13:16,000 To je, ako som vytvoril tento projekt, a tak som tu, 253 00:13:16,000 --> 00:13:20,000 tak nech sa pozrieť na prvú tohto súboru, a to by malo vyzerať celkom povedomý. 254 00:13:20,000 --> 00:13:24,000 Mám int meno. Tu je môj priateľ argc, môj druhý kamarát ArGV. 255 00:13:24,000 --> 00:13:30,000 A tak môžeme vidieť, že je to vstupný bod pre moje prvé Objective-C aplikácie. 256 00:13:30,000 --> 00:13:32,000 Tu môžeme ignorovať to pre teraz. 257 00:13:32,000 --> 00:13:35,000 To je v podstate nejaký správa pamäte veci, ktoré budete naozaj 258 00:13:35,000 --> 00:13:37,000 niekedy sa čoho báť. 259 00:13:37,000 --> 00:13:39,000 >> Poďme sa pozrieť na tohto prvého bloku tu. 260 00:13:39,000 --> 00:13:46,000 Tento prvý riadok, keď poviem, že Student * alice = [[Študent alloc] init] čo to je robí? 261 00:13:46,000 --> 00:13:50,000 Táto prvá študent tu, je to pravdepodobne triedy. 262 00:13:50,000 --> 00:13:54,000 To nie je trieda, ktorá Apple napísal, ale je to trieda, ktorá som napísal. 263 00:13:54,000 --> 00:13:57,000 Prvá vec, ktorú chcem urobiť, je chcem prideliť miesto pre nový študent, 264 00:13:57,000 --> 00:14:00,000 a potom chcem k inicializácii, takže to mi dáva späť 265 00:14:00,000 --> 00:14:05,000 Tento nový študent objekt, a ja som to ukladanie do premennej s názvom Alice. 266 00:14:05,000 --> 00:14:07,000 Kde sa to trieda pochádza? 267 00:14:07,000 --> 00:14:12,000 No, tu na ľavej strane sú všetky rôzne súbory vo vnútri môjho projektu. 268 00:14:12,000 --> 00:14:16,000 Vidíme tu mám Student.h a Student.m. 269 00:14:16,000 --> 00:14:20,000 . H súboru, pamätajte, je miesto, kde som sa vyhlásiť všetky tie veci, 270 00:14:20,000 --> 00:14:22,000 že bude existovať v rámci triedy. 271 00:14:22,000 --> 00:14:25,000 >> Poďme sa na to pozrieť. 272 00:14:25,000 --> 00:14:29,000 Dobre, máme tu túto @ rozhranie, a to hovorí, že prichádza 273 00:14:29,000 --> 00:14:33,000 vyhlásenie o všetko, čo bude existovať vo svojej triede. 274 00:14:33,000 --> 00:14:36,000 Potom mám dvojbodku. Potom som si tento NSObject vec. 275 00:14:36,000 --> 00:14:40,000 Táto dvojbodka znamená, že dedičské trochu sme diskutovali trochu skôr. 276 00:14:40,000 --> 00:14:43,000 To hovorí, že všetko, čo môže urobiť NSObject 277 00:14:43,000 --> 00:14:46,000 kde NSObject je táto trieda napísal niekto iný, 278 00:14:46,000 --> 00:14:50,000 všetko toto NSObject môže urobiť Chcem byť schopný to urobiť. 279 00:14:50,000 --> 00:14:54,000 Tým, že hovoríte: NSObject to znamená, že som v podstate 280 00:14:54,000 --> 00:14:58,000 zdedil všetky funkcie inej triedy. 281 00:14:58,000 --> 00:15:02,000 To naozaj mi dal veľa rôznych metód a vlastností, ktoré môžem použiť. 282 00:15:02,000 --> 00:15:05,000 Tu dole som vytvoriť 2 vlastnosti. 283 00:15:05,000 --> 00:15:08,000 To znamená, že môj študent, keby to bola struct, by tieto byť 2 veci 284 00:15:08,000 --> 00:15:11,000 vnútri mojej struct, takže každý študent má meno 285 00:15:11,000 --> 00:15:14,000 že je reťazec, a študent má tiež známku, 286 00:15:14,000 --> 00:15:17,000 ktorý je int. 287 00:15:17,000 --> 00:15:23,000 >> Konečne, tu dole budem vytvoriť metódu pre môjho študenta. 288 00:15:23,000 --> 00:15:26,000 Zavolal som moja metóda, initWithName, a to trvá jeden argument, 289 00:15:26,000 --> 00:15:31,000 a tento argument je reťazec, a zavolal som to pomenovať. 290 00:15:31,000 --> 00:15:35,000 Teraz sa poďme pozrieť na to, ako sme vlastne vykonať túto triedu. 291 00:15:35,000 --> 00:15:38,000 Tu, teraz som vo vnútri mojej. Súboru m, 292 00:15:38,000 --> 00:15:40,000 m pre realizáciu, myslím. 293 00:15:40,000 --> 00:15:44,000 Mám vykonávanie, môj koniec, a tu je miesto, kde som vlastne definovanie 294 00:15:44,000 --> 00:15:47,000 čo initWithName robí. 295 00:15:47,000 --> 00:15:50,000 Mám initWithName, meno mojej parametra, a potom tento 296 00:15:50,000 --> 00:15:53,000 je miesto, kde som vlastne vytvoriť študenta, 297 00:15:53,000 --> 00:15:56,000 a tak to je trochu záhadný, ale toto je štandardizovaný 298 00:15:56,000 --> 00:15:58,000 ktoré chcete zahrnúť do svojich konštruktérov. 299 00:15:58,000 --> 00:16:02,000 Táto funkcia inicializácia tu, initWithName, je typ konštruktory. 300 00:16:02,000 --> 00:16:05,000 Tie v podstate budovať nový študentský objekt 301 00:16:05,000 --> 00:16:07,000 a možno odosielanie niektoré údaje vo vnútri nej. 302 00:16:07,000 --> 00:16:11,000 Prvá vec, ktorú chcem urobiť, je chcem volať init na tejto super vec. 303 00:16:11,000 --> 00:16:15,000 >> Pamätajte si, že keď som povedal, tu v Súboru h 304 00:16:15,000 --> 00:16:21,000 že všetko NSObject má študent tiež má. 305 00:16:21,000 --> 00:16:24,000 To znamená, že keď som sa vytvoriť študenta, čo som tiež musieť urobiť, je 306 00:16:24,000 --> 00:16:28,000 uistite sa, že NSObject, že som zdedil všetky týchto údajov z 307 00:16:28,000 --> 00:16:32,000 je tiež správne inicializovaný. 308 00:16:32,000 --> 00:16:36,000 Čo musím povedať, je to super bude skutočne odkazovať na materskej triedy 309 00:16:36,000 --> 00:16:39,000 že som dedí z, tak chcem, aby sa ubezpečil som inicializovať 310 00:16:39,000 --> 00:16:43,000 všetko, čo som v závislosti na ako začnem sa snaží používať. 311 00:16:43,000 --> 00:16:46,000 Potom ak to správne inicializovaný je to rovnako ako ostatné, ak malloc 312 00:16:46,000 --> 00:16:50,000 nemal vrátiť hodnotu null, potom môžem začať nastavovať niektoré vlastnosti. 313 00:16:50,000 --> 00:16:54,000 >> V JavaScriptu a PHP sme toto kľúčové slovo volal toto, 314 00:16:54,000 --> 00:16:58,000 a to len na aktuálnu inštanciu triedy. 315 00:16:58,000 --> 00:17:00,000 V Objective-C nazývame túto ja. 316 00:17:00,000 --> 00:17:04,000 Keď hovorím self.name, to znamená, že objekt 317 00:17:04,000 --> 00:17:07,000 Len som vytvoril, keď som povedal, študentka alloc init, 318 00:17:07,000 --> 00:17:09,000 že sa to dá mi objekt. 319 00:17:09,000 --> 00:17:12,000 To znamená, že chcete nastaviť názov tohto objektu 320 00:17:12,000 --> 00:17:15,000 na čo som práve prešiel dovnútra 321 00:17:15,000 --> 00:17:18,000 Rovnako ako v C, mať prístup členov s touto bodkou, 322 00:17:18,000 --> 00:17:21,000 tak self.name hovorí, že meno študenta objektu 323 00:17:21,000 --> 00:17:24,000 sa teraz bude, čo ste práve prešiel dovnútra 324 00:17:24,000 --> 00:17:28,000 A tak nakoniec, môžem sa vrátiť, tak som skutočne dostať niečo späť. 325 00:17:28,000 --> 00:17:30,000 >> Otázky? 326 00:17:30,000 --> 00:17:34,000 Dobre, takže toto self = Super init, 327 00:17:34,000 --> 00:17:37,000 ak nechcete úplne pochopiť dedičnosti veci neboj. 328 00:17:37,000 --> 00:17:40,000 Len viem, že ak ste niekedy chceli vytvoriť svoj vlastný init metódu len 329 00:17:40,000 --> 00:17:42,000 urobiť, a budete mať dobré ísť. 330 00:17:42,000 --> 00:17:44,000 Jo. >> [Študent] Čo prípade samostatnej znamená? 331 00:17:44,000 --> 00:17:49,000 To znamená, že keď sme sa malloc niečo, čo sme vždy skontrolovať, či je to rovná null, 332 00:17:49,000 --> 00:17:51,000 a ak je to nula, potom sa ukončí. 333 00:17:51,000 --> 00:17:55,000 To je to isté, pretože ak to vráti null, potom sme pravdepodobne bude seg poruchy 334 00:17:55,000 --> 00:17:57,000 ak by sme začať sa snaží manipulovať. 335 00:17:57,000 --> 00:18:01,000 To je naša študentka triedy. 336 00:18:01,000 --> 00:18:03,000 To znamená, že môžeme inicializovať našich študentov jedným z dvoch spôsobov. 337 00:18:03,000 --> 00:18:08,000 Keď poviem, že študentka alloc init nebudem používať túto metódu, že som práve napísal, 338 00:18:08,000 --> 00:18:11,000 a namiesto toho som si jednoducho povedať alice.name, 339 00:18:11,000 --> 00:18:14,000 a teraz idem nastaviť, aby názov vlastnosti. 340 00:18:14,000 --> 00:18:17,000 >> Podobne, keď chcem používať túto metódu initWithName 341 00:18:17,000 --> 00:18:20,000 Môžem len povedať Alloc, a potom skôr než hovoriť init 342 00:18:20,000 --> 00:18:24,000 Idem zavolať, že metódy, ktoré som vytvoril, a budem sa potom Bob. 343 00:18:24,000 --> 00:18:30,000 V tomto bode, tento objekt Bob má meno rovnaké Bobovi. 344 00:18:30,000 --> 00:18:35,000 Dobre, tu dole som pomocou tohto NSMutableArray, že sme sa zamerali na staršie. 345 00:18:35,000 --> 00:18:38,000 Som prideľovanie space.Then som inicializáciu nového poľa. 346 00:18:38,000 --> 00:18:40,000 Chystám sa pridať 2 veci k nej. 347 00:18:40,000 --> 00:18:43,000 Toto pole teraz drží študentské objekty. 348 00:18:43,000 --> 00:18:46,000 Všimnite si, že nikde som si, že toto je pole študentov. 349 00:18:46,000 --> 00:18:48,000 Povedal som, že je to pole, obdobie. 350 00:18:48,000 --> 00:18:50,000 Potom som si dal, čo do nej, že chcem. 351 00:18:50,000 --> 00:18:52,000 Tu mám 2 objekty. 352 00:18:52,000 --> 00:18:56,000 >> Nakoniec, mám iný objekt tu, tento TF. 353 00:18:56,000 --> 00:18:59,000 Tu v TF.h v podstate to isté. 354 00:18:59,000 --> 00:19:01,000 Ja som zdedil od NSObject, a mimochodom, 355 00:19:01,000 --> 00:19:03,000 Pri vytváraní tried je to všetko pre teba urobil, 356 00:19:03,000 --> 00:19:06,000 tento druh rozhrania štandardizovaný. 357 00:19:06,000 --> 00:19:08,000 To má vlastnosť študentov. 358 00:19:08,000 --> 00:19:15,000 Mám pár Metódy tu nie sú naozaj veľa, 359 00:19:15,000 --> 00:19:18,000 a tak to znamená, že potom, čo som vytvoriť tento objekt TF 360 00:19:18,000 --> 00:19:23,000 Môžem zavolať túto metódu stupňa na to takhle. 361 00:19:23,000 --> 00:19:26,000 Akékoľvek otázky týkajúce sa Objective-C syntaxou ako začneme sťahovať do niektoré ďalšie 362 00:19:26,000 --> 00:19:30,000 zaujímavé aplikácie vývoj veci? 363 00:19:30,000 --> 00:19:34,000 >> Dobre, tak poďme vlastne robiť aplikácie pre iPhone. 364 00:19:34,000 --> 00:19:39,000 V základnej triedy, ktoré budete používať vo vnútri vášho iPhone app sa nazýva zobrazenie regulátory, 365 00:19:39,000 --> 00:19:42,000 a pohľad regulátor v podstate predstavuje jedinú obrazovku 366 00:19:42,000 --> 00:19:46,000 vnútri vašej aplikácie, takže keď som na hudobné aplikácie, napríklad, 367 00:19:46,000 --> 00:19:50,000 Jeden pohľad regulátor by mohlo predstavovať názor, v ktorom som zobraziť všetky skladby na mojom iPhone. 368 00:19:50,000 --> 00:19:53,000 Iný pohľad regulátor mohol byť, keď som kliknite na skladbu a začať hrať ju 369 00:19:53,000 --> 00:19:55,000 alebo ako som vŕtanie dole do umelci. 370 00:19:55,000 --> 00:19:59,000 Každá z týchto rôznych obrazoviek môže byť reprezentovaný ako iný pohľad regulátora, 371 00:19:59,000 --> 00:20:04,000 a pohľad radič je naozaj len trieda, ktorá hovorí, ako sa táto obrazovka funguje. 372 00:20:04,000 --> 00:20:07,000 Veci vnútri kontroleru pohľadu, budeme mať vlastnosti, 373 00:20:07,000 --> 00:20:10,000 takže veci ako tlačidlo bude vlastnosť nášho pohľadu regulátora. 374 00:20:10,000 --> 00:20:13,000 >> Sme tiež bude mať metódy, a to sú v podstate obslužné rutiny. 375 00:20:13,000 --> 00:20:16,000 Táto metóda hovorí, že keď stlačíte toto tlačidlo 376 00:20:16,000 --> 00:20:19,000 Chcem urobiť niečo, a nakoniec, opäť, 377 00:20:19,000 --> 00:20:24,000 budeme používať tento vlastné kľúčové slovo pre prístup k aktuálnej inštancii. 378 00:20:24,000 --> 00:20:29,000 Ak chcete vytvoriť rozhranie v systéme iOS, je naozaj veľmi jednoduché. 379 00:20:29,000 --> 00:20:32,000 Majú tento pekný drag and drop rozhranie s názvom Interface Builder, 380 00:20:32,000 --> 00:20:37,000 a 2 základné pojmy, ktoré drôt vášho Objective-C Interface Builder 381 00:20:37,000 --> 00:20:40,000 sú IBOutlet a IBAction. 382 00:20:40,000 --> 00:20:44,000 IBOutlet jednoducho hovorí, že ak ste deklarovať vlastnosť, ktorá je tlačidlo, 383 00:20:44,000 --> 00:20:47,000 a chcete ju pripojiť k niečomu vo vašej skutočnej rozhranie, 384 00:20:47,000 --> 00:20:49,000 budete hovoriť, že je to outlet. 385 00:20:49,000 --> 00:20:51,000 Podobne, ak chcete, aby zastupoval obslužnú rutinu udalosti 386 00:20:51,000 --> 00:20:54,000 potom budete hovoriť, že je to akcia. 387 00:20:54,000 --> 00:20:57,000 >> Ak chcete skutočne zapojiť do tohto grafického znázornenia 388 00:20:57,000 --> 00:21:00,000 a váš kód je to naozaj, naozaj jednoduché. 389 00:21:00,000 --> 00:21:03,000 Ak chcete pripojiť IBOutlet, všetko, čo musíte urobiť, je môžete ovládať tlačidlom, 390 00:21:03,000 --> 00:21:05,000 a uvidíme príklad to naozaj rýchlo. 391 00:21:05,000 --> 00:21:07,000 Môžete ovládať kliknite tam, kde sa hovorí, View Controller. 392 00:21:07,000 --> 00:21:09,000 Budeš pretiahnuť do rozhrania, alebo naopak, 393 00:21:09,000 --> 00:21:13,000 Ak chcete pripojiť obslužnú rutinu udalosti budete pretiahnuť z rozhrania 394 00:21:13,000 --> 00:21:15,000 v opačnom smere. 395 00:21:15,000 --> 00:21:20,000 Poďme sa pozrieť na naozaj jednoduchom príklade iOS. 396 00:21:20,000 --> 00:21:23,000 >> Poďme vytvoriť nový projekt. 397 00:21:23,000 --> 00:21:25,000 Chystám sa prísť sem do aplikácie, 398 00:21:25,000 --> 00:21:28,000 a budem na tlačidlo Single View aplikácie. 399 00:21:28,000 --> 00:21:31,000 Idem na tlačidlo Ďalej. Dám svoj projekt názov. 400 00:21:31,000 --> 00:21:33,000 Zavolám jej Hello. 401 00:21:33,000 --> 00:21:36,000 Zaujímavé je, že Apple predpokladá, že budete vytvárať produkt 402 00:21:36,000 --> 00:21:38,000 takže môžete predať a oni môžu zarobiť peniaze. 403 00:21:38,000 --> 00:21:41,000 Tu dole som chcel povedať, že je to iPhone app. 404 00:21:41,000 --> 00:21:44,000 Môžete vytvoriť aplikáciu pre iPad, alebo ak chcete vytvoriť jednu z týchto aplikácií 405 00:21:44,000 --> 00:21:47,000 , Ktorý podporuje obe zariadenia, ktoré môžete urobiť taky. 406 00:21:47,000 --> 00:21:49,000 Jedná sa o to, čo chcete, aby vaše začiarknutie vyzerať. 407 00:21:49,000 --> 00:21:51,000 >> Ak chcete použiť storyboardy, ktoré uvidíme neskôr, 408 00:21:51,000 --> 00:21:54,000 a určite chcete používať automatickú počítanie referencií, 409 00:21:54,000 --> 00:21:58,000 čo je sympatické, že vám bráni museli povedať, malloc a free. 410 00:21:58,000 --> 00:22:03,000 Ak chcete volať malloc a free, tak by som opustiť tento kontrolované. 411 00:22:03,000 --> 00:22:07,000 Budem kliknite na tlačidlo Ďalej, a nakoniec, to bude a opýtajte sa ma, kde chcem uložiť. 412 00:22:07,000 --> 00:22:14,000 Budem hit vytvoriť, a je to tu. 413 00:22:14,000 --> 00:22:16,000 Vytvoril som nový projekt. 414 00:22:16,000 --> 00:22:19,000 Sem na ľavej strane sú všetky súbory, ktoré sú vo vnútri môjho projektu, 415 00:22:19,000 --> 00:22:22,000 a všimnite si, že mám veľa, a ani som nič. 416 00:22:22,000 --> 00:22:24,000 IOS je skvelá. 417 00:22:24,000 --> 00:22:27,000 >> Napríklad, tu to ViewController.h, 418 00:22:27,000 --> 00:22:30,000 to bude predstavovať svoj prvý pohľad radič, 419 00:22:30,000 --> 00:22:32,000 takže prvý obrazovke vnútri mojej aplikácie. 420 00:22:32,000 --> 00:22:34,000 Teraz už viem, čo to hovorí. 421 00:22:34,000 --> 00:22:36,000 Hovoríme volám tejto triedy ViewController, 422 00:22:36,000 --> 00:22:40,000 a ViewController robí všetko, čo UIViewController robí, 423 00:22:40,000 --> 00:22:43,000 a to je opäť nejaký trieda, ktorá Apple napísal, že robí veľa šikovný vecí pre nás 424 00:22:43,000 --> 00:22:46,000 Páči zobrazenie obrazovky. 425 00:22:46,000 --> 00:22:50,000 Tu je miesto, kde môžem skutočne začať vymedzenie toho, čo podľa môjho názoru regulátor robí, 426 00:22:50,000 --> 00:22:52,000 a ukázalo sa, že som sa naozaj nepotrebujú nič z toho. 427 00:22:52,000 --> 00:22:55,000 To je často používaný kód, ktorý Apple mi dáva zadarmo. 428 00:22:55,000 --> 00:22:59,000 Ja som napríklad, že prvý riadok, alebo nemám triedu, 429 00:22:59,000 --> 00:23:02,000 takže sa môžeme zbaviť toho a toho zbaviť. 430 00:23:02,000 --> 00:23:05,000 Dobre, tak to je moja prázdna obrazovka. 431 00:23:05,000 --> 00:23:08,000 >> Teraz poďme kliknite na MainStoryboard.storyboard, 432 00:23:08,000 --> 00:23:11,000 a to je miesto, kde to začína byť zaujímavé. 433 00:23:11,000 --> 00:23:14,000 Jedná sa o prvú obrazovku na svoje aplikácie. 434 00:23:14,000 --> 00:23:17,000 Ak chcem pridať tlačidlo, v HTML som musel vytvoriť tlačidlo tag. 435 00:23:17,000 --> 00:23:20,000 V Android budete musieť vytvoriť tlačidlá značku, 436 00:23:20,000 --> 00:23:23,000 ale v iOS, ak som sem prišiel, aby v pravom dolnom rohu 437 00:23:23,000 --> 00:23:27,000 a keď som kliknite na tento tretí jeden tu, kde sa hovorí objektov, 438 00:23:27,000 --> 00:23:31,000 a môžem sa posunúť dole, alebo môžem začať hľadať tlačidlo. 439 00:23:31,000 --> 00:23:35,000 A pozrite sa, tlačidlá, takže keď som vlastne pretiahnuť toto právo existuje, 440 00:23:35,000 --> 00:23:38,000 Práve som pridal tlačidlo na túto obrazovku, na mojom app. 441 00:23:38,000 --> 00:23:41,000 Ak chcem zmeniť text, môžem dvakrát na ňu kliknite, 442 00:23:41,000 --> 00:23:47,000 povedať niečo nalákať ako "Stlačte mňa." 443 00:23:47,000 --> 00:23:51,000 Dobre, teraz, keď spustím túto aplikáciu, tak sme ho skompilovať 444 00:23:51,000 --> 00:23:54,000 tak spustiť som kliknite na tlačidlo Play v ľavom hornom rohu, a tu je moja app. 445 00:23:54,000 --> 00:23:58,000 Neurobil som nič, a ja som dostal sladkú hľadá pre iPhone. 446 00:23:58,000 --> 00:24:01,000 Ak chcem, aby to zastaviť, môžete kliknúť na tlačidlo stop 447 00:24:01,000 --> 00:24:03,000 pretože je to väčšia zábava. 448 00:24:03,000 --> 00:24:07,000 >> Povedzme, že som vlastne chcem aby sa niečo stalo, keď som stlačte toto tlačidlo. 449 00:24:07,000 --> 00:24:09,000 K tomu, že to, čo musím urobiť, je, že som potrebné vytvoriť 450 00:24:09,000 --> 00:24:13,000 nové obslužné rutiny udalosti alebo akcie. 451 00:24:13,000 --> 00:24:16,000 To znamená, že musím vytvoriť nejakú metódu, ktorú chcem byť nazývaný 452 00:24:16,000 --> 00:24:18,000 keď som stlačte tlačidlo, tak sa poďme vytvoriť novú metódu. 453 00:24:18,000 --> 00:24:20,000 Som vnútri ViewController.h. 454 00:24:20,000 --> 00:24:22,000 Musím povedať, že existuje metóda. 455 00:24:22,000 --> 00:24:26,000 Potrebujem pomlčku ako prvý, pretože budem sa volá to na kontroleru pohľadu. 456 00:24:26,000 --> 00:24:28,000 Musím dať to typ. 457 00:24:28,000 --> 00:24:31,000 Typ to bude, že IBAction vec, ktorú sme videli predtým. 458 00:24:31,000 --> 00:24:35,000 To je obslužná rutina udalosť, takže to bude vrátiť IBAction, 459 00:24:35,000 --> 00:24:38,000 a to je náznak, aby Xcode povedať, že 460 00:24:38,000 --> 00:24:40,000 to je niečo, čo chcem zapojiť niečo. 461 00:24:40,000 --> 00:24:45,000 Môžem dať mu meno, ako je buttonPressed, bodkočiarkou. 462 00:24:45,000 --> 00:24:48,000 >> Teraz som vyhlásil novú metódu vnútri mojej triedy. 463 00:24:48,000 --> 00:24:50,000 Ja som povedal, táto metóda má existovať. 464 00:24:50,000 --> 00:24:53,000 Teraz sa poďme prísť do ViewController.m, 465 00:24:53,000 --> 00:24:56,000 a povedzme, že to, čo táto metóda môže urobiť. 466 00:24:56,000 --> 00:25:03,000 Keď začnem písať, napríklad, (void) buttonPressed 467 00:25:03,000 --> 00:25:06,000 Oznámenie Xcode je to naozaj pekné a autocompletes pre mňa. 468 00:25:06,000 --> 00:25:09,000 To je naozaj úžasné. 469 00:25:09,000 --> 00:25:12,000 Všimnite si, že vo vnútri. M. súboru môžem tiež povedať neplatné, 470 00:25:12,000 --> 00:25:15,000 a to preto, že IBAction nie je vlastne druh. 471 00:25:15,000 --> 00:25:19,000 Je to vlastne hashtag definovaný niekde byť neplatné, 472 00:25:19,000 --> 00:25:22,000 a znova, je to len náznak, aby Xcode, že hovorí, že 473 00:25:22,000 --> 00:25:25,000 Chcem, aby to bolo obslužná rutina udalosť, a uvidíme, prečo pár sekúnd. 474 00:25:25,000 --> 00:25:28,000 Po stlačení tohto tlačidla sa budem robiť niečo nepríjemné 475 00:25:28,000 --> 00:25:30,000 Páči zobrazí popup. 476 00:25:30,000 --> 00:25:35,000 >> Ak chcete, že môžem vytvoriť novú inštanciu tejto triedy s názvom UIAlertView, 477 00:25:35,000 --> 00:25:39,000 a to je trieda, ktorá Apple napísal, že sa bude zobrazovať otravné vyskakovacie okná. 478 00:25:39,000 --> 00:25:43,000 Budeme volať tento popup upozornenia, a mám 2 kroky, nezabudnite, k vytvoreniu tohto objektu. 479 00:25:43,000 --> 00:25:46,000 Prvá vec, ktorú musím urobiť, je prideliť miesto. 480 00:25:46,000 --> 00:25:48,000 Chcem UIAlertView. 481 00:25:48,000 --> 00:25:51,000 Chcem prideliť miesto. To je môj prvý metóda. 482 00:25:51,000 --> 00:25:53,000 Môj ďalší metóda je chcem k inicializácii, 483 00:25:53,000 --> 00:25:58,000 a tak mám túto veľkú, dlhú metódu zvanú initWithTitle. 484 00:25:58,000 --> 00:26:01,000 To je v podstate bude kontrolovať, čo to popup hovorí. 485 00:26:01,000 --> 00:26:04,000 Názov mojej Popup môže byť ahoj. 486 00:26:04,000 --> 00:26:08,000 Posolstvo tohto okienka môže byť "Toto je iOS." 487 00:26:08,000 --> 00:26:10,000 Delegát vec, ja neviem, čo to je. 488 00:26:10,000 --> 00:26:13,000 Povedzme, že to nič nie je. 489 00:26:13,000 --> 00:26:18,000 Teraz tlačidlo, že sa to objaví povedať niečo ako "To určite je," 490 00:26:18,000 --> 00:26:24,000 a ja naozaj nechcem žiadne ďalšie tlačidlo, tak sa poďme odstrániť to a zatvorte konzolu. 491 00:26:24,000 --> 00:26:27,000 >> Dobre, som vytvoril ešte jednu. Tam ideme. 492 00:26:27,000 --> 00:26:30,000 To je, ako môžem vytvoriť nový popup. 493 00:26:30,000 --> 00:26:35,000 Ak chcem skutočne ukázať popup chcem volať show metódy. 494 00:26:35,000 --> 00:26:38,000 Ak chcete, že môžem povedať, upozornenia a ukázať, 495 00:26:38,000 --> 00:26:40,000 a znova, autocomplete bol super nice. 496 00:26:40,000 --> 00:26:42,000 Ak som zabudol, čo to bolo, keby som si napísali v s, 497 00:26:42,000 --> 00:26:45,000 Môžem prechádzať sem prísť na to, čo to je, 498 00:26:45,000 --> 00:26:48,000 a filtruje pekne. 499 00:26:48,000 --> 00:26:52,000 Teraz som vytvoril tento nový popup. 500 00:26:52,000 --> 00:26:55,000 Vrátime sa na to, čo delegát znamená neskôr, 501 00:26:55,000 --> 00:26:58,000 a teraz chcem povedať, chcem to metóda, ktorá sa padáka 502 00:26:58,000 --> 00:27:01,000 keď som stlačte tlačidlo, takže budem sa vrátiť do môjho scenára, 503 00:27:01,000 --> 00:27:04,000 a chcem teraz pripojiť túto IBAction. 504 00:27:04,000 --> 00:27:06,000 Prvá vec, ktorú chcete urobiť, je kliknúť na tlačidlo. 505 00:27:06,000 --> 00:27:08,000 Keď som toto tlačidlo Chcem aby sa niečo stalo. 506 00:27:08,000 --> 00:27:10,000 Nebudem držať kontrolu. 507 00:27:10,000 --> 00:27:13,000 Idem na tlačidlo a pretiahnite tlačidlo 508 00:27:13,000 --> 00:27:15,000 na viac ako tu, kde sa hovorí, že View Controller. 509 00:27:15,000 --> 00:27:17,000 Môžeme vidieť, že to pekne svieti. 510 00:27:17,000 --> 00:27:22,000 >> Ak som sa pustil so svojím myšou Teraz mám to okno sem, kde som nejaké možnosti. 511 00:27:22,000 --> 00:27:24,000 Jedným z nich je udalosťou, ktoré môžem zaregistrovať. 512 00:27:24,000 --> 00:27:28,000 Jedná sa o všetky tie metódy Aj deklarovaných v mojom súbore h ako IBActions. 513 00:27:28,000 --> 00:27:31,000 To je, ako Xcode vie, čo by sa mal objaviť v tomto malom zozname, 514 00:27:31,000 --> 00:27:33,000 tak, že je to len náznak. 515 00:27:33,000 --> 00:27:37,000 Keby som kliknite na tlačidlo stlačené, som teraz registrované obslužnú rutinu udalosti. 516 00:27:37,000 --> 00:27:41,000 V JavaScriptu sme museli povedať, že som nejaký kód, ktorý registrovaná obslužná rutina udalosť. 517 00:27:41,000 --> 00:27:43,000 V Objective-C bolo naozaj tak jednoduché. 518 00:27:43,000 --> 00:27:46,000 Keď spustím to znova 519 00:27:46,000 --> 00:27:49,000 teraz, keď som stlačte tlačidlo môj obslužná rutina udalosť je vyhodí, 520 00:27:49,000 --> 00:27:51,000 a budem si to popup. 521 00:27:51,000 --> 00:27:54,000 Super, super jednoduchý tam. 522 00:27:54,000 --> 00:27:57,000 >> Ak ste niekedy chceli vidieť všetky udalosti, ktoré sa dejú byť registrované 523 00:27:57,000 --> 00:28:00,000 na komponenty, ak som kliknite na toto tlačidlo 524 00:28:00,000 --> 00:28:02,000 a ja som prišiel sem na pravej strane 525 00:28:02,000 --> 00:28:05,000 prvý môžete vidieť tu môžem robiť veci, ako je typ tlačidla, 526 00:28:05,000 --> 00:28:08,000 takže ak chcete jednu z tých, ktoré som to, alebo na Pridať kontakt tlačidlo 527 00:28:08,000 --> 00:28:10,000 alebo čokoľvek iného. 528 00:28:10,000 --> 00:28:13,000 Ak chcem vidieť všetky udalosti, ktoré sú na toto tlačidlo 529 00:28:13,000 --> 00:28:16,000 keď som prišiel celú cestu sem na pravej strane 530 00:28:16,000 --> 00:28:19,000 môžeme vidieť tu na udalosti, ktoré mám všetky tieto rôzne udalosti. 531 00:28:19,000 --> 00:28:23,000 Môžem stlačte tlačidlo, keď som pustil tlačidla, keď som dvakrát kohút alebo čokoľvek, 532 00:28:23,000 --> 00:28:26,000 a ten, ktorý som práve registrovaný, je táto udalosť nazýva Dotknite sa vnútri, 533 00:28:26,000 --> 00:28:29,000 a to hovorí, že akonáhle môj prst príde na tlačidlo 534 00:28:29,000 --> 00:28:32,000 táto udalosť sa chystá na oheň, a to je presne to, čo sa práve stalo. 535 00:28:32,000 --> 00:28:36,000 To je druh predvolené tlačidlo stlačené udalosti. 536 00:28:36,000 --> 00:28:39,000 >> Akékoľvek otázky tak ďaleko? 537 00:28:39,000 --> 00:28:43,000 Dobre, že to, ako môžeme začať zapojiť do veci v našom kóde 538 00:28:43,000 --> 00:28:46,000 do vecí vnútri nášho rozhrania. 539 00:28:46,000 --> 00:28:49,000 Nezabudnite prvá vec, ktorú sme museli urobiť, bolo nájsť kód, 540 00:28:49,000 --> 00:28:54,000 a potom sme napojený rozhranie ku kódu, 541 00:28:54,000 --> 00:28:57,000 a tam to naše prvé app. 542 00:28:57,000 --> 00:29:00,000 Dobre, to bolo naozaj cool, a vytvorili sme toto tlačidlo. 543 00:29:00,000 --> 00:29:03,000 Čo ak nechceme, aby si vytvoriť veľa vlastností 544 00:29:03,000 --> 00:29:05,000 predstavuje tieto tlačidlá? 545 00:29:05,000 --> 00:29:08,000 Napríklad, v Tic Tac Toe mám 9 tlačidiel, 546 00:29:08,000 --> 00:29:11,000 a bolo by super, super nepríjemné musieť pretiahnuť 9 krát 547 00:29:11,000 --> 00:29:14,000 alebo keď som musel robiť Tic Tac Toe s 81 miesto 9 548 00:29:14,000 --> 00:29:17,000 a musel som drag and drop 81 krát, a to je lame. 549 00:29:17,000 --> 00:29:20,000 Čo môžeme urobiť, namiesto toho je podobne ako HTML 550 00:29:20,000 --> 00:29:23,000 keď sme mali veci ako ID a mená a môžeme hľadať veci 551 00:29:23,000 --> 00:29:27,000 ich ID, je to podobný pojem v iOS tzv tagy. 552 00:29:27,000 --> 00:29:31,000 >> Tag je jednoducho jedinečný číselný identifikátor pre komponent. 553 00:29:31,000 --> 00:29:34,000 Ak Hovorím to má tag 0, napríklad, 554 00:29:34,000 --> 00:29:38,000 keď som vytvoriť tlačidlo a dať mu tag 0, a uvidíme, ako to urobiť, že pár sekúnd, 555 00:29:38,000 --> 00:29:41,000 keď chcem sa dostať na toto tlačidlo môžem jednoducho povedať, chcem volať 556 00:29:41,000 --> 00:29:45,000 viewWithTag metódy na objekte sem, 557 00:29:45,000 --> 00:29:48,000 self.view, ktorý predstavuje aktuálnu obrazovku, napríklad. 558 00:29:48,000 --> 00:29:53,000 Keby som zavolať, že viewWithTag metódu, budem zatiahnite tlačidlo s tagom 0. 559 00:29:53,000 --> 00:29:58,000 Poďme sa pozrieť na to, že bude stavať Tic Tac Toe. 560 00:29:58,000 --> 00:30:01,000 Po prvé, to je môj scenár. 561 00:30:01,000 --> 00:30:05,000 Vytvoril som tieto 10 UI tlačidla. 562 00:30:05,000 --> 00:30:07,000 Všimnite si, že sú všetci rovnakej veľkosti. 563 00:30:07,000 --> 00:30:11,000 Keby som kliknite na jednu z nich, a vrátim sa sem na tejto pravej strane 564 00:30:11,000 --> 00:30:15,000 uvidíte som upravil písmo tu, tak som sa na písmo, trochu väčšie, 565 00:30:15,000 --> 00:30:19,000 ale to, čo som aj urobil, bolo, som nastavte tento tag. 566 00:30:19,000 --> 00:30:23,000 Povedal som, že to má tag 1, a to vľavo hore. 567 00:30:23,000 --> 00:30:26,000 >> Teraz, keď som kliknite na ďalšie tlačidlo, ako je tento druhý tu, 568 00:30:26,000 --> 00:30:29,000 Teraz uvidíte, že moja značka je 2. 569 00:30:29,000 --> 00:30:32,000 Každé z týchto tlačidiel má jednoducho jedinečný značku, 570 00:30:32,000 --> 00:30:35,000 a tak to je neskôr, ako budem začať interakciu 571 00:30:35,000 --> 00:30:38,000 s mojím aplikácie. 572 00:30:38,000 --> 00:30:40,000 To všetko je vo vnútri jedného pohľadu regulátora, 573 00:30:40,000 --> 00:30:42,000 ale tu je to, čo máme. 574 00:30:42,000 --> 00:30:44,000 Máme 3 vlastnosti tu. 575 00:30:44,000 --> 00:30:49,000 Prvý a posledný budú reprezentovať stav mojej doske. 576 00:30:49,000 --> 00:30:53,000 V podstate to prvé je pole predstavujúce kde Xs a Os sú. 577 00:30:53,000 --> 00:30:57,000 Tento druhý tu nám hovorí, ktorý je na ťahu. 578 00:30:57,000 --> 00:31:01,000 Určite ste si všimli, že som aj tieto veci tu. 579 00:31:01,000 --> 00:31:05,000 Ako keď sme vyhlásili, vlastnosti, dal im meno a typ. 580 00:31:05,000 --> 00:31:08,000 Môžeme tiež dať im nejaké ďalšie informácie tu. 581 00:31:08,000 --> 00:31:11,000 Toto Prvý hovorí nonatomic, a čo to hovorí 582 00:31:11,000 --> 00:31:16,000 je v podstate len jedna vec, ktorú nikdy nebude pokuse o prístup k tejto premennej v čase. 583 00:31:16,000 --> 00:31:19,000 Dalo by sa to zložitejšie aplikácie, ktoré sú multi-Threaded, 584 00:31:19,000 --> 00:31:22,000 a tak v roku Scratch sme mali rôzne závity, 585 00:31:22,000 --> 00:31:25,000 a rôzne škriatkovia mohli robiť rôzne veci v rovnakom čase. 586 00:31:25,000 --> 00:31:29,000 >> Ak to nie je tento prípad, ktorý nie je v ničom, že budeme pri pohľade na, 587 00:31:29,000 --> 00:31:33,000 Ak povieme nonatomic to vlastne bude robiť veci trochu rýchlejšie. 588 00:31:33,000 --> 00:31:37,000 Máme aj túto vec s názvom Assign, silný, alebo slabý. 589 00:31:37,000 --> 00:31:40,000 Tento priradiť len hovorí, že sa jedná o štandardný typ. 590 00:31:40,000 --> 00:31:43,000 To nie je objekt alebo ukazovateľ, pretože je to len bool, 591 00:31:43,000 --> 00:31:46,000 tak bool je vstavaný do Objective-C. 592 00:31:46,000 --> 00:31:49,000 To hovorí, že sa nesnaží nič robiť fantázii s ukazovateľmi tu. 593 00:31:49,000 --> 00:31:51,000 Je to normálne stará scaler. 594 00:31:51,000 --> 00:31:54,000 Silné a slabé, to slabé hovorí, že v skutočnosti 595 00:31:54,000 --> 00:31:57,000 Chcem, aby to mal ukazovať na niečo v pohľade regulátora. 596 00:31:57,000 --> 00:32:00,000 Nebudem sa skutočne prideliť alebo init to sám. 597 00:32:00,000 --> 00:32:04,000 Interface Builder, keď som spustiť aplikáciu, bude zvládnuť všetku tú inicializácii. 598 00:32:04,000 --> 00:32:07,000 Keď poviem slabá, že hovorí, že niekto iný bude vytvárať to. 599 00:32:07,000 --> 00:32:09,000 Keď poviem, že silná, to hovorí, že budem mať jeden 600 00:32:09,000 --> 00:32:12,000 to je vytvorenie tejto dosky objektu, 601 00:32:12,000 --> 00:32:14,000 a tak tu mám nejaké ďalšie metódy tu, 602 00:32:14,000 --> 00:32:18,000 Napríklad, akcie, keď je stlačené tlačidlo nová hra, 603 00:32:18,000 --> 00:32:20,000 akcia pre pri stlačení niektorého z ďalších tlačidiel, 604 00:32:20,000 --> 00:32:23,000 a et cetera. 605 00:32:23,000 --> 00:32:26,000 >> Nebudeme sa dostať do príliš veľa logiky Tic Tac Toe, 606 00:32:26,000 --> 00:32:30,000 aj keď je to veľmi vzrušujúce, ale poďme sa pozrieť na 607 00:32:30,000 --> 00:32:33,000 niektoré z vecí, ktoré môžeme urobiť vnútri iOS. 608 00:32:33,000 --> 00:32:35,000 Táto nová hra metóda sa bude vyhodený 609 00:32:35,000 --> 00:32:37,000 keď som stlačte novú hru tlačidlo. 610 00:32:37,000 --> 00:32:41,000 Ak chcete pripojiť, že až som jednoducho prísť do môjho scenára. 611 00:32:41,000 --> 00:32:43,000 Som klikol na novú hru. 612 00:32:43,000 --> 00:32:47,000 Ak prídem sem napravo vidím, že 613 00:32:47,000 --> 00:32:50,000 Dotknite sa vnútri je pripojený k newGame metódy. 614 00:32:50,000 --> 00:32:53,000 To je dôvod, prečo to bude dostať padáka. 615 00:32:53,000 --> 00:32:56,000 Metóda newGame urobí nejaký súbor hore. 616 00:32:56,000 --> 00:32:59,000 Bude to, že chcem, aby si vymazať stav dosky. 617 00:32:59,000 --> 00:33:01,000 To je pekný spôsob na premenlivých polí. 618 00:33:01,000 --> 00:33:03,000 To je povedať, že je to teraz X je na rade, 619 00:33:03,000 --> 00:33:07,000 a teraz idem využiť tejto viewWithTag veci. 620 00:33:07,000 --> 00:33:11,000 >> Ja viem, že môj tlačidlá majú slová 1-9, 621 00:33:11,000 --> 00:33:13,000 a to je niečo, čo som svojvoľne vybral. 622 00:33:13,000 --> 00:33:15,000 Ak chcem nastaviť text každého tlačidla je prázdna 623 00:33:15,000 --> 00:33:17,000 pretože som práve začal novú hru, a ja nechcem 624 00:33:17,000 --> 00:33:20,000 Xs alebo Os zostať cez to dokážem. 625 00:33:20,000 --> 00:33:24,000 Môžem povedať, chcem názor na značku, 1, 2, 3, 4 et cetera. 626 00:33:24,000 --> 00:33:27,000 To bude ťahať inú tlačidlo zakaždým. 627 00:33:27,000 --> 00:33:30,000 Tu budem vrci UIButton. 628 00:33:30,000 --> 00:33:33,000 Rovnako ako my by mohlo vrhnúť ints na plaváky a naopak 629 00:33:33,000 --> 00:33:37,000 to hovorí, že chcem hodiť to na UIButton. 630 00:33:37,000 --> 00:33:40,000 To znamená, že druh je potom * UIButton 631 00:33:40,000 --> 00:33:43,000 pretože ukazovateľov, ale nebojte sa, že to nie je desivé už. 632 00:33:43,000 --> 00:33:47,000 >> Akonáhle budem mať na toto tlačidlo idem volať metódu na to. 633 00:33:47,000 --> 00:33:50,000 Táto metóda sa nazýva setTitle Forstau, a tak to hovorí 634 00:33:50,000 --> 00:33:53,000 Chcem nastaviť text tlačidla sa prázdny reťazec, 635 00:33:53,000 --> 00:33:57,000 a chcem, aby to bolo prázdny reťazec, ak to nie je stlačené. 636 00:33:57,000 --> 00:34:01,000 Ak som pomocou tejto metódy, môžem zmeniť text tlačidla 637 00:34:01,000 --> 00:34:04,000 akonáhle niekto udrie, ale chceme povedať, keď je tlačidlo len tam sedí 638 00:34:04,000 --> 00:34:07,000 Chcem text byť prázdne. 639 00:34:07,000 --> 00:34:10,000 Nakoniec, budeme inicializovať moja doska, 640 00:34:10,000 --> 00:34:12,000 a ja poviem, že všetko je v súčasnej dobe 0, 641 00:34:12,000 --> 00:34:15,000 tak táto doska členovia nemenná je premenlivé polia, 642 00:34:15,000 --> 00:34:21,000 čo znamená, že môžete volať AddObject metódy a len 0 vnútri nej. 643 00:34:21,000 --> 00:34:23,000 To je to, čo sa stane, keď si vytvorím novú hru. 644 00:34:23,000 --> 00:34:25,000 >> Poďme sa pozrieť na inú. 645 00:34:25,000 --> 00:34:28,000 Táto metóda je tu IBAction, že sa to byť stlačené 646 00:34:28,000 --> 00:34:31,000 zakaždým, keď jeden z tých štvorcov je stlačené. 647 00:34:31,000 --> 00:34:33,000 Teraz máme nejaký Tic Tac Toe logika. 648 00:34:33,000 --> 00:34:36,000 Sme prísť na to, ktorý je na ťahu, 649 00:34:36,000 --> 00:34:39,000 a na základe toho sme buď nastaviť X alebo O, 650 00:34:39,000 --> 00:34:43,000 ale sme si všimli, že sme opakovaného rovnaký obslužnú rutinu udalosti 651 00:34:43,000 --> 00:34:45,000 pre jedného každého z týchto tlačidiel. 652 00:34:45,000 --> 00:34:49,000 To znamená, že nemám metódu pre ľavé horné tlačidlo, 653 00:34:49,000 --> 00:34:52,000 iný spôsob tlačidlo vpravo dole, aj keď som mohol urobiť, že. 654 00:34:52,000 --> 00:34:54,000 To by nebolo naozaj dobrý design. 655 00:34:54,000 --> 00:34:57,000 Čo tu robím je, že som vlastne ísť na určenie 656 00:34:57,000 --> 00:35:00,000 čo tag tlačidlo, ktoré bola stlačená je. 657 00:35:00,000 --> 00:35:04,000 Všimnite si, že táto hra metóda prijíma jeden argument. 658 00:35:04,000 --> 00:35:07,000 Hovorí sa tomu odosielateľ, a to, čo odosielateľ je odosielateľ bude 659 00:35:07,000 --> 00:35:10,000 predstavujú presne to, čo bolo prijaté opatrenia na. 660 00:35:10,000 --> 00:35:15,000 Ak stlačím tlačidlo, tento odosielateľ bude, že UIButton 661 00:35:15,000 --> 00:35:18,000 že som vlastne stlačení, takže to znamená, že tento UIButton 662 00:35:18,000 --> 00:35:20,000 má značku, pretože som vytvoril značku. 663 00:35:20,000 --> 00:35:23,000 >> Ak chcem sa dostať na značku môžem len povedať, 664 00:35:23,000 --> 00:35:26,000 Chcem tag odosielateľa, 665 00:35:26,000 --> 00:35:28,000 a znova, práve som odliata to na UIButton. 666 00:35:28,000 --> 00:35:32,000 Ja náhodou viem, že odosielateľ bude UIButton. 667 00:35:32,000 --> 00:35:34,000 To nemusí vždy byť UIButton. 668 00:35:34,000 --> 00:35:36,000 Mohol by som napríklad, registrovať rovnakú obslužnú rutinu udalosti 669 00:35:36,000 --> 00:35:38,000  pre jeden pre tlačidlá, jedno pre jazdca. 670 00:35:38,000 --> 00:35:40,000 V tomto prípade, ja viem, že sú všetky tlačidlá, takže som chcel povedať 671 00:35:40,000 --> 00:35:43,000 Chcem, aby to bolo tlačidlo, a potom môžem dostať značku, 672 00:35:43,000 --> 00:35:48,000 a z tagu ja teraz viem, kde som vo vnútri dosky. 673 00:35:48,000 --> 00:35:51,000 Potom môžem jednoducho nastaviť buď X alebo O, môžete prepínať na turne, 674 00:35:51,000 --> 00:35:54,000 zistiť, kto vyhral, ​​et cetera. 675 00:35:54,000 --> 00:35:59,000 >> Akékoľvek otázky týkajúce sa to tak ďaleko? 676 00:35:59,000 --> 00:36:02,000 Dobre, kód sme dosiahli on-line nechceme dostať do príliš veľa 677 00:36:02,000 --> 00:36:06,000 z Toe Tic Tac logike, ale teraz je vidieť, že naozaj 678 00:36:06,000 --> 00:36:09,000 všetko, čo robíme je my sme looping cez tohto poľa, 679 00:36:09,000 --> 00:36:13,000 takže máme pár pre slučiek tu, a my sme len nákupný vidieť 680 00:36:13,000 --> 00:36:18,000 máme zhodu vo všetkých riadkoch, Relevantnosť v stĺpci alebo niečo podobné. 681 00:36:18,000 --> 00:36:21,000 Ak chcete skutočne spustiť túto aplikáciu, keď som kliknite na jedno z týchto tlačidiel 682 00:36:21,000 --> 00:36:24,000 že hra metóda bol vyhodený, tak to znamená, že som bol práve nastavený 683 00:36:24,000 --> 00:36:31,000 Tlačidlo byť X, takže teraz toto tlačidlo bude O, a tak ďalej, 684 00:36:31,000 --> 00:36:35,000 a tak to je, ako my teraz začíname pracovať s touto jedinou stránku aplikácie. 685 00:36:35,000 --> 00:36:38,000 >> Budeme písať kód, tak neváhajte a prezrieť, že 686 00:36:38,000 --> 00:36:43,000 ale poďme teraz hovoriť o niektorých aplikácií, ktoré sú viac než len jednu stránku. 687 00:36:43,000 --> 00:36:47,000 Tak vzrušujúce ako Tic Tac Toe je, veľa aplikácií vnútri iOS 688 00:36:47,000 --> 00:36:50,000 sú trochu z týchto cvičení sa veci s viacerými obrazovkami. 689 00:36:50,000 --> 00:36:54,000 Prvý koncept, že budeme musieť hovoriť o sú protokoly, 690 00:36:54,000 --> 00:36:57,000 a protokol je jednoducho súbor metód 691 00:36:57,000 --> 00:36:59,000 ktoré môžete sľúbiť, že definovať. 692 00:36:59,000 --> 00:37:02,000 Ak som vytvoriť tento nový protokol s 2 metódami, tento prvý stupeň, 693 00:37:02,000 --> 00:37:05,000 ak návratový typ je void, volal som to foo. 694 00:37:05,000 --> 00:37:07,000 To trvá žiadne argumenty. Mám inú metódu. 695 00:37:07,000 --> 00:37:11,000 To vráti int. Nazval som ju blokovať, a to trvá jeden argument. 696 00:37:11,000 --> 00:37:14,000 To všetko je protokol, ktorý sa nazýva SomeProtocol tu, 697 00:37:14,000 --> 00:37:19,000 Jedná sa o súbor vecí, ktoré niekto môže realizovať. 698 00:37:19,000 --> 00:37:22,000 Nemám vo vnútri tohto protokolu povedal, čo foo robí. 699 00:37:22,000 --> 00:37:26,000 Namiesto toho, ja som len povedať, že si mohli definovať foo, ak chcete. 700 00:37:26,000 --> 00:37:30,000 Ak som vytvoriť zobrazenie radič alebo vytvoriť triedu 701 00:37:30,000 --> 00:37:33,000 Môžem vnútri tejto triedy sľubu realizovať 702 00:37:33,000 --> 00:37:40,000 Niektoré z týchto metód, takže napríklad v prípade povedať 703 00:37:40,000 --> 00:37:43,000 teraz hovorí, že robím sľub vám, že vo vnútri 704 00:37:43,000 --> 00:37:50,000 tejto triedy View Controller budem mať definície pre oba foo a bar. 705 00:37:50,000 --> 00:37:52,000 >> Prečo je to užitočné? 706 00:37:52,000 --> 00:37:55,000 Veľa komponentov vnútri iOS využiť tohto 707 00:37:55,000 --> 00:37:58,000 návrhový vzor tzv delegáciu, a to, čo hovorí, že delegácie 708 00:37:58,000 --> 00:38:01,000 je to, že sa napríklad, keď sa textové pole 709 00:38:01,000 --> 00:38:04,000 a tam sú niektoré udalosti, ktoré by mohli byť registrované vo vnútri mojej textového poľa, 710 00:38:04,000 --> 00:38:07,000 skôr než vytvorenie samostatných akcií, čo môžem urobiť, je môžem povedať 711 00:38:07,000 --> 00:38:10,000 delegát tohto textového poľa bude nejaký objekt. 712 00:38:10,000 --> 00:38:13,000 Keď hovorím, že je to delegát teraz to znamená, že 713 00:38:13,000 --> 00:38:16,000 ak by nejaká udalosť boli vypálené do textového poľa 714 00:38:16,000 --> 00:38:18,000 skôr než k registrácii alebo niečo podobné, že 715 00:38:18,000 --> 00:38:21,000 je to len zavolá metódu na delegáta. 716 00:38:21,000 --> 00:38:24,000 Napríklad, vo vnútri mojej textového poľa mám metódu, keď som stlačte 717 00:38:24,000 --> 00:38:27,000 že vykonáva tlačidlo v pravej dolnej, 718 00:38:27,000 --> 00:38:30,000 a tak skôr než registrácie obslužnú rutinu udalosti, čo môžem povedať je 719 00:38:30,000 --> 00:38:34,000 textové pole, tu je objekt, ktorý chcem, aby si volať metódu na 720 00:38:34,000 --> 00:38:37,000 Zakaždým, keď niekto stlačí tlačidlo Done, 721 00:38:37,000 --> 00:38:40,000 a to znamená, že objekt musí implementovať nejaký protokol 722 00:38:40,000 --> 00:38:45,000 , Ktorý hovorí, sľubujem definovať, že urobil tlačidlo akcie, 723 00:38:45,000 --> 00:38:47,000 pretože ak to nie je define túto metódu a stlačte tlačidlo Hotovo, 724 00:38:47,000 --> 00:38:49,000 potom to bude mätúce. 725 00:38:49,000 --> 00:38:55,000 >> Poďme sa pozrieť na príklad. 726 00:38:55,000 --> 00:38:58,000 Tu som proste jedno textové pole, 727 00:38:58,000 --> 00:39:04,000 a jedna z vlastností tohto textového poľa nad tu na tejto pravej strane je delegát. 728 00:39:04,000 --> 00:39:06,000 To je vlastnosť triedy. 729 00:39:06,000 --> 00:39:09,000 Čo som urobil, je tu môžem kontrolovať klikol, a ja som vytiahol z tohto miesta sem 730 00:39:09,000 --> 00:39:13,000 na zobrazenie radič, a to hovorí, že teraz delegáta tohto textového poľa 731 00:39:13,000 --> 00:39:18,000 bude zobrazenie radič. 732 00:39:18,000 --> 00:39:20,000 To znamená, že keď niektoré akcie stane, skôr než registráciu 733 00:39:20,000 --> 00:39:25,000 samostatné obslužné rutiny Chcem, aby si ich poslal do delegáta. 734 00:39:25,000 --> 00:39:28,000 Teraz sa poďme pozrieť na môjho názoru regulátora. 735 00:39:28,000 --> 00:39:32,000 Vnútri. Súboru h som sľub. 736 00:39:32,000 --> 00:39:36,000 Sľúbil som realizovať niektoré metódy vnútri tohto protokolu 737 00:39:36,000 --> 00:39:38,000 názvom UITextFieldDelegate, a znova, 738 00:39:38,000 --> 00:39:42,000 to je len nejaký zoznam niektorých vecí, ktoré som si môžu vybrať implementovať. 739 00:39:42,000 --> 00:39:46,000 >> Keby som sem v mojom. M súboru, som implementoval jednu takú metódu. 740 00:39:46,000 --> 00:39:49,000 Ja som to nazval textFieldShouldReturn 741 00:39:49,000 --> 00:39:52,000 pretože to je to, čo to bolo volané v protokole. 742 00:39:52,000 --> 00:39:57,000 A teraz keď som stlačte tlačidlo Done vnútri tohto textového poľa 743 00:39:57,000 --> 00:40:00,000 to je to, čo sa deje, aby si zavolal, tak som sa zaregistrovať obslužnú rutinu udalosti. 744 00:40:00,000 --> 00:40:03,000 Pripojil som delegáta, a vždy, keď je vyhodený táto udalosť 745 00:40:03,000 --> 00:40:08,000 To je metóda, ktorá bude zavolaný, takže keď som prišiel sem do môjho scenára a spustite ho, 746 00:40:08,000 --> 00:40:11,000 Aj keď to načítanie môžeme vidieť, čo to robí. 747 00:40:11,000 --> 00:40:13,000 Na mojej obrazovke mám 2 veci. 748 00:40:13,000 --> 00:40:16,000 Mám toto textové pole, a ja mám tento štítok. 749 00:40:16,000 --> 00:40:19,000 Ja proste hovoriť Chcem znenie tohto štítku 750 00:40:19,000 --> 00:40:23,000 sa rovná čo užívateľ napísal v vnútri textového poľa. 751 00:40:23,000 --> 00:40:26,000 Tento ďalší riadok tu je jednoducho metóda, ktorá volám 752 00:40:26,000 --> 00:40:29,000 na textové pole, ktoré hovorí, že chcem, aby si skryť klávesnicu. 753 00:40:29,000 --> 00:40:33,000 To je len svojvoľné metóda, ktorá Apple si vybral. 754 00:40:33,000 --> 00:40:38,000 >> Opäť, ako som urobil niečo, čo som musel zapojiť všetko, tak som prvýkrát prišiel sem. 755 00:40:38,000 --> 00:40:42,000 Z pohľadu správcu som pretiahnite ju do textového poľa. 756 00:40:42,000 --> 00:40:46,000 Pustil som, a môžem vidieť, že môžem túto text vlastnosť poľa 757 00:40:46,000 --> 00:40:49,000 pretože tu v kontroleru pohľade som definovaná vlastnosť 758 00:40:49,000 --> 00:40:52,000 že je IBOutlet z textového poľa. 759 00:40:52,000 --> 00:40:55,000 To hovorí, že môžem zapojiť túto vlastnosť sa 760 00:40:55,000 --> 00:40:59,000 do textového poľa v mojom používateľskom rozhraní. 761 00:40:59,000 --> 00:41:03,000 Teraz, keď som kliknite sem môžem začať písať. 762 00:41:03,000 --> 00:41:06,000 Teraz, keď som kliknite na tlačidlo Hotovo, že to bude strieľať 763 00:41:06,000 --> 00:41:08,000 udalosť, ktorá teraz môžem odpovedať. 764 00:41:08,000 --> 00:41:10,000 Žiadne obslužné rutiny. 765 00:41:10,000 --> 00:41:13,000 To je, ako som reagovala na toto tlačidlo Hotovo. 766 00:41:13,000 --> 00:41:15,000 Zmysel? 767 00:41:15,000 --> 00:41:20,000 >> To nie je návrhový vzor, ​​ktorý-sa nemusí vôbec nájsť sami 768 00:41:20,000 --> 00:41:23,000 vytváranie vlastnej protokol, ale len viem, že niektorí 769 00:41:23,000 --> 00:41:27,000 rôzne iOS komponenty zaregistrujte udalosti rôznymi spôsobmi. 770 00:41:27,000 --> 00:41:29,000 Tlačidlá, napríklad, používať tieto IBActions. 771 00:41:29,000 --> 00:41:32,000 Textové polia, na druhej strane, sa bude používať delegátmi. 772 00:41:32,000 --> 00:41:36,000 Môžeme vidieť a môžete sa pozrieť všetci, že až vo vnútri dokumentácie. 773 00:41:36,000 --> 00:41:41,000 Mimochodom, je to vlastne tonu vecí UI postavené na systéme iOS pre vás, 774 00:41:41,000 --> 00:41:46,000 tak napríklad, ako som robil, že hovoria, že urobil v pravom dolnom rohu 775 00:41:46,000 --> 00:41:48,000 je som si vybral toto textové pole. 776 00:41:48,000 --> 00:41:50,000 Prišiel som sem. 777 00:41:50,000 --> 00:41:53,000 Aj posunie dole trochu sa vrátiť kľúč, 778 00:41:53,000 --> 00:41:56,000 a môžem vlastne robiť to celú veľa vecí, ako keď chcem, aby sa povedať, 779 00:41:56,000 --> 00:42:00,000 tiesňového volania namiesto toho môžem urobiť to, čo je úplne náhodné, 780 00:42:00,000 --> 00:42:02,000 a ja neviem, prečo je tu vstavaný tiesňového volania tlačidlo, 781 00:42:02,000 --> 00:42:06,000 ale tam, hovorí tiesňového volania v naozaj malých písmen. 782 00:42:06,000 --> 00:42:08,000 Tam máš. 783 00:42:08,000 --> 00:42:12,000 >> Rozhodne preskúmať všetky tieto rôzne možnosti v iOS. 784 00:42:12,000 --> 00:42:14,000 Akékoľvek otázky týkajúce sa delegáti? 785 00:42:14,000 --> 00:42:18,000 Opäť, rovnako zaujímavý dizajn vzor, ​​ktorý by ste mali byť vedomí. 786 00:42:18,000 --> 00:42:22,000 Dobre, poďme ďalší sa pozrieť na tabuľky výhľadom. 787 00:42:22,000 --> 00:42:26,000 Tabuľka pohľad je v podstate, že zoznam položiek, ktoré je všade okolo v iOS. 788 00:42:26,000 --> 00:42:29,000 Keď ste listovala všetky vaše kontakty, pozeráte sa na 789 00:42:29,000 --> 00:42:34,000 nastavenie stránky, a tento druh zoznamu vecí, sa nazýva zobrazenie tabuľky. 790 00:42:34,000 --> 00:42:37,000 Implementácia zobrazenie tabuľky v iOS je veľmi jednoduchý. 791 00:42:37,000 --> 00:42:41,000 Namiesto toho, aby si triedu, ktorá zostupuje z tohto UIViewController 792 00:42:41,000 --> 00:42:44,000 to, že sme urobili, ako my jednoducho potrebujeme povedať, skôr než 793 00:42:44,000 --> 00:42:46,000 všetko UIViewController sa chcem robiť, 794 00:42:46,000 --> 00:42:50,000 Hovorím všetko UITableViewController sa chcem urobiť, 795 00:42:50,000 --> 00:42:54,000 takže jednoducho pridáva niektoré ďalšie veci, ktoré sú úplne pre nás urobil. 796 00:42:54,000 --> 00:42:58,000 Musíme urobiť len veľmi málo, aby v podstate vyplniť prázdne miesta vo vnútri v tabuľke. 797 00:42:58,000 --> 00:43:02,000 >> Ak chcete zobraziť tabuľku Potrebujem odpovedať na pár otázok. 798 00:43:02,000 --> 00:43:06,000 Prvá otázka, ktorú je potrebné odpovedať, je, koľko úseky sú v tabuľke? 799 00:43:06,000 --> 00:43:08,000 Keď ste listovanie kontakty aplikácie, ktoré si všimnete, že je to trochu 800 00:43:08,000 --> 00:43:12,000 organizuje As, potom máte BS, a budete mať tú malú čiastkové hlavičky. 801 00:43:12,000 --> 00:43:14,000 Každý z nich je tzv úsek. 802 00:43:14,000 --> 00:43:16,000 Môžete môže, ale nemusí potrebovať toto. 803 00:43:16,000 --> 00:43:19,000 Prvá vec, ktorú musíte urobiť, je zaviesť metódu 804 00:43:19,000 --> 00:43:22,000 volal Tableview: numberOfSectionsInTableView. 805 00:43:22,000 --> 00:43:25,000 To jednoducho vráti, koľko sekcií máte, 806 00:43:25,000 --> 00:43:29,000 takže by to mohlo povedať, vrátiť jednu, ak máte jednu veľkú zobrazenie tabuľky. 807 00:43:29,000 --> 00:43:33,000 Ďalšou otázkou, ktorá iOS potrebuje vedieť, je, koľko riadkov máte? 808 00:43:33,000 --> 00:43:36,000 Napríklad, ste listovala zobrazenie tabuľky. 809 00:43:36,000 --> 00:43:39,000 Máte pevný počet piesní, ktoré hľadáte na alebo pevne stanovený počet kontaktov. 810 00:43:39,000 --> 00:43:41,000 Ak ste ma, samozrejme, nie je to veľa, 811 00:43:41,000 --> 00:43:44,000 a tak to je, ako iOS vie, koľko buniek pre zobrazenie. 812 00:43:44,000 --> 00:43:46,000 >> Opäť platí, že by to mohlo povedať niečo ako návrat 3. 813 00:43:46,000 --> 00:43:49,000 Môj stôl pohľad má 3 riadky. 814 00:43:49,000 --> 00:43:52,000 Konečne, iOS potrebuje vedieť, čo každá bunka vyzerá, 815 00:43:52,000 --> 00:43:54,000 tak čo to vlastne bude robiť, je túto metódu volať tu dole, 816 00:43:54,000 --> 00:43:57,000 Tento Tableview: cellForRowAtIndexPath. 817 00:43:57,000 --> 00:44:01,000 Bude to volanie tejto metódy na jednotlivé bunky vnútri vášho stola. 818 00:44:01,000 --> 00:44:03,000 Ako to neviem, koľkokrát to nazvať? 819 00:44:03,000 --> 00:44:06,000 No, povedala si ju vnútri počtu riadkov v oddiele. 820 00:44:06,000 --> 00:44:08,000 Budeme volať to na každom z našich buniek, 821 00:44:08,000 --> 00:44:11,000 a vo vnútri to je miesto, kde si môžete skutočne robiť veci, ako je 822 00:44:11,000 --> 00:44:16,000 nastaviť text, alebo vám povedať, čo to trochu modré tlačidlo na pravej strane robí. 823 00:44:16,000 --> 00:44:19,000 Vzor pre získanie týchto buniek, budeme používať túto metódu 824 00:44:19,000 --> 00:44:22,000 volal dequeueReusableCellWithIdentifier. 825 00:44:22,000 --> 00:44:29,000 >> Objective-C je v skutočnosti veľmi dobre známy pre absurdné dĺžky ich metódy mien, 826 00:44:29,000 --> 00:44:32,000 a to je naozaj pekný prípad v bode príklade. 827 00:44:32,000 --> 00:44:37,000 Čo táto metóda robí, je to len hovorí, že chcem, aby si mi bunku. 828 00:44:37,000 --> 00:44:39,000 Len niečo iOS. 829 00:44:39,000 --> 00:44:41,000 Ak máte niečo také 100.000 skladieb na iPod 830 00:44:41,000 --> 00:44:45,000 Čo iOS nechce urobiť, je prideliť 100.000 buniek, 831 00:44:45,000 --> 00:44:48,000 pretože ak ste na vrchole zoznamu, čo naozaj potrebujete prideliť pamäť 832 00:44:48,000 --> 00:44:51,000 pre bunku, ktorá je 99.000 riadkov dole? 833 00:44:51,000 --> 00:44:55,000 Nie, pretože, ako ste posúvanie môžete druh prideliť za pochodu. 834 00:44:55,000 --> 00:44:57,000 To je pre teba urobil. 835 00:44:57,000 --> 00:44:59,000 Nemusíte sa starať o všetky tie hlúpe veci výkonu. 836 00:44:59,000 --> 00:45:02,000 Všetko, čo hovoria, je volanie tejto metódy dequeueReusableCellWithIdentifier, 837 00:45:02,000 --> 00:45:06,000 a to hovorí, dobre, ak potrebujete idem vytvoriť novú bunku pre vás. 838 00:45:06,000 --> 00:45:09,000 >> Ale ak ste na dne tabuľky a ste už pridelené niektoré bunky 839 00:45:09,000 --> 00:45:12,000 v hornej časti tabuľky, ktoré ste naozaj nebudete potrebovať v dohľadnej dobe 840 00:45:12,000 --> 00:45:15,000 Ja ti dám jednu z tých späť namiesto alokovania nového, 841 00:45:15,000 --> 00:45:17,000 a tak to je pekný výkon obavy. 842 00:45:17,000 --> 00:45:21,000 Nemusíte alokovať bunky sami. 843 00:45:21,000 --> 00:45:23,000 To bude vám späť bunku. 844 00:45:23,000 --> 00:45:25,000 Bude to návrat k vám bunky objekt. 845 00:45:25,000 --> 00:45:28,000 Akonáhle budete mať mobilný objekt, ktorý môžete urobiť veci k nej. 846 00:45:28,000 --> 00:45:32,000 Môžete nastaviť text bunky s touto vlastnosťou tzv textový popisok. 847 00:45:32,000 --> 00:45:36,000 Môžete pridať tento šípku vpravo alebo iným náhodným stuff 848 00:45:36,000 --> 00:45:41,000 s touto druhou majetku zvaného accessoryType, a tak ďalej, a tak ďalej. 849 00:45:41,000 --> 00:45:46,000 >> Poďme sa pozrieť na skutočne vykonáva zobrazenie tabuľky teraz. 850 00:45:46,000 --> 00:45:49,000 Keď som vytvoril tento projekt 851 00:45:49,000 --> 00:45:53,000 skôr než hovoriť jediný pohľad žiadosť Vlastne som sem prišiel 852 00:45:53,000 --> 00:45:57,000 na master-detail aplikácie, a tak v podstate to zodpovedá poštové aplikácie 853 00:45:57,000 --> 00:46:01,000 na iPad s pohľadu na stôl vľavo a potom obsah na pravej strane. 854 00:46:01,000 --> 00:46:07,000 Na zariadenie iPod alebo iPhone to bude odpovedať na jednu zobrazenie tabuľky. 855 00:46:07,000 --> 00:46:10,000 To je miesto, kde som dostal štartovací kód. 856 00:46:10,000 --> 00:46:13,000 >> Poďme najprv pozrieť na scenári. 857 00:46:13,000 --> 00:46:15,000 To všetko bolo pre mňa urobil, v podstate vytvoril. 858 00:46:15,000 --> 00:46:18,000 Tento navigačná lišta mi ukázal, čo príkladom bunka môže vyzerať ako, 859 00:46:18,000 --> 00:46:22,000 a môžem dvakrát kliknite, zmeňte názov. 860 00:46:22,000 --> 00:46:25,000 Akékoľvek iné UI obavy zvládnem tam. 861 00:46:25,000 --> 00:46:27,000 Hlavičkový súbor vyzerá naozaj jednoduché. 862 00:46:27,000 --> 00:46:30,000 Skôr než, že toto je UIViewController sme teraz, že toto je 863 00:46:30,000 --> 00:46:35,000 TableViewController, takže vieme, že chceme volať všetky tie tabuľky metódy. 864 00:46:35,000 --> 00:46:38,000 Ďalšie Chcem vytvoriť vlastnosť, ktorá ich bude zastupovať 865 00:46:38,000 --> 00:46:40,000 veci vnútri môjho stola. 866 00:46:40,000 --> 00:46:43,000 Táto tabuľka bude ľubovoľne zobrazenie 867 00:46:43,000 --> 00:46:46,000 zoznam ovocie, a tak musím vytvoriť nejaký poľa 868 00:46:46,000 --> 00:46:49,000 v ktorom môžem vložiť ovocie. 869 00:46:49,000 --> 00:46:52,000 Vnútri môjho implementačným súboru, prvá vec, čo chcem robiť 870 00:46:52,000 --> 00:46:55,000 je chcem uistiť, že som inicializovať pole. 871 00:46:55,000 --> 00:46:58,000 >> Povedal som alloc init, vytvoril môj ovocie pole, 872 00:46:58,000 --> 00:47:03,000 a Pridám 4 veci k tomu, z ktorých jedna je oveľa viac kontroverzný ako ostatné 3. 873 00:47:03,000 --> 00:47:06,000 A teraz mám rad veľkosti 4. 874 00:47:06,000 --> 00:47:08,000 Sme trepanie do CS50. 875 00:47:08,000 --> 00:47:11,000 Teraz mám rad veľkosti 4. 876 00:47:11,000 --> 00:47:13,000 Teraz idem začať odpovede na tieto otázky, a vlastne, 877 00:47:13,000 --> 00:47:16,000 keď som vytvoril túto aplikáciu to všetko bolo už pre mňa urobil. 878 00:47:16,000 --> 00:47:19,000 Nemal som písať z počtu sekcií v zobrazení tabuľky. 879 00:47:19,000 --> 00:47:22,000 To už tam bol, a ja vyplní prázdne miesta. 880 00:47:22,000 --> 00:47:24,000 Koľko oddiely mám? 881 00:47:24,000 --> 00:47:26,000 Jeden. Všetko hotové. 882 00:47:26,000 --> 00:47:28,000 Koľko riadkov mám? 883 00:47:28,000 --> 00:47:31,000 No, ja mám jeden riadok pre každú ovocie, tak tento počet 884 00:47:31,000 --> 00:47:34,000 je vlastnosť akéhokoľvek pole, ktoré hovorí, aký veľký je to? 885 00:47:34,000 --> 00:47:36,000 To, koľko riadkov mám. 886 00:47:36,000 --> 00:47:42,000 Nakoniec, musím povedať, čo sa každá bunka vyzerá? 887 00:47:42,000 --> 00:47:46,000 Idem povedať dequeueReusableCellWithIdentifier. 888 00:47:46,000 --> 00:47:48,000 >> Opäť platí, že bol tento už napísaný pre mňa. 889 00:47:48,000 --> 00:47:51,000 Nechcel som to urobiť sám, a chcem sa dostať späť 890 00:47:51,000 --> 00:47:54,000 táto bunka na tomto mieste. 891 00:47:54,000 --> 00:47:57,000 Pamätajte si, že voláme túto rovnakou metódou na každej bunke, 892 00:47:57,000 --> 00:48:01,000 a tento argument tu, tento argument indexPath, 893 00:48:01,000 --> 00:48:03,000 hovorí, že to, čo rad som dovnútra 894 00:48:03,000 --> 00:48:05,000 Keď poviem, že indexPath.row tu 895 00:48:05,000 --> 00:48:09,000 to bude 0, potom to bude 1, potom to bude 2, a to tak viem 896 00:48:09,000 --> 00:48:11,000 čo cell som v súčasnej dobe zobrazovania. 897 00:48:11,000 --> 00:48:15,000 Chcem nastaviť text bunky pomocou tejto vlastnosti textLabel 898 00:48:15,000 --> 00:48:19,000 ísť dovnútra mojej ovocie pole a dostať 899 00:48:19,000 --> 00:48:21,000 objekt zodpovedajúce každého riadku. 900 00:48:21,000 --> 00:48:24,000 Ak je to reťazec, ja som teraz stanovenie 901 00:48:24,000 --> 00:48:28,000 vlastnosť text na reťazec. 902 00:48:28,000 --> 00:48:30,000 Môžem urobiť ešte jednu vec. 903 00:48:30,000 --> 00:48:32,000 Ja sa tiež zaregistrovať obslužnú rutinu udalosti na každom z buniek, 904 00:48:32,000 --> 00:48:35,000 takže keď som kliknite na každej z týchto buniek 905 00:48:35,000 --> 00:48:39,000 Tento didSelectRowAtIndexPath, to bude len pre mňa, 906 00:48:39,000 --> 00:48:42,000 tak jednoducho tým, že definuje to teraz môžem zvládnuť, čo sa deje 907 00:48:42,000 --> 00:48:46,000 keď kliknete na bunku, a znovu, sme okolo, v ktorom bola využitý buniek 908 00:48:46,000 --> 00:48:50,000 takže môžeme znovu použiť rovnaký obslužnú rutinu udalosti pre všetky naše bunky. 909 00:48:50,000 --> 00:48:53,000 >> Opäť, je to niečo, iOS je na tom pre mňa. 910 00:48:53,000 --> 00:48:55,000 Poďme zobraziť ďalšie nepríjemné POPUP 911 00:48:55,000 --> 00:48:59,000 že jednoducho hovorí, že ste si vybral niečo, kde to niečo 912 00:48:59,000 --> 00:49:04,000 bude riadok objekt. 913 00:49:04,000 --> 00:49:10,000 Keď spustím to, budem mať toto pekné zobrazenie tabuľky 914 00:49:10,000 --> 00:49:14,000 jeden riadok pre každý z týchto druhov ovocia, a keď som kliknite na jednu 915 00:49:14,000 --> 00:49:16,000 to mi hovorí, čo sa stalo. 916 00:49:16,000 --> 00:49:21,000 Zmysel? 917 00:49:21,000 --> 00:49:24,000 Budujme trochu zložitejšie z aplikácie, 918 00:49:24,000 --> 00:49:28,000 rovnako ako kliknutie ste si vybrali paradajka je. 919 00:49:28,000 --> 00:49:31,000 Pekné o Storyboarding 920 00:49:31,000 --> 00:49:35,000 je to nielen nepomôže nás Dizajn obrazoviek samostatne, 921 00:49:35,000 --> 00:49:38,000 je to tiež nám pomôže previazať celú našu aplikáciu, 922 00:49:38,000 --> 00:49:42,000 takže konečný app budeme budova je to pekná športová news reader, 923 00:49:42,000 --> 00:49:45,000 a tak to bude mať viac obrazoviek, a tak som si vlastne predstavujú 924 00:49:45,000 --> 00:49:48,000 každý z týchto početných obrazoviek na scenári 925 00:49:48,000 --> 00:49:52,000 a môžem oddialiť a vidieť môj aplikácie z vysokej úrovni. 926 00:49:52,000 --> 00:49:55,000 >> Ak chcete vytvoriť nový element vo vnútri môjho scenára 927 00:49:55,000 --> 00:49:59,000 je to naozaj jednoduché vnútri Interface Builder. 928 00:49:59,000 --> 00:50:01,000 Ak chcem pridať ďalšiu obrazovku to, napríklad, 929 00:50:01,000 --> 00:50:06,000 I môže najprv oddialiť s pinch zoom, ktorý Apple miluje tak veľmi, 930 00:50:06,000 --> 00:50:09,000 a tu dole, ako som vyhľadať tlačidlo 931 00:50:09,000 --> 00:50:12,000 a ja pretiahnete tlačidlo 932 00:50:12,000 --> 00:50:15,000 keď chcem vytvoriť novú obrazovku môžem skutočne len drag and drop 933 00:50:15,000 --> 00:50:19,000 Celý pohľad radič, takže keď som vybrať to, vytiahnite ho sem, 934 00:50:19,000 --> 00:50:23,000 hey, je tu ďalší obrazovka, a tak teraz používa rovnaký storyboard súbor 935 00:50:23,000 --> 00:50:26,000 Môžem mať všetkých obrazovkách vnútri mojej aplikácie, a môžem oddialiť 936 00:50:26,000 --> 00:50:28,000 a vidieť, ako sa vzájomne ovplyvňujú. 937 00:50:28,000 --> 00:50:32,000 Tie nebudú ovplyvňovať doteraz. 938 00:50:32,000 --> 00:50:36,000 Spôsob, akým sa tieto 2 obrazovky interakciu je definovať vzťahy. 939 00:50:36,000 --> 00:50:39,000 Môžete v podstate hovoria, že toto obrazovku, keď stlačíte toto tlačidlo, 940 00:50:39,000 --> 00:50:42,000 Chcem, aby si snímka sa k tejto novej obrazovky. 941 00:50:42,000 --> 00:50:44,000 To znamená, že je tento druh vzťahu medzi 942 00:50:44,000 --> 00:50:46,000  prvá obrazovka a druhá obrazovka. 943 00:50:46,000 --> 00:50:49,000 Budete mať v podstate šípku od tohto tlačidla na druhej obrazovke 944 00:50:49,000 --> 00:50:53,000 hovorí, že keď stlačíte toto tlačidlo, ktoré tam chcem ísť. 945 00:50:53,000 --> 00:50:57,000 Rovnako ako my ovládať klikli a pretiahnuť do vymedzenia týchto zásuviek 946 00:50:57,000 --> 00:51:01,000 budeme robiť rovnakú vec na definovanie týchto prejde. 947 00:51:01,000 --> 00:51:05,000 >> Uvidíme príklad pre to, a ako sme vlastne prechod 948 00:51:05,000 --> 00:51:08,000 z jednej obrazovky na druhú iOS je taký láskavý, že volanie tejto metódy 949 00:51:08,000 --> 00:51:11,000 volal prepareForSegue, a to je miesto, kde môžeme začať 950 00:51:11,000 --> 00:51:14,000 odosielanie dát z jednej aplikácie do druhej. 951 00:51:14,000 --> 00:51:17,000 V príklade sa chystáme pozrieť sa na to bude v podstate umožní nám 952 00:51:17,000 --> 00:51:20,000 filtrovať baseball tímy v ligách a divíziách. 953 00:51:20,000 --> 00:51:23,000 Keď som ju vybrať ligu, napríklad, chcem prechodu 954 00:51:23,000 --> 00:51:25,000 k môjmu ďalšiemu obrazovku, kde môžem zobraziť všetky divízie 955 00:51:25,000 --> 00:51:27,000 v tejto lige alebo všetkých rôznych tímov. 956 00:51:27,000 --> 00:51:31,000 Potrebujem poslať na túto obrazovku, čo tímy, mali by ste zobraziť. 957 00:51:31,000 --> 00:51:35,000 Ak chcete, že budem využiť tejto metódy tu. 958 00:51:35,000 --> 00:51:39,000 >> Nakoniec, rovnako náhodný bod na iOS. 959 00:51:39,000 --> 00:51:41,000 Ak chcete ukladať dáta tam je to, čomu sa hovorí základné údaje, 960 00:51:41,000 --> 00:51:44,000 čo je vlastne celkom zložité s ním pracovať. 961 00:51:44,000 --> 00:51:47,000 Môžete tiež použiť SQL na ukladanie dát, 962 00:51:47,000 --> 00:51:51,000 ktoré je opäť pekné, ale trochu na zložitejšie strane pre prácu s, 963 00:51:51,000 --> 00:51:55,000 ale iOS tiež podporuje tieto naozaj cool veci zvanej vlastníctva zoznamy, 964 00:51:55,000 --> 00:52:00,000 a zoznam vlastností je len súbor, ktorý predstavuje kľúč hodnota. 965 00:52:00,000 --> 00:52:03,000 Môžete definovať zoznam kľúčov, a tie hovoria, že toto tlačidlo sa bude pole. 966 00:52:03,000 --> 00:52:06,000 Tento kľúč bude reťazec, a v podstate všetko, čo môžete robiť 967 00:52:06,000 --> 00:52:10,000 v JSON môžete urobiť vo vnútri zoznamu vlastností, 968 00:52:10,000 --> 00:52:14,000 a tak to naozaj pekne nám umožňuje pracovať s niektorými dátami. 969 00:52:14,000 --> 00:52:18,000 Napríklad, mám Teams.plist, že som vytvoril. 970 00:52:18,000 --> 00:52:22,000 Vytvoril som nový plist súbor, a môžem drill down. 971 00:52:22,000 --> 00:52:26,000 Toto je slovník, to je slovník, sú reťazce, 972 00:52:26,000 --> 00:52:30,000 a tak to je pekné grafické znázornenie dokumentu JSON 973 00:52:30,000 --> 00:52:33,000 alebo len súbor kľúčových dvojíc hodnôt, 974 00:52:33,000 --> 00:52:37,000 a tak to je údaj, že budem pracovať s vnútri mojej aplikácie. 975 00:52:37,000 --> 00:52:40,000 >> Pozrime sa najprv, poď sem. Máme oveľa viac súborov teraz. 976 00:52:40,000 --> 00:52:44,000 Ale poďme sa najprv prísť sem do scenára. 977 00:52:44,000 --> 00:52:48,000 Storyboard tu, keď môžete oddialiť, 978 00:52:48,000 --> 00:52:51,000 teraz môžeme vidieť, že je to tok svoje aplikácie. 979 00:52:51,000 --> 00:52:53,000 Ja sa najprv, kto na tejto obrazovke. 980 00:52:53,000 --> 00:52:55,000 Budem prechádzať na túto obrazovku, 981 00:52:55,000 --> 00:52:58,000 a budem prechádzať na tejto obrazovke, a môžeme vidieť, že keď som trochu 982 00:52:58,000 --> 00:53:04,000 presunúť jeden z nich asi sme tieto šípky ísť odtiaľto až sem, 983 00:53:04,000 --> 00:53:08,000 a ako som definovať, že šíp bol, keby som priblížiť trochu, 984 00:53:08,000 --> 00:53:12,000 a keď som prísť do tohto pohľadu regulátora, 985 00:53:12,000 --> 00:53:16,000 a tu je bunka, a chcem povedať, že keď kliknete na bunku 986 00:53:16,000 --> 00:53:18,000 Chcem, aby si klesať cez inú obrazovku. 987 00:53:18,000 --> 00:53:21,000 Môžem jednoducho podržte kontrolu, 988 00:53:21,000 --> 00:53:26,000 Choďte trochu, podržte kontrolu, pretiahnite túto bunku nad a pustiť. 989 00:53:26,000 --> 00:53:30,000 >> A tu hovoríme, čo je to prechod, ktorý chcete použiť? 990 00:53:30,000 --> 00:53:32,000 Chcete použiť tento snímok vec, ktorá sa nazýva tlak? 991 00:53:32,000 --> 00:53:34,000 Chcete kĺzať hore z dna? 992 00:53:34,000 --> 00:53:36,000 Tomu sa hovorí modálne. 993 00:53:36,000 --> 00:53:40,000 A raz som na jednu z nich, bude to kresliť na túto šípku pre mňa, 994 00:53:40,000 --> 00:53:44,000 a to znamená, že som vlastne ovládal, čo sa stane, keď som stlačte toto tlačidlo graficky. 995 00:53:44,000 --> 00:53:48,000 Nechcel som písať nejaký kód, aby skutočne skĺzla z jednej obrazovky na druhú. 996 00:53:48,000 --> 00:53:51,000 Definoval som to vizuálne vnútri Interface Builder. 997 00:53:51,000 --> 00:53:55,000 Keby som kliknite na šípku, môžeme vidieť, že som túto vec meno. 998 00:53:55,000 --> 00:53:59,000 Zavolal som to showDivisions, a je to tak, že som si vedieť, 999 00:53:59,000 --> 00:54:03,000 čo prechod má nastať, a uvidíme, prečo len na sekundu. 1000 00:54:03,000 --> 00:54:06,000 To je, ako som zapojený do rôznych obrazoviek v mojej aplikácii. 1001 00:54:06,000 --> 00:54:09,000 Ak by sa jednalo tlačidlo, napríklad, skôr ako tabuľka pohľad, 1002 00:54:09,000 --> 00:54:11,000 Mohol by som riadiť kliknite na tlačidlo, presuňte ju na ďalšiu obrazovku, 1003 00:54:11,000 --> 00:54:16,000 a to je, ako môžem urobiť navigačné takhle. 1004 00:54:16,000 --> 00:54:19,000 >> Naozaj rýchlo, keď pôjdeme do MasterViewController, 1005 00:54:19,000 --> 00:54:22,000 znovu, sme proste bude definovať zoznam vecí 1006 00:54:22,000 --> 00:54:26,000 , Ktorý sa zobrazí v zobrazení tabuľky. 1007 00:54:26,000 --> 00:54:29,000 Tu hovorím chcem, aby si to plist súbor, 1008 00:54:29,000 --> 00:54:32,000 a chcem vám umožní nahrať ju do slovníka, 1009 00:54:32,000 --> 00:54:35,000 a akonáhle ste si, že slovník, budem odpovedať na tie isté otázky znovu. 1010 00:54:35,000 --> 00:54:37,000 Tu je počet úsekov. 1011 00:54:37,000 --> 00:54:41,000 Po prvé, je tam jeden riadok pre každé ligy, a text každej bunke 1012 00:54:41,000 --> 00:54:46,000 musí byť buď prvý, prvá liga, druhá liga, a tak ďalej. 1013 00:54:46,000 --> 00:54:51,000 Napokon, budem používať túto metódu, ktorá sme práve videli názvom prepareForSegue, 1014 00:54:51,000 --> 00:54:54,000 a to je metóda, ktorá sa bude vyhodený, keď som kliknite na tlačidlo 1015 00:54:54,000 --> 00:54:57,000 v jednej z týchto riadkov, a preto aktiváciu, že prechod 1016 00:54:57,000 --> 00:54:59,000 že som nastaviť šípkami. 1017 00:54:59,000 --> 00:55:02,000 To hovorí, že môžem mať viac 1018 00:55:02,000 --> 00:55:05,000 vzťahy z jednej obrazovky na druhú. 1019 00:55:05,000 --> 00:55:08,000 Ak mám 2 tlačidlá a každé tlačidlo sa dostanete na inú obrazovku 1020 00:55:08,000 --> 00:55:10,000 Budem mať 2 prejde, 1 pre každé tlačidlo. 1021 00:55:10,000 --> 00:55:14,000 Ale to prepareForSegue je opäť, bude znovu 1022 00:55:14,000 --> 00:55:17,000 pre každý z jednotlivých vzťahov, tak to znamená, že som potrebné spôsob 1023 00:55:17,000 --> 00:55:21,000 identifikácia, ak stlačíte prvé tlačidlo alebo stlačením druhého tlačidla. 1024 00:55:21,000 --> 00:55:25,000 >> Pamätáš, keď som dal, že SEGUE meno, tento showDivisions, 1025 00:55:25,000 --> 00:55:29,000 to je, ako už viem, že je to SEGUE, že bol aktivovaný. 1026 00:55:29,000 --> 00:55:32,000 Všetko, čo chcem urobiť, je, že som chcel povedať 1027 00:55:32,000 --> 00:55:35,000 Chcem zistiť, čo ja som len udrel, 1028 00:55:35,000 --> 00:55:38,000 a tak sa dostať, že môžem povedať, Chcem indexPath pre vybraný riadok, 1029 00:55:38,000 --> 00:55:42,000 pamätať indexPath len hovorí, že tam, kde som klikol, 1030 00:55:42,000 --> 00:55:47,000 a potom chcem povedať, že som chcete zistiť, kam idem. 1031 00:55:47,000 --> 00:55:50,000 To destinationViewController, že je to vlastnosť SEGUE. 1032 00:55:50,000 --> 00:55:53,000 To je obrazovka budem, 1033 00:55:53,000 --> 00:55:56,000 takže viem, že obrazovka budem sa nazýva DivisionsViewController 1034 00:55:56,000 --> 00:55:59,000 pretože som vytvoril túto triedu, 1035 00:55:59,000 --> 00:56:02,000 a tak teraz, keď poviem d.divisions 1036 00:56:02,000 --> 00:56:06,000 Ja som teraz nastavenie vlastnosť kontroleru pohľadu som asi ísť. 1037 00:56:06,000 --> 00:56:10,000 To je, ako som odosielanie dát z jednej obrazovky na ďalšiu obrazovku. 1038 00:56:10,000 --> 00:56:13,000 >> Len pri pohľade na tento DivisionsViewController 1039 00:56:13,000 --> 00:56:16,000 môžete vidieť, že v súbore h 1040 00:56:16,000 --> 00:56:20,000 je, že vlastníctvo divízie, a to je to, čo som v podstate naplnením, 1041 00:56:20,000 --> 00:56:25,000 tak to je, ako viem, že som zobrazenie divízie zodpovedajúce 1042 00:56:25,000 --> 00:56:28,000 liga, ktorá som klikol, a znova, 1043 00:56:28,000 --> 00:56:31,000 aktuálne zobrazenie tabuľky vyzerá skoro rovnako, len záznamník tie 1044 00:56:31,000 --> 00:56:34,000 3 jednoduché otázky, ako aj identifikačné 1045 00:56:34,000 --> 00:56:37,000 čo sa stane, keď sa presuniete na ďalšiu obrazovku. 1046 00:56:37,000 --> 00:56:40,000 Len pár ďalších vecí tu. 1047 00:56:40,000 --> 00:56:43,000 Všimnete si v hornej tu, že skôr než hovoriť # include 1048 00:56:43,000 --> 00:56:45,000 Ja som teraz hovoril # import. 1049 00:56:45,000 --> 00:56:47,000 To je len Objective-C vec. 1050 00:56:47,000 --> 00:56:52,000 Import je v podstate krajšie verzie patrí, 1051 00:56:52,000 --> 00:56:57,000 a napríklad, potrebujeme vedieť, čo táto trieda je, 1052 00:56:57,000 --> 00:57:00,000 tak som si jednoducho povedať DivisionsViewController. 1053 00:57:00,000 --> 00:57:05,000 Ak by sme nemali hashtag standardio.c vnútri našej. Súboru c 1054 00:57:05,000 --> 00:57:07,000 kompilátor nemal tušenie, čo printf bolo. 1055 00:57:07,000 --> 00:57:12,000 Podobne, keď nemám importovať DivisionsViewController 1056 00:57:12,000 --> 00:57:16,000 kompilátor naozaj nemá tušenie, čo je DivisionsViewController. 1057 00:57:16,000 --> 00:57:19,000 Len sa uistite, že vo vnútri vašich rôznych. Súborov m by ste sa uistiť, import 1058 00:57:19,000 --> 00:57:25,000 zodpovedajúce. h súbory tak, aby kompilátor vie, čo sa deje. 1059 00:57:25,000 --> 00:57:31,000 >> A konečne, čo Apple nakoniec sa je zobrazovať niektoré údaje pomocou webového zobrazenia, 1060 00:57:31,000 --> 00:57:35,000 a tak web pohľad je objekt, v ktorom môžete vložiť 1061 00:57:35,000 --> 00:57:37,000 Trochu webový prehliadač vnútri vašej aplikácie. 1062 00:57:37,000 --> 00:57:40,000 Všetko, čo musíte urobiť, je dodať URL do webového prehliadača, 1063 00:57:40,000 --> 00:57:43,000 takže chcem ísť do mlb.mlb.com, 1064 00:57:43,000 --> 00:57:46,000 a to je, ako môžem získať prístup na domovskú stránku pre každý tím, 1065 00:57:46,000 --> 00:57:49,000 a tak odovzdaním tejto adrese 1066 00:57:49,000 --> 00:57:52,000 web názor môže zobrazovať to pre mňa, a ja som si prechádzať okolo, 1067 00:57:52,000 --> 00:58:01,000 a simulátor je používaný, že jeden. 1068 00:58:01,000 --> 00:58:03,000 Teraz to prišlo z môjho plist. 1069 00:58:03,000 --> 00:58:07,000 Keby som Kliknutím na toto tlačidlo to tiež prišlo z môjho plist, a to posuvná bola spracovaná 1070 00:58:07,000 --> 00:58:09,000 vymedzením týchto prejde. 1071 00:58:09,000 --> 00:58:12,000 Aj Kliknutím na toto tlačidlo a ešte jeden, 1072 00:58:12,000 --> 00:58:15,000 a teraz tu je môj UIWebView, tak len tak 1073 00:58:15,000 --> 00:58:19,000 Tu je webová stránka pre URL, ktoré som vložené, 1074 00:58:19,000 --> 00:58:21,000 a ja som nemusel zvládnuť čokoľvek bláznivého. 1075 00:58:21,000 --> 00:58:24,000 To je, ako zobraziť webovú stránku. 1076 00:58:24,000 --> 00:58:27,000 Veci ako toto tlačidlo späť sú tu tiež uvedené na mňa 1077 00:58:27,000 --> 00:58:33,000 úplne zadarmo, pretože som definované tieto vzťahy pomocou prejde. 1078 00:58:33,000 --> 00:58:37,000 >> Nejaké otázky? Jo. 1079 00:58:37,000 --> 00:58:40,000 [Študent] Takže pri použití priradenie, už nikdy nebudete musieť voľného niečo? 1080 00:58:40,000 --> 00:58:43,000 Presne tak, keď budete volať alloc a init nemusíte oslobodiť ju. 1081 00:58:43,000 --> 00:58:46,000 IOS bude zvládnuť všetky, že pre vás. 1082 00:58:46,000 --> 00:58:51,000 Je to úžasné, a nie ste porušenie žiadne pravidlá. Jo. 1083 00:58:51,000 --> 00:58:54,000 [Študent] Ak ste boli zahrnúť viac tímov, ktoré by sa vošli na obrazovku, 1084 00:58:54,000 --> 00:58:58,000 by to mať automaticky rolovacie možnosť, alebo je to niečo, čo potrebujete pridať? 1085 00:58:58,000 --> 00:59:01,000 Presne, keď mal viac jednotiek, napríklad, by sa automaticky spracovávať 1086 00:59:01,000 --> 00:59:04,000 rolovanie pre mňa, a všetky výkonnostné obavy 1087 00:59:04,000 --> 00:59:08,000 s obrovským stolom sa tiež stará o úplne pre mňa. 1088 00:59:08,000 --> 00:59:11,000 >> Ďalšie otázky? 1089 00:59:11,000 --> 00:59:13,000 Všetky tohto kódu sa bude vyslaný. 1090 00:59:13,000 --> 00:59:16,000 My druh pozdávajú trochou viac drobných detailov, 1091 00:59:16,000 --> 00:59:19,000 ale veci ako nastavenie niektorých vlastností na web zobrazenie 1092 00:59:19,000 --> 00:59:22,000 sú len veci, ktoré môžete získať pri prezeraní Apple dokumentáciu, 1093 00:59:22,000 --> 00:59:24,000 čo je naozaj, ale naozaj pekne vyložil. 1094 00:59:24,000 --> 00:59:27,000 Majú veľa ukážkových aplikácií a príklad zvyklostiam 1095 00:59:27,000 --> 00:59:34,000 rôznych API, takže určite prehliadnuť tie, ak je to možné. 1096 00:59:34,000 --> 00:59:36,000 Len niektoré užitočné odkazy budete chcieť pozrieť na. 1097 00:59:36,000 --> 00:59:38,000 To sú niektoré užitočné dokumentácie príručiek. 1098 00:59:38,000 --> 00:59:41,000 Adresy URL sú masívne, takže sú skrátené. 1099 00:59:41,000 --> 00:59:44,000 To prvé je celá knižnica dokumentácie. 1100 00:59:44,000 --> 00:59:46,000 Je tu málo vyhľadávania bary, takže ak začnete písať, tlačidlo 1101 00:59:46,000 --> 00:59:50,000 začne dávať vám všetky informácie o všetkých vecí, ktoré môžete robiť s tlačidlom. 1102 00:59:50,000 --> 00:59:53,000 Ja som tiež na Zobraziť tabuľku Programming Guide. 1103 00:59:53,000 --> 00:59:56,000 To sa zaoberá tabuľky názory v oveľa podrobnejšie, 1104 00:59:56,000 --> 01:00:00,000 ako robiť veci, ako je dynamicky pridávať články alebo upraviť bunky alebo odstrániť. 1105 01:00:00,000 --> 01:00:02,000 >> Je tu veľa vzorových aplikácií z Apple, ktorý vám ukáže, ako to urobiť, 1106 01:00:02,000 --> 01:00:05,000 a konečne, posledný z nich je Human Interface pokyny, 1107 01:00:05,000 --> 01:00:09,000 a to je v podstate nejaká diskusia komponentov používateľského rozhrania, 1108 01:00:09,000 --> 01:00:12,000 veci ako nerobia tlačidlo, ktoré je 4 pixely od 4 bodov. 1109 01:00:12,000 --> 01:00:15,000 To je zlý nápad, a ďalšie veci, ktoré Apple chce, aby si 1110 01:00:15,000 --> 01:00:18,000 podporovať dobrý dizajn. 1111 01:00:18,000 --> 01:00:23,000 >> Nejaká posledné otázky pred tým, než skončiť? 1112 01:00:23,000 --> 01:00:27,000 Dobre, určite neváhajte, Ideme mať špeciálne štítky na diskutovať. 1113 01:00:27,000 --> 01:00:30,000 Budeme mať iOS jeden, tak rozhodne neváhajte využiť, že. 1114 01:00:30,000 --> 01:00:34,000 Ak chcete pracovať so svojimi spolužiakmi na projektoch 1115 01:00:34,000 --> 01:00:37,000 alebo pomôcť zistiť nejaké náhodné iOS veci 1116 01:00:37,000 --> 01:00:40,000 neváhajte a napíšte mi, a určite preštudovať všetky kód online, pretože 1117 01:00:40,000 --> 01:00:43,000 práve v záujme dobe sme trochu utajené viac 1118 01:00:43,000 --> 01:00:45,000 jemnejšie detaily vecí. 1119 01:00:45,000 --> 01:00:47,000 Ale ak nie, potom veľa šťastia na vašich projektoch iOS, a dúfam, že budeme mať 1120 01:00:47,000 --> 01:00:53,000 Veľký príliv aplikácií v App Store. 1121 01:00:53,000 --> 01:00:56,000 [CS50.TV]