1 00:00:00,000 --> 00:00:11,270 2 00:00:11,270 --> 00:00:14,340 >> DANIEL Armendáriz: Dobrý den, všichni, vítejte na iOS pro vývoj aplikací 3 00:00:14,340 --> 00:00:15,020 s SWIFT. 4 00:00:15,020 --> 00:00:15,870 Já jsem Dan Armendariz. 5 00:00:15,870 --> 00:00:18,920 Jsem precepter počítače věda tady na škole 6 00:00:18,920 --> 00:00:21,200 inženýrství a aplikovaných věd. 7 00:00:21,200 --> 00:00:24,310 A rychle je vlastně druh o opravdu úhledné jazyka. 8 00:00:24,310 --> 00:00:27,190 A mám nějaké plány na dnešek. 9 00:00:27,190 --> 00:00:31,430 Takže během následující hodiny nebo tak jedeme se podívat na iOS samotného vývoje 10 00:00:31,430 --> 00:00:36,640 pomocí Xcode a vlastně vznikají jedny velmi jednoduché, velmi jednoduché aplikace. 11 00:00:36,640 --> 00:00:40,070 A při pohledu na způsob, jakým ve skutečnosti, aby tyto aplikace, 12 00:00:40,070 --> 00:00:42,887 a stavět je, a vlastně dát je na zařízení se systémem iOS. 13 00:00:42,887 --> 00:00:44,970 Některé z věcí, které nebudeme dívat na 14 00:00:44,970 --> 00:00:47,540 bude zahrnovat věci jako skutečně užívat aplikace 15 00:00:47,540 --> 00:00:48,940 a uvedení na App Store. 16 00:00:48,940 --> 00:00:52,930 Je tu spousta tutoriálů online, které Pomůže vám s tím aspekt. 17 00:00:52,930 --> 00:00:56,230 Ale také proto, že jako část CS50, získáte 18 00:00:56,230 --> 00:00:59,780 vstoupit do vývoje Apple Tým, CS50 je pro vývoj aplikací tým. 19 00:00:59,780 --> 00:01:02,790 Pokud jste to ještě neudělali, a jste spjata s firmou CS50, 20 00:01:02,790 --> 00:01:04,810 Já vám, abyste dělat, protože to 21 00:01:04,810 --> 00:01:08,820 je to, jak jste schopni vytvořit Některé programy v Xcode, 22 00:01:08,820 --> 00:01:11,890 stavět je, a dokonce dal je na některé z vašich zařízení se systémem iOS 23 00:01:11,890 --> 00:01:14,087 pokud jste skutečně fyzický iOS zařízení. 24 00:01:14,087 --> 00:01:16,670 Pokud nemáte fyzickou iOS Zařízení, které je více než v pořádku. 25 00:01:16,670 --> 00:01:19,810 Můžete si skutečně vyvíjet pro iOS. 26 00:01:19,810 --> 00:01:22,390 A má Xcode simulátor, který umožňuje 27 00:01:22,390 --> 00:01:26,570 vidět vaši žádost akce na vašem počítači. 28 00:01:26,570 --> 00:01:30,440 Ale je to trochu je užitečná věc skutečně hrát a komunikovat 29 00:01:30,440 --> 00:01:34,235 s aplikací na skutečném zařízení. 30 00:01:34,235 --> 00:01:37,360 Takže je tu pár požadavků vlastně dělat všechny tohoto vývoje. 31 00:01:37,360 --> 00:01:39,151 Jedním z nich je, že musíte mít Mac. 32 00:01:39,151 --> 00:01:44,770 Musí být spuštěn 10.9.4 nebo novější aby se do vývoje s SWIFT. 33 00:01:44,770 --> 00:01:47,770 >> Můžete použít dřívější Verze pro rozvoj 34 00:01:47,770 --> 00:01:50,810 s Objective C pro iOS a Mac. 35 00:01:50,810 --> 00:01:53,990 Ale já doporučit, a mnoho příklady, které uvidíme dnes, 36 00:01:53,990 --> 00:01:55,700 použijte 10.10 Yosemite. 37 00:01:55,700 --> 00:02:00,910 Takže pokud jste ještě upgrade, je to dobrá výmluva, aby tak učinily. 38 00:02:00,910 --> 00:02:05,480 Nyní Xcode 6.1 je nejnovější verze integrované vývojové prostředí 39 00:02:05,480 --> 00:02:08,979 že Apple poskytuje zdarma, které Zde si můžete stáhnout mimo App Store. 40 00:02:08,979 --> 00:02:11,220 A já jsem vám, abyste spustit také nejnovější verzi. 41 00:02:11,220 --> 00:02:14,700 >> Pokud jste náhodou být spuštěna dříve verze Xcode 5 a dále jen 42 00:02:14,700 --> 00:02:16,741 prostě nepodporují rychlé vůbec. 43 00:02:16,741 --> 00:02:19,490 A beta verze šesti, které byl propuštěn v létě, 44 00:02:19,490 --> 00:02:21,770 podporují rychlý, ale je tu Byl obrovský počet 45 00:02:21,770 --> 00:02:25,220 změny v jazyce, dost takže kód, který jste 46 00:02:25,220 --> 00:02:28,320 se podíváme, a že vás mohli najít na internetu 47 00:02:28,320 --> 00:02:33,294 nebude ve skutečnosti kompilovat správně v těchto dřívějších verzích Xcode. 48 00:02:33,294 --> 00:02:35,460 Takže znovu, pokud nechcete ještě ne má developer účet, 49 00:02:35,460 --> 00:02:38,560 Doporučuji vám jít do developer.apple.com. 50 00:02:38,560 --> 00:02:42,240 Zaregistrujte se vytvořit účet vývojáře, a připojit se k CS50 vývoj aplikací tým. 51 00:02:42,240 --> 00:02:45,530 To bude poskytovat vám příležitost kompilovat své aplikace 52 00:02:45,530 --> 00:02:47,840 a dát je na vašem zařízení. 53 00:02:47,840 --> 00:02:49,222 OK, tak se pojďme začít. 54 00:02:49,222 --> 00:02:50,930 Úplně první věc, budeme dělat se 55 00:02:50,930 --> 00:02:55,140 skutečně vytvořit velmi jednoduchý projekt v Xcode 56 00:02:55,140 --> 00:02:59,530 která Vám umožní podat žádost. 57 00:02:59,530 --> 00:03:03,170 >> Takže pokud ještě nemáte Xcode otevřené, jděte do toho a otevřete ji 58 00:03:03,170 --> 00:03:04,270 a vytvořit nový projekt. 59 00:03:04,270 --> 00:03:06,570 Speciální úvodní obrazovka se otevře a dá vám 60 00:03:06,570 --> 00:03:08,800 několik možností o tom, co to je, že chcete udělat. 61 00:03:08,800 --> 00:03:12,170 Stačí říct, že chcete vytvořit nový projekt, novou žádost. 62 00:03:12,170 --> 00:03:15,650 Toto okno vyskočí, za předpokladu, že používáte Xcode 6.1. 63 00:03:15,650 --> 00:03:17,650 Právě teď, a za Doba trvání tohoto semináře, 64 00:03:17,650 --> 00:03:19,990 budeme používat jediného pohledu aplikace, jen 65 00:03:19,990 --> 00:03:22,590 jakýsi základní aplikace aby se vaše nohy mokré. 66 00:03:22,590 --> 00:03:25,200 A můžete větvit na vlastní pěst odtamtud. 67 00:03:25,200 --> 00:03:27,660 >> Klepněte na tlačítko Další v tomto bodě. 68 00:03:27,660 --> 00:03:30,796 Teď je tu pár věcí že budete chtít vstoupit. 69 00:03:30,796 --> 00:03:32,670 Název produktu je název projektu. 70 00:03:32,670 --> 00:03:34,859 V tomto případě, já jsem jen bude to nazvat Seminar1 71 00:03:34,859 --> 00:03:36,150 protože to je naše první příklad. 72 00:03:36,150 --> 00:03:38,290 Název organizace, ve tento případ je jen mé jméno. 73 00:03:38,290 --> 00:03:41,760 Můžete samozřejmě změnit na své vlastní jméno, nebo na CS50. 74 00:03:41,760 --> 00:03:46,160 Identifikátor organizace, pokud máte stalo se, že webové stránky vezměte 75 00:03:46,160 --> 00:03:49,940 doménové jméno zvrátit, com.yourname. 76 00:03:49,940 --> 00:03:54,200 a pak název produktu automaticky se zobrazí 77 00:03:54,200 --> 00:03:55,820 poté jako identifikátor svazku. 78 00:03:55,820 --> 00:03:59,200 >> Je zřejmé, že jazyk, který jsme bude používat pro dnešní den je rychlá. 79 00:03:59,200 --> 00:04:02,590 Můžete samozřejmě použít Objective C za to, ale dnes bude rychlá. 80 00:04:02,590 --> 00:04:04,920 A my teď říkat univerzální zařízení, tak 81 00:04:04,920 --> 00:04:06,900 že to funguje jak na iPad a iPhone. 82 00:04:06,900 --> 00:04:10,040 A necháme jádro Údaje nekontrolované zachovat 83 00:04:10,040 --> 00:04:12,830 projekt relativně Jednoduchý v současné době. 84 00:04:12,830 --> 00:04:14,430 Tak pojďme do toho a klepněte na tlačítko Další. 85 00:04:14,430 --> 00:04:16,471 A to mě zeptat kde chci uložit. 86 00:04:16,471 --> 00:04:19,250 Budu ji uložit do svého počítače nyní. 87 00:04:19,250 --> 00:04:22,267 >> Dobře, takže teď je to to, co bude stane, když ve skutečnosti otevřené Xcode. 88 00:04:22,267 --> 00:04:24,100 A všimněte si, že Úplně první věc, kterou uvidíte 89 00:04:24,100 --> 00:04:28,770 je to vykřičník, že říká, že ne podpis identity nalezen. 90 00:04:28,770 --> 00:04:31,520 Záměrně jsem to udělal na mém počítači a já jsem 91 00:04:31,520 --> 00:04:34,220 doufal, že budu moci skutečně opravit, 92 00:04:34,220 --> 00:04:37,860 proto, že chci, abyste viděli, jak to bude skutečně pracovat na vlastním stroji. 93 00:04:37,860 --> 00:04:40,400 >> Jděte do toho a klikněte na tlačítko Opravit problém. 94 00:04:40,400 --> 00:04:45,400 To se vás zeptá, zda máte Stávající vývojáře od společnosti Apple účet. 95 00:04:45,400 --> 00:04:48,330 To je místo, kde spojení CS50 vývoj aplikací tým 96 00:04:48,330 --> 00:04:51,240 Je důležité, aby vám nebude pouze app účet 97 00:04:51,240 --> 00:04:53,690 ale máte také schopnost podepsat aplikace 98 00:04:53,690 --> 00:04:56,420 a dát je na vašem zařízení se systémem iOS. 99 00:04:56,420 --> 00:04:58,957 To je ne-- kliknutí fix problém není nutné 100 00:04:58,957 --> 00:05:01,040 pokud jste jen tak budovat a rozvíjet místní úrovni, 101 00:05:01,040 --> 00:05:03,520 zcela v iOS simulátoru. 102 00:05:03,520 --> 00:05:05,820 >> Ale teď jdu rozvíjet a dát je 103 00:05:05,820 --> 00:05:08,160 na můj iPad, který bude schopen vysílat také. 104 00:05:08,160 --> 00:05:10,770 Tak jsem to chtěl skutečně dodat toto. 105 00:05:10,770 --> 00:05:13,670 A že to bude ptát mě na moji apple ID. 106 00:05:13,670 --> 00:05:15,700 Takže to bude tohle. 107 00:05:15,700 --> 00:05:18,940 A musím přinést My hesla, což je tady. 108 00:05:18,940 --> 00:05:27,760 Tak mi dej jen jeden sekundu najít to, a zkopírujte a vložte jej sem. 109 00:05:27,760 --> 00:05:28,580 >> Klepněte na tlačítko Přidat. 110 00:05:28,580 --> 00:05:31,095 Bude to a zeptejte se mě který tým Chci se připojit. 111 00:05:31,095 --> 00:05:33,240 Budu dělat školu inženýrství. 112 00:05:33,240 --> 00:05:35,680 Klepněte na tlačítko Připojit. 113 00:05:35,680 --> 00:05:37,780 Jejda, to je špatný. 114 00:05:37,780 --> 00:05:40,730 Pojďme to udělat jeden. 115 00:05:40,730 --> 00:05:42,060 Doufejme, že z nich bude pracovat. 116 00:05:42,060 --> 00:05:44,220 Tenhle stále nefunguje. 117 00:05:44,220 --> 00:05:46,610 Dochází nám z dobrých zde. 118 00:05:46,610 --> 00:05:48,260 OK, tohle by mělo fungovat. 119 00:05:48,260 --> 00:05:50,816 Teď blízko, že. 120 00:05:50,816 --> 00:05:54,450 A teď pojďme udělat školu strojírenství, klepněte na tlačítko vyberte. 121 00:05:54,450 --> 00:06:00,190 >> A teď doufám, že po pár vteřin can-- OK, 122 00:06:00,190 --> 00:06:02,550 Budu odvolat a požádat. 123 00:06:02,550 --> 00:06:05,410 Člověče, to bude fungovat. 124 00:06:05,410 --> 00:06:08,890 OK, zkusím jiný. 125 00:06:08,890 --> 00:06:11,167 Pojďme to udělat jeden tady. 126 00:06:11,167 --> 00:06:17,020 127 00:06:17,020 --> 00:06:19,310 Živé ukázky mě nedaří. 128 00:06:19,310 --> 00:06:22,540 Možná budeme muset vrátit jen budova zcela na místě, 129 00:06:22,540 --> 00:06:25,050 ale to by bylo v pořádku v tomto případě. 130 00:06:25,050 --> 00:06:28,560 >> Tak zde, když je to skutečně pracovní, co budeme dělat, je jen 131 00:06:28,560 --> 00:06:31,190 vytvořit velmi jednoduchý Hello World aplikace. 132 00:06:31,190 --> 00:06:32,340 Tak tohle je Xcode. 133 00:06:32,340 --> 00:06:37,300 A pokud jste ho ještě neviděli ještě, to může být trochu zastrašující na prvním místě. 134 00:06:37,300 --> 00:06:41,430 Je tu spousta tabulí, je tu Mnoho doodads v různých oblastech. 135 00:06:41,430 --> 00:06:44,300 Ale jen si uvědomit, že je tu Opravdu několik hlavních komponent 136 00:06:44,300 --> 00:06:46,580 do tohoto vývojového prostředí. 137 00:06:46,580 --> 00:06:51,090 Zcela vlevo, jsou všechny soubory které se vztahují k programu 138 00:06:51,090 --> 00:06:52,997 nebo na konkrétní projekt. 139 00:06:52,997 --> 00:06:55,080 Budeme kliknutím kolem na některé z nich a my budeme 140 00:06:55,080 --> 00:06:57,660 zdůraznit nejvíce nejdůležitější v průběhu času. 141 00:06:57,660 --> 00:06:59,650 Na krajní pravice, my mít sadu atributů. 142 00:06:59,650 --> 00:07:02,920 A všechny tyto atributy, tam jsou různé tabule pro atributy. 143 00:07:02,920 --> 00:07:06,770 Tabule se bude měnit v závislosti na kontext hlavní obsah, který 144 00:07:06,770 --> 00:07:08,290 se stane, že je ve středu. 145 00:07:08,290 --> 00:07:11,740 Nyní prostřední může skutečně ukázat si různé věci, například 146 00:07:11,740 --> 00:07:13,290 váš kód sám. 147 00:07:13,290 --> 00:07:17,070 Nebo můžete skutečně have-- při kliknete na scénáři, který 148 00:07:17,070 --> 00:07:21,270 je, mimochodem, jen grafický reprezentace uživatele si 149 00:07:21,270 --> 00:07:25,350 interface pro vaši application-- pak podokně atributy 150 00:07:25,350 --> 00:07:27,334 na daleko zcela vpravo bude skutečně změní. 151 00:07:27,334 --> 00:07:29,750 Teď je tu pár dalších věci, které chci zdůraznit. 152 00:07:29,750 --> 00:07:33,360 Můžete trochu prozkoumat okolí v prostředí na vlastní pěst. 153 00:07:33,360 --> 00:07:35,730 Ale jedna z věcí, která byla velmi užitečná 154 00:07:35,730 --> 00:07:38,470 je zde tlačítko, v pravém horním rohu okna. 155 00:07:38,470 --> 00:07:41,230 Tam je to tlačítko, které vypadá na daleko 156 00:07:41,230 --> 00:07:46,090 nechal má odstavec následované dvěma kruhy a třídit 157 00:07:46,090 --> 00:07:49,540 ze dvou šipkami od sebe. 158 00:07:49,540 --> 00:07:52,640 Máte-li přepínat mezi standardní editor, který 159 00:07:52,640 --> 00:07:55,560 je zcela vlevo jedna, jedna že je vybrána ve výchozím nastavení, 160 00:07:55,560 --> 00:08:01,040 a dva kruhy překrývají navzájem, to, co skutečně dostat 161 00:08:01,040 --> 00:08:02,210 jsou dvojité pohled tabule. 162 00:08:02,210 --> 00:08:04,240 >> A to je ve skutečnosti bude užitečné pro nás 163 00:08:04,240 --> 00:08:07,330 kdy je třeba propojit položky v uživatelském rozhraní s kódem. 164 00:08:07,330 --> 00:08:09,330 A budeme hovořit o že za chvíli. 165 00:08:09,330 --> 00:08:12,050 Ale uvědomit, že pokud se dostanete ještě více skla, jako je tento, 166 00:08:12,050 --> 00:08:15,830 si můžete zjednodušit váš názor jen trochu kliknutím zpět 167 00:08:15,830 --> 00:08:20,680 na své jediné editoru. 168 00:08:20,680 --> 00:08:21,580 Zatím je to dobré. 169 00:08:21,580 --> 00:08:24,560 Takže v podstatě máme kód na vlevo, atributy na pravé straně, 170 00:08:24,560 --> 00:08:28,260 a co to je, že pracujeme zde v samém centru města. 171 00:08:28,260 --> 00:08:30,390 >> Tak tady jsem kliknul na hlavním scénáři. 172 00:08:30,390 --> 00:08:33,350 A storyboard, opět, je způsob, Xcode 173 00:08:33,350 --> 00:08:38,110 že můžete skutečně vytvořit uživatele interface pouze pomocí drag and drop 174 00:08:38,110 --> 00:08:39,130 techniky. 175 00:08:39,130 --> 00:08:41,190 A tak náš velmi První aplikace tohoto 176 00:08:41,190 --> 00:08:42,720 je přesně to, co budeme dělat. 177 00:08:42,720 --> 00:08:45,950 Chystáme se jít dolů do velmi daleko pravé dolní části 178 00:08:45,950 --> 00:08:49,900 obrazovky, která obsahuje různé uživatelských prvků 179 00:08:49,900 --> 00:08:53,270 které pak můžete kliknout a táhnout k vytvoření uživatelského rozhraní. 180 00:08:53,270 --> 00:08:55,550 >> Nyní jsou všechny z nich prvky se nazývají pohledy 181 00:08:55,550 --> 00:08:57,370 proto, že dodávají nějaký názor. 182 00:08:57,370 --> 00:09:00,190 K dispozici je pohled obraz, pro příklad, ve skutečnosti ukazují, 183 00:09:00,190 --> 00:09:01,740 obraz na uživatelském rozhraní. 184 00:09:01,740 --> 00:09:04,310 K dispozici je stolní pohled na ve skutečnosti ukazují tabulky. 185 00:09:04,310 --> 00:09:05,190 Tak dále a tak dále. 186 00:09:05,190 --> 00:09:08,250 K dispozici je široká škála pohledy, které si můžete vybrat zde. 187 00:09:08,250 --> 00:09:11,100 Tak právě pro teď jdeme hledat štítku. 188 00:09:11,100 --> 00:09:13,550 Stačí si jen procházet všechny seznamy, které tam je. 189 00:09:13,550 --> 00:09:15,460 Ale je tu vyhledávání bar na samém dně 190 00:09:15,460 --> 00:09:19,460 že usnadňuje identifikaci specifické pohledy, že jste skutečně 191 00:09:19,460 --> 00:09:22,020 Chcete přetáhnout do svého uživatelského rozhraní. 192 00:09:22,020 --> 00:09:23,560 >> Nalezeno svůj label. 193 00:09:23,560 --> 00:09:28,430 Chystám se táhnout to tady, přímo na mé ukázkové aplikace. 194 00:09:28,430 --> 00:09:30,130 Přímo tam v prostřední vypadá dobře. 195 00:09:30,130 --> 00:09:33,180 A já budu psát "Hello World!" 196 00:09:33,180 --> 00:09:33,810 Stiskněte klávesu Enter. 197 00:09:33,810 --> 00:09:34,877 Teď mám štítek. 198 00:09:34,877 --> 00:09:36,960 To nevypadá, že je to soustředěný zcela správně. 199 00:09:36,960 --> 00:09:38,500 Tak jsem se pokusit znovu domu IT. 200 00:09:38,500 --> 00:09:42,100 Naštěstí nabízí tyto vodítka, aby se věci mnohem jednodušší. 201 00:09:42,100 --> 00:09:44,130 Budu se snažit, aby to zkompilovat. 202 00:09:44,130 --> 00:09:46,570 Doufejme, že to bude skutečně pracovat. 203 00:09:46,570 --> 00:09:52,870 A pokud tomu tak není, za chvíli to bude ve skutečnosti vypadat na mém iPad. 204 00:09:52,870 --> 00:09:54,360 Je to přímo tady. 205 00:09:54,360 --> 00:09:55,060 Tady to je. 206 00:09:55,060 --> 00:09:56,590 >> OK, tak to je ono. 207 00:09:56,590 --> 00:09:57,160 Skončili jsme. 208 00:09:57,160 --> 00:09:58,868 Jsme vytvořili naše velmi první žádosti. 209 00:09:58,868 --> 00:10:01,330 Teď samozřejmě to nic nedělá. 210 00:10:01,330 --> 00:10:02,280 Je to jen označení. 211 00:10:02,280 --> 00:10:07,350 Neexistuje žádná souvislost mezi uživatelské rozhraní a kód. 212 00:10:07,350 --> 00:10:10,130 Takže pokud bychom skutečně chtěli k vytvoření tohoto spojení, 213 00:10:10,130 --> 00:10:14,790 Pokud bychom opravdu chtěli mít nějaký komunikace mezi prvky 214 00:10:14,790 --> 00:10:17,540 že existují na displej a kód, který 215 00:10:17,540 --> 00:10:19,810 nám umožňuje ovládat ty prvky, pak 216 00:10:19,810 --> 00:10:23,570 vlastně potřebujeme podívejte se na samotném kódu. 217 00:10:23,570 --> 00:10:27,000 >> Tak tohle je to, co se nazývá ViewController.swift. 218 00:10:27,000 --> 00:10:30,080 A, zejména pro několika prvních programů, 219 00:10:30,080 --> 00:10:33,120 to bude trochu Převážná část kódu, který enter-- 220 00:10:33,120 --> 00:10:35,980 bude v tomto dokumentu zde. 221 00:10:35,980 --> 00:10:38,390 Je tu spousta věcí že je tady tak daleko, že jo? 222 00:10:38,390 --> 00:10:42,660 K dispozici je import UI kit třída, přepsat, [? funk,?] všechny tyto různé věci. 223 00:10:42,660 --> 00:10:45,820 A to není úplně jasné, co to je, že všechny to znamená. 224 00:10:45,820 --> 00:10:48,570 Takže pojďme udělat krok zpět od z Xcode pro trochu 225 00:10:48,570 --> 00:10:52,420 a podívat se na samotný jazyk, rychlé. 226 00:10:52,420 --> 00:10:56,370 >> Tak se rychle, to bylo v návrh a vývoj 227 00:10:56,370 --> 00:10:58,645 u Apple pro asi čtyři let mého chápání. 228 00:10:58,645 --> 00:11:01,270 A je tu pár funkcí o tom, že jsou opravdu hezké. 229 00:11:01,270 --> 00:11:03,910 Za prvé, je to sestavují jazyk, stejně jako C. 230 00:11:03,910 --> 00:11:06,120 Takže musíte nejprve zkompilovat a spusťte jej 231 00:11:06,120 --> 00:11:09,580 Před můžete skutečně spustit kód, který vede. 232 00:11:09,580 --> 00:11:14,250 Ale je tu, na rozdíl od C, interaktivní výzvu, že můžete skutečně spustit 233 00:11:14,250 --> 00:11:16,680 a zadejte libovolné příkazy do. 234 00:11:16,680 --> 00:11:20,280 A velmi podobně jako konzole JavaScript, které můžete znát hned, 235 00:11:20,280 --> 00:11:24,506 to ve skutečnosti bude hodnotit ty, příkazy a poskytne vám výstup. 236 00:11:24,506 --> 00:11:26,380 A oni si dokonce vzít že na další úroveň 237 00:11:26,380 --> 00:11:29,100 a že jsem vytvořil něco tzv hřiště v Xcode 238 00:11:29,100 --> 00:11:31,720 které vám umožňují vizuálně pracovat s kódem. 239 00:11:31,720 --> 00:11:34,910 A budeme skutečně vidět několik příkladů z toho v jen trochu. 240 00:11:34,910 --> 00:11:41,680 Je založen na C. C je základem to, protože všechny kompilátory 241 00:11:41,680 --> 00:11:46,820 vytvořit kód z C a vytvořit objektový kód z ní. 242 00:11:46,820 --> 00:11:49,240 Ale je to opravdu akcie poměrně málo syntax. 243 00:11:49,240 --> 00:11:50,721 Bude to vypadat docela jinak. 244 00:11:50,721 --> 00:11:51,970 Bude tam nějaké podobnosti. 245 00:11:51,970 --> 00:11:54,140 Ale tam se bude poměrně málo rozdílů 246 00:11:54,140 --> 00:11:57,200 v porovnání s, řekněme, JavaScript nebo PHP. 247 00:11:57,200 --> 00:11:59,070 A budeme ukazovat tyto se jen na chvíli. 248 00:11:59,070 --> 00:12:01,420 >> Nyní jeden z největších věcí, o rychlý, že je to pěkné 249 00:12:01,420 --> 00:12:05,650 je to, že, zvláště v porovnání C, to znamená, že je v bezpečí. 250 00:12:05,650 --> 00:12:08,100 Všechno, co v něm je určen pro se velmi silně zadat. 251 00:12:08,100 --> 00:12:10,780 Ve skutečnosti je to skoro nepříjemné na první, když jste poprvé 252 00:12:10,780 --> 00:12:15,610 začít pracovat s rychlé, jak moc to prosazuje typy všude. 253 00:12:15,610 --> 00:12:17,860 Cokoliv, co je to řetězec musí zůstat řetězec. 254 00:12:17,860 --> 00:12:22,100 Je to velmi těžké, aby tak nějak převést ho nebo nutit do jiné formě. 255 00:12:22,100 --> 00:12:23,800 >> A opět, ukážeme příklady tohoto. 256 00:12:23,800 --> 00:12:26,830 Ale nakonec si uvědomit, že to znamená, aby vás chránit, 257 00:12:26,830 --> 00:12:32,010 a vy myslím kód, z shazovat nějakým hrozným způsobem, kdy 258 00:12:32,010 --> 00:12:34,330 Máte nějaký neodpovídající typu. 259 00:12:34,330 --> 00:12:36,040 A opět, s ním pracovat. 260 00:12:36,040 --> 00:12:40,210 Vzhledem k tomu, že bude frustrující nejprve jak jste se snaží přijít na to, proč zrovna 261 00:12:40,210 --> 00:12:43,070 začínáš tento neobvyklý chyba se zabývá typy. 262 00:12:43,070 --> 00:12:45,350 Ale to bude stát za to do konce. 263 00:12:45,350 --> 00:12:47,267 >> To se zabývají automatickým správa paměti, 264 00:12:47,267 --> 00:12:49,100 takže už se vám muset vypořádat s věcmi 265 00:12:49,100 --> 00:12:51,400 jako malloc a zdarma a všechny tyto druhy věcí. 266 00:12:51,400 --> 00:12:53,066 A to je také navržen pro všeobecnosti. 267 00:12:53,066 --> 00:12:58,360 Takže zatímco můžeme použít Xcode pro vytvořit iOS aplikace a aplikace Mac, 268 00:12:58,360 --> 00:13:00,380 můžeme také jen používat jako skriptovací jazyk. 269 00:13:00,380 --> 00:13:03,660 A tak ji můžeme použít třídění na místo PHP nebo místo 270 00:13:03,660 --> 00:13:07,800 Python skutečně rychle analyzovat a proces 271 00:13:07,800 --> 00:13:09,800 některé údaje, které máme v našem počítači. 272 00:13:09,800 --> 00:13:13,290 >> Má širokou škálu moderního rysy, Volitelné, proměnlivost, 273 00:13:13,290 --> 00:13:17,900 generik, uzávěry, a hodně z toho věci, může nebo nemusí rozpoznat. 274 00:13:17,900 --> 00:13:22,810 A je to jen trochu nešťastný část jazyka, že některé z nich 275 00:13:22,810 --> 00:13:26,700 trochu futuristický, moderní prvky, které jsou obsaženy v prvky jsou 276 00:13:26,700 --> 00:13:34,520 tak hluboce zakořeněný, že jsem vlastně bude muset naučit CS50.5 trochu. 277 00:13:34,520 --> 00:13:37,305 >> Musíme se naučit trochu více o některých prvků s cílem 278 00:13:37,305 --> 00:13:40,180 aby skutečně pochopili, co se děje o a tak, že se můžete podívat na kód 279 00:13:40,180 --> 00:13:42,450 a necítí úplně ztraceno. 280 00:13:42,450 --> 00:13:44,820 A uvidíte, co mám na mysli se tím, že jen na chvíli. 281 00:13:44,820 --> 00:13:47,830 OK, takže let's-- dost toho druh teoretického věci. 282 00:13:47,830 --> 00:13:52,450 Pojďme se podívat na naši vlastně První rychlý programem. 283 00:13:52,450 --> 00:13:53,590 Je to jeden řádek kódu. 284 00:13:53,590 --> 00:13:57,690 Linka 14 tady, ji říká, že tisk l n ahoj CS50. 285 00:13:57,690 --> 00:14:01,160 >> Takže je tu pár věcí, které je velmi odlišné o tom v porovnání 286 00:14:01,160 --> 00:14:04,140 na věci, které by vás mohly být používají k od C, např. 287 00:14:04,140 --> 00:14:08,390 Jedním z nich je, že neexistuje žádný intmain, není zahrnovat část, 288 00:14:08,390 --> 00:14:10,790 je tu nikdo z této dodatečné věci. 289 00:14:10,790 --> 00:14:13,790 Patří, stejně jako standardní I / O, stejně jako knihovny 290 00:14:13,790 --> 00:14:16,580 že skutečně poskytují standardní funkce jazyka, 291 00:14:16,580 --> 00:14:19,180 jsou automaticky zahrnuty jako Součástí standardní knihovny SWIFT 292 00:14:19,180 --> 00:14:20,680 a které jsou automaticky importovány. 293 00:14:20,680 --> 00:14:23,740 Nemusíte dělat že import ručně. 294 00:14:23,740 --> 00:14:27,360 >> Intmain neexistuje, protože hlavní vstupní bod pro kód 295 00:14:27,360 --> 00:14:29,470 je ve skutečnosti v začátek kódu. 296 00:14:29,470 --> 00:14:32,000 Takže jakýkoli kód, který máte od začátku 297 00:14:32,000 --> 00:14:34,940 bude skutečně proveden na začátku. 298 00:14:34,940 --> 00:14:36,520 Takže to opravdu výrazně zjednodušuje. 299 00:14:36,520 --> 00:14:38,470 Všimněte si také, že není středník. 300 00:14:38,470 --> 00:14:41,040 K dispozici je v tomto jazyce, žádné středníky. 301 00:14:41,040 --> 00:14:43,261 Dáte prohlášení na jednotlivé linky 302 00:14:43,261 --> 00:14:45,510 a pak další řádek představuje další prohlášení. 303 00:14:45,510 --> 00:14:47,420 Chcete-li, aby mulitiple prohlášení on-line, 304 00:14:47,420 --> 00:14:49,086 pak máte oddělte středníkem. 305 00:14:49,086 --> 00:14:50,940 Ale z větší části, pro dobrý styl, my jsme 306 00:14:50,940 --> 00:14:56,530 nikdy vidět středníky pro účely separace prohlášení 307 00:14:56,530 --> 00:14:58,420 SWIFT. 308 00:14:58,420 --> 00:14:59,820 Tak jak to vlastně funguje? 309 00:14:59,820 --> 00:15:04,080 Tak velmi podobně jako C my skutečně sestavit to. 310 00:15:04,080 --> 00:15:10,640 A tak můžeme udělat, že při použití rychlá c a pak 1.swift. 311 00:15:10,640 --> 00:15:13,850 A pak po pár minut to bude sestavovat 312 00:15:13,850 --> 00:15:16,340 a pak můžu běžet jednu položku. 313 00:15:16,340 --> 00:15:19,691 A než to bude jen říkat "Ahoj CS50." 314 00:15:19,691 --> 00:15:20,690 Super, takže tam jedeme. 315 00:15:20,690 --> 00:15:22,273 Tady je náš první Hello world. 316 00:15:22,273 --> 00:15:24,790 Pojďme se přesunout na číslo dvě. 317 00:15:24,790 --> 00:15:30,450 >> Nyní v tohle-- to změnilo lehce, protože zatímco normálně vás 318 00:15:30,450 --> 00:15:34,720 do-- ve skutečnosti vždy máte na sestavit rychlé aplikace předtím, než 319 00:15:34,720 --> 00:15:37,180 vlastně spustit to-- jeden ze skvělých funkcí 320 00:15:37,180 --> 00:15:40,230 které jsem se zmiňoval o předtím bylo, že rychlá může být skutečně použity na druhu 321 00:15:40,230 --> 00:15:43,390 z režimu pseudo-interpretační, tam je ve skutečnosti jako tlumočníka. 322 00:15:43,390 --> 00:15:46,690 Ale co to bude dělat, je tam je, ve skutečnosti, rychlá aplikace 323 00:15:46,690 --> 00:15:47,520 že můžete spustit. 324 00:15:47,520 --> 00:15:51,050 >> Tak například, pokud jste právě zadat zde rychlý, co se bude dít 325 00:15:51,050 --> 00:15:52,330 je to, že budete mít dotaz. 326 00:15:52,330 --> 00:15:59,040 A můžete zadat svůj Swift kód, tisk ahoj, a spusťte jej. 327 00:15:59,040 --> 00:16:01,867 A to bude skutečně print-- no, to se netisknou v tomto případě 328 00:16:01,867 --> 00:16:04,450 protože vytištěna na střed ven, která není vidět zde. 329 00:16:04,450 --> 00:16:06,660 Ale to je vlastně schopen fungovat. 330 00:16:06,660 --> 00:16:09,580 A tak v tomto případě, já jsem jen bude použít jako skript. 331 00:16:09,580 --> 00:16:11,259 A já si skutečně spustit tento kód tam. 332 00:16:11,259 --> 00:16:13,800 Takže jak jsem vlastně běžet to bude mírně lišit, 333 00:16:13,800 --> 00:16:15,710 ale uvidíte, že za chvíli. 334 00:16:15,710 --> 00:16:18,890 Nyní, v tomto případě to, co budeme udělat, je nejprve definovat proměnné. 335 00:16:18,890 --> 00:16:22,160 Tak to je, jak definovat proměnná v rychlé, 336 00:16:22,160 --> 00:16:25,900 je používáme nechat klíčové slovo, následoval názvem proměnné, 337 00:16:25,900 --> 00:16:29,280 a pak jsme se poskytnout nějaké inicializaci dat volitelně. 338 00:16:29,280 --> 00:16:34,660 Takže v tomto případě jsme definování konstanta s názvem název, 339 00:16:34,660 --> 00:16:37,775 a budeme používat, že v výstup naší tiskové linky 340 00:16:37,775 --> 00:16:39,590 na samém dně, ahoj jméno. 341 00:16:39,590 --> 00:16:43,260 >> Nyní si všimnout, že spíše než pomocí% s, můžeme zapouzdřit název této 342 00:16:43,260 --> 00:16:49,960 proměnná v / () a být schopen zřetězit v obsahu tohoto 343 00:16:49,960 --> 00:16:51,790 řetězec do tohoto řetězce. 344 00:16:51,790 --> 00:16:56,510 Nyní na rozdíl od C, řetězec je aktuální typ real SWIFT. 345 00:16:56,510 --> 00:16:59,240 A tak to sedí vedle ints a vedle 346 00:16:59,240 --> 00:17:02,220 zdvojnásobí velmi snadno a přirozeně srovnání 347 00:17:02,220 --> 00:17:05,450 na některé z druhé jazyky, které jsme viděli. 348 00:17:05,450 --> 00:17:07,980 Tak to by vlastně fungují stejně jako vy by se dalo očekávat. 349 00:17:07,980 --> 00:17:10,540 >> Můžu běžet 2.swift. 350 00:17:10,540 --> 00:17:14,390 A vidíme, že se jmenuji ve skutečnosti spojeny v "Ahoj Dane." 351 00:17:14,390 --> 00:17:16,050 OK, úžasné. 352 00:17:16,050 --> 00:17:17,485 Přesun na číslo tři. 353 00:17:17,485 --> 00:17:19,359 Teď to bylo trochu bílé lži, které jsem 354 00:17:19,359 --> 00:17:23,369 řekl, že způsob, jakým prohlašujeme proměnné bylo použít nechat klíčové slovo. 355 00:17:23,369 --> 00:17:27,640 Tolikrát, kolikrát, jak si možná můžete udělat chcete použít nechat, protože to, co dělá, že 356 00:17:27,640 --> 00:17:29,280 je to definuje konstantní. 357 00:17:29,280 --> 00:17:33,010 A to říká, rychlý, že to může optimalizaci rychlosti aplikace 358 00:17:33,010 --> 00:17:36,230 protože ví, že proměnná se nebude měnit. 359 00:17:36,230 --> 00:17:38,760 >> Tak hodnotí opatrně když budete používat 360 00:17:38,760 --> 00:17:41,382 proměnná pro účely jej změnit. 361 00:17:41,382 --> 00:17:43,340 A když budete vytvořit proměnnou jen 362 00:17:43,340 --> 00:17:47,010 držet některé údaje, a že je ne vlastně změní. 363 00:17:47,010 --> 00:17:50,150 Takže tento pojem neměnnosti, to není ve skutečnosti se změní, 364 00:17:50,150 --> 00:17:53,740 je důležitá, i když Pokud dolů, jak definovat proměnné. 365 00:17:53,740 --> 00:17:56,870 Tak tady jsme definovali jméno, nechal jméno, a v tomto případě 366 00:17:56,870 --> 00:18:02,120 je to konstanta, která je typu řetězec, a to se rovná Dan. 367 00:18:02,120 --> 00:18:05,580 >> A tak zatímco v předchozí verze, to infers-- a "to" 368 00:18:05,580 --> 00:18:08,220 Myslím swift-- Swift odvodí typ dat 369 00:18:08,220 --> 00:18:10,850 že jsme vstoupili do proměnné. 370 00:18:10,850 --> 00:18:12,930 V tomto případě můžeme být explicitní. 371 00:18:12,930 --> 00:18:17,590 Tak ať pak název této proměnné je název, pak tlustého střeva. 372 00:18:17,590 --> 00:18:21,350 A za dvojtečkou my specifikovat typ dat. 373 00:18:21,350 --> 00:18:24,694 Tak už je to INT název nebo Název řetězce nebo něco takového. 374 00:18:24,694 --> 00:18:26,860 Ale místo toho nechal štítek, my jsme určování, zda 375 00:18:26,860 --> 00:18:29,090 to je konstantní nebo variabilní, po níž následuje jméno, 376 00:18:29,090 --> 00:18:31,870 následuje typu Volitelně. 377 00:18:31,870 --> 00:18:34,730 >> Takže v tomto případě jsme definování Tento název je řetězec. 378 00:18:34,730 --> 00:18:35,790 Jsme říká Dan. 379 00:18:35,790 --> 00:18:39,270 A teď mám další proměnné, V tomto případě je to jen nálepka. 380 00:18:39,270 --> 00:18:42,090 Ale všimněte si, že to je předponou pomocí klíčového slova var. 381 00:18:42,090 --> 00:18:44,430 Klíčového slova var prostředky že tato proměnná může 382 00:18:44,430 --> 00:18:48,720 být změněn v pozdějším okamžiku čas, někde v kódu 383 00:18:48,720 --> 00:18:52,480 můžeme ji a ona skutečně změnit nebude nám žádnou konkrétní chybu. 384 00:18:52,480 --> 00:18:56,760 >> Můžeme to udělat standardní Zřetězení Operátor se zde pomocí na symbol plus 385 00:18:56,760 --> 00:19:00,130 skutečně přidat naše jméno do tohoto řetězce. 386 00:19:00,130 --> 00:19:02,921 A pak můžeme vytisknout jak jsme viděli před chvílí. 387 00:19:02,921 --> 00:19:04,920 Nyní řekněme, že vám Chcete vytvořit proměnnou 388 00:19:04,920 --> 00:19:06,586 ale nechcete jej inicializovat dosud. 389 00:19:06,586 --> 00:19:08,590 Nemáte ještě chtít dát všechna data v něm. 390 00:19:08,590 --> 00:19:11,760 No, musím říct rychlý jaký typ dat 391 00:19:11,760 --> 00:19:16,430 bude trvat, než si můžete vlastně definovat správně. 392 00:19:16,430 --> 00:19:20,360 >> Takže v tomto případě, kdy jsme definovaný proměnná nazývá stupeň musíme být 393 00:19:20,360 --> 00:19:24,450 výslovně o svého druhu, protože nelze dovodit, jen se dívá 394 00:19:24,450 --> 00:19:27,300 na inicializována údajů které poskytnete na něj. 395 00:19:27,300 --> 00:19:30,050 To nám dává chybu, pokud se Stačí zadat var stupeň, například, 396 00:19:30,050 --> 00:19:31,830 protože nemá žádný typ proto. 397 00:19:31,830 --> 00:19:33,353 Takže stupeň = 100. 398 00:19:33,353 --> 00:19:35,790 Tak, že 100 je číslo, to zapadá velmi dobře do toho. 399 00:19:35,790 --> 00:19:36,998 To bude i nadále fungovat. 400 00:19:36,998 --> 00:19:40,350 401 00:19:40,350 --> 00:19:43,022 Můžeme vidět, jak pak jsme může zřetězit to v. 402 00:19:43,022 --> 00:19:44,730 Nyní můžete být pokušení, pokud jste skutečně 403 00:19:44,730 --> 00:19:48,610 chtěl zřetězit třída do jiného textového řetězce, 404 00:19:48,610 --> 00:19:52,560 do jiného řetězce, že byste právě používat stejně operátor zřetězení. 405 00:19:52,560 --> 00:19:54,630 A že by za normálních okolností byla pravda. 406 00:19:54,630 --> 00:20:00,540 Ale rychle nedovolí vám implicitně změnit typ dat. 407 00:20:00,540 --> 00:20:03,440 Takže v tomto případě, to linka, 25, se nezdaří 408 00:20:03,440 --> 00:20:06,650 proto, že třída je integer a ne řetězec. 409 00:20:06,650 --> 00:20:08,760 A tak je tu nesouladu nastavení typů. 410 00:20:08,760 --> 00:20:11,780 Takže musíte být explicitní, pokud Chcete-li změnit tato data, 411 00:20:11,780 --> 00:20:14,080 když chcete donutit to dat do jiného typu 412 00:20:14,080 --> 00:20:17,250 a říct, OK, já chci, aby se tento stupeň, což je celé číslo, 413 00:20:17,250 --> 00:20:19,050 a převést na řetězec. 414 00:20:19,050 --> 00:20:23,970 >> Tak jsem vzít kapitálu, s řetězec všechny typy, všimnete si, jsou kapitalizovány, 415 00:20:23,970 --> 00:20:26,280 Int, Double, String, tak dále a tak dále. 416 00:20:26,280 --> 00:20:28,930 Všechny z nich jsou kapitalizovány jen proto, aby se věci jednodušší. 417 00:20:28,930 --> 00:20:32,240 A budeme říkat vydělat String projít do it třídy. 418 00:20:32,240 --> 00:20:35,020 A to bude vytvářet řetězec z toho celé číslo. 419 00:20:35,020 --> 00:20:37,970 A pak se můžeme spojovat dva velmi pěkně. 420 00:20:37,970 --> 00:20:40,500 Jakékoliv dotazy týkající se této věci tak daleko? 421 00:20:40,500 --> 00:20:43,770 Dobře, pojďme pluh až na číslo čtyři. 422 00:20:43,770 --> 00:20:47,870 >> Nyní se pojďme bavit o nějaké vyspělejší struktury, jako jsou pole a smyčky. 423 00:20:47,870 --> 00:20:54,920 A na rozdíl od C, pole SWIFT nejsou reprezentovány ukazateli. 424 00:20:54,920 --> 00:20:58,730 Ukazatele v rychlé, i když existují, nazvaný 425 00:20:58,730 --> 00:21:02,840 jako nebezpečné ukazatele nebo nějaký podobný typ jako je tento, 426 00:21:02,840 --> 00:21:04,950 oni nejsou vystaveny na vás normálně. 427 00:21:04,950 --> 00:21:07,300 Tak se stává velmi obtížné pro vás manipulovat 428 00:21:07,300 --> 00:21:10,020 paměť přímo z vašeho počítače. 429 00:21:10,020 --> 00:21:11,670 >> Takže pole jsou jen datový typ. 430 00:21:11,670 --> 00:21:16,830 A oni odkazovat pomocí tohoto druhu Od nynějška standardní hranatou závorku notace 431 00:21:16,830 --> 00:21:18,280 že jste neviděli. 432 00:21:18,280 --> 00:21:21,130 Ale když jste skutečně chtějí definovat typ proměnné 433 00:21:21,130 --> 00:21:24,330 jako pole některých konkrétní typ, pak 434 00:21:24,330 --> 00:21:27,150 dát tento typ do hranatých závorek. 435 00:21:27,150 --> 00:21:30,260 Takže to, co říkám je, že Jsem vytvořit proměnnou s názvem 436 00:21:30,260 --> 00:21:33,930 stupně typu int pole. 437 00:21:33,930 --> 00:21:37,380 A já jsem nastavení, které se rovná některé INITIALIZED údaje, které se v tomto případě 438 00:21:37,380 --> 00:21:42,960 100, 0, 90, 85, což je jen kolekce libovolných tříd zde. 439 00:21:42,960 --> 00:21:46,480 Nyní v tomto případě jsem mohl, pamatovat, odstraňte typ, 440 00:21:46,480 --> 00:21:49,580 a bylo by možné ji odvodit na základě údajů inicializována. 441 00:21:49,580 --> 00:21:51,990 Ale když jsem odstranil to a Potřeboval jsem ji nastavit později, 442 00:21:51,990 --> 00:21:56,840 pak bych se ujistit, že tam mám typ. 443 00:21:56,840 --> 00:21:58,750 Dobře, pojďme dál. 444 00:21:58,750 --> 00:22:03,010 Tak jsme can-- pole nám poskytnete odrůda 445 00:22:03,010 --> 00:22:07,130 metod prostřednictvím tohoto tečkové notace u vás jsou pravděpodobně už znají. 446 00:22:07,130 --> 00:22:10,360 Tak grades.count, například, nám říká přesně počet, 447 00:22:10,360 --> 00:22:13,680 z prvků, které jsou obsažené v tomto poli. 448 00:22:13,680 --> 00:22:17,260 >> Pokud se chcete přidat additional-- Nyní si všimnout, že se jedná o var 449 00:22:17,260 --> 00:22:20,140 a ne-- to je proměnná a není konstantní, což 450 00:22:20,140 --> 00:22:24,410 Znamená to, že mohu změnit obsah tohoto pole, mohu přidat objekty do toho. 451 00:22:24,410 --> 00:22:28,870 Ale nemůžu říct, jen známky a pak v hranatých závorkách 452 00:22:28,870 --> 00:22:33,280 čtyři, protože to bude mimo hranice chyby v tomto případě. 453 00:22:33,280 --> 00:22:36,190 Pokud se chci opravdu změnit velikost pole, 454 00:22:36,190 --> 00:22:41,140 Musím použít metodu dot append přidat něco na samém konci. 455 00:22:41,140 --> 00:22:46,900 I však může změnit Individuální indexy. 456 00:22:46,900 --> 00:22:48,920 >> Takže jsem mohl použít známky a pak hranaté závorky 457 00:22:48,920 --> 00:22:52,480 nula na manipulaci s touto první index a tak dále, jako byste normálně očekávat. 458 00:22:52,480 --> 00:22:56,530 A já si to samé vlastně přijímat data z že stejně. 459 00:22:56,530 --> 00:23:00,420 Teď je tu i trochu fantazie metoda jak to udělat, stupně a navíc rovná 460 00:23:00,420 --> 00:23:02,525 a pak další index, který bude append-- 461 00:23:02,525 --> 00:23:04,400 nebo ne jiný index-- ale další seznam, který 462 00:23:04,400 --> 00:23:07,340 se přiloží tento seznam na zadní straně stupňů. 463 00:23:07,340 --> 00:23:09,780 A stupně budou pak obsahují všechno. 464 00:23:09,780 --> 00:23:13,850 Ale to je tak nějak extra věc že jsem jen, že vám ukazuje pro zábavu. 465 00:23:13,850 --> 00:23:14,910 >> Teď je tu pro smyčce. 466 00:23:14,910 --> 00:23:18,970 A to je začátek, kde se věci začnou měnit trochu. 467 00:23:18,970 --> 00:23:22,920 Všimněte si, jak to pro smyčce je odlišný od pro smyčky v C. 468 00:23:22,920 --> 00:23:26,470 Teď jsem se na vědomí, že pro smyčky v Swift může 469 00:23:26,470 --> 00:23:30,650 bude vypadat jako na smyčky v C, ale je tu hodně víc užitečných konstruktů 470 00:23:30,650 --> 00:23:37,840 že v podstatě odstraňují nutnost mít k dispozici pro var i = 0 středník i 471 00:23:37,840 --> 00:23:40,340 je menší než určité délky, tak dále a tak dále, že jo? 472 00:23:40,340 --> 00:23:42,940 A tento konstrukt je jen jeden z nich. 473 00:23:42,940 --> 00:23:49,030 >> Pro index, index je nového proměnná, v tomto případě, v dosahu. 474 00:23:49,030 --> 00:23:52,730 A to, co říkám, je, že tam je rozmezí od 0 po celou cestu až do 475 00:23:52,730 --> 00:23:55,870 ale bez grades.count. 476 00:23:55,870 --> 00:23:58,470 Tak to dot dot méně než značka představuje 477 00:23:58,470 --> 00:24:05,040 rozsah hodnot od nuly celou cestu až do grades.count minus 1. 478 00:24:05,040 --> 00:24:07,070 K dispozici je samostatná subjekt, který existuje, 479 00:24:07,070 --> 00:24:13,320 což je dot dot dot, který by znamená, že chci rozsahu od nuly 480 00:24:13,320 --> 00:24:16,310 do jednotlivých stupňů počítat včetně. 481 00:24:16,310 --> 00:24:19,130 >> Ale v tomto případě, protože tyto pole jsou nulové index, jsme samozřejmě 482 00:24:19,130 --> 00:24:23,290 nechtějí jít do Maximální počet tříd. 483 00:24:23,290 --> 00:24:26,390 Mohu sečíst známky, jak by se mohlo očekávají, a výstup všechny tyto věci. 484 00:24:26,390 --> 00:24:29,620 OK, dál. 485 00:24:29,620 --> 00:24:32,270 Nyní se pojďme mluvit o funkcích. 486 00:24:32,270 --> 00:24:35,465 Aby bylo možné definovat funkce použít funk klíčové slovo. 487 00:24:35,465 --> 00:24:38,090 A opět, v Swift musíte buďte velmi opatrní s typy. 488 00:24:38,090 --> 00:24:41,530 Ty poskytují na to parametry definováním, například, 489 00:24:41,530 --> 00:24:45,440 název parametru a pak Colin, druh údajů 490 00:24:45,440 --> 00:24:47,690 že očekáváte, že parametr akceptovat. 491 00:24:47,690 --> 00:24:50,700 >> Takže v tomto případě máme Funkce tzv počet print stupeň. 492 00:24:50,700 --> 00:24:54,630 Přijímá proměnnou s názvem gradebook, nebo spíše parametr s názvem zadávání známek. 493 00:24:54,630 --> 00:24:59,267 A očekáváme, že zadávání známek být pole celých čísel. 494 00:24:59,267 --> 00:25:01,350 Pokud to gradebook je prázdný, budeme tisknout na jednu věc. 495 00:25:01,350 --> 00:25:06,090 V opačném případě budeme tisknout číslo známek, že to ve skutečnosti má. 496 00:25:06,090 --> 00:25:09,470 >> Nyní, pokud chceme, aby se vrátit nějakou hodnotu, pak způsob 497 00:25:09,470 --> 00:25:14,595 že jsme se změnit tato definice je skutečně používat toto klíčové slovo šipka 498 00:25:14,595 --> 00:25:16,870 nebo použít tento šipkami signifier. 499 00:25:16,870 --> 00:25:19,440 Tak tady budeme definovat funkce s názvem průměr. 500 00:25:19,440 --> 00:25:21,940 Chystáme se přijmout seznam čísel. 501 00:25:21,940 --> 00:25:25,430 A budeme se vrátit double, což bude doufejme 502 00:25:25,430 --> 00:25:31,270 je průměr tohoto pole. 503 00:25:31,270 --> 00:25:34,570 A aby k tomu, že v zájmu skutečně vypočítat tento průměr, 504 00:25:34,570 --> 00:25:38,651 budeme mít částku, a my se o Samozřejmě shrnout všechny objekty 505 00:25:38,651 --> 00:25:39,400 v tomto poli. 506 00:25:39,400 --> 00:25:41,480 >> Všimněte si, že je tu nová styl pro smyčky zde. 507 00:25:41,480 --> 00:25:45,450 Nemusíme být explicitní o iterace přes každé jednotlivé součásti, 508 00:25:45,450 --> 00:25:48,280 ale můžeme místo toho říci třídy a gradebook, význam 509 00:25:48,280 --> 00:25:50,930 že pro každý jednotlivý položka, která máme v tomto, 510 00:25:50,930 --> 00:25:53,482 stanoví, že položky v tomto proměnná s názvem stupeň. 511 00:25:53,482 --> 00:25:54,940 A já chci, aby něco udělat s ním. 512 00:25:54,940 --> 00:26:00,350 Takže budu shrnout všechny tyto údaje a skutečně vrátí dvojí rozdělení. 513 00:26:00,350 --> 00:26:04,436 >> Nyní si všimnout opět tady je Koncept celé číslo divize Swift. 514 00:26:04,436 --> 00:26:06,810 Pokud chcete zdvojnásobit divizi proto, že chcete desetinná místa, 515 00:26:06,810 --> 00:26:09,460 pak musíte být explicitní, Nejde jen o jedné straně, 516 00:26:09,460 --> 00:26:14,030 protože to nebude, aby vám donutit dat na obou stranách tohoto, 517 00:26:14,030 --> 00:26:17,030 musíte skutečně kurz obě strany do čtyřhry 518 00:26:17,030 --> 00:26:19,440 takže jste velmi výslovně o tom, zda 519 00:26:19,440 --> 00:26:23,370 že děláte dvojí rozdělení. 520 00:26:23,370 --> 00:26:26,150 >> Pojďme dál. 521 00:26:26,150 --> 00:26:31,150 Takže pokud bych opravdu chtěl accept-- takže v tomto konkrétním příkladu, 522 00:26:31,150 --> 00:26:34,260 je to stále příkaz linka na základě žádosti. 523 00:26:34,260 --> 00:26:37,920 A my začínáme vidět některé z omezení mladého jazyka 524 00:26:37,920 --> 00:26:41,850 v tom, že i když můžeme přístup k argumenty pomocí 525 00:26:41,850 --> 00:26:44,940 Tato process.arguments, to je ještě ne nutně nejčistší 526 00:26:44,940 --> 00:26:46,200 věc, kterou jsem kdy viděl. 527 00:26:46,200 --> 00:26:49,142 Ale v podstatě jsem povzbudit, abyste se trochu podívat na tento kód 528 00:26:49,142 --> 00:26:51,100 a snaží se přijít na to, co přesně se děje. 529 00:26:51,100 --> 00:26:55,030 >> V podstatě to, co se děje, je to, že vezmeme seznam argumentů 530 00:26:55,030 --> 00:26:57,610 a bylo donutit je do celá čísla, a pak jsme 531 00:26:57,610 --> 00:27:03,620 bude používat, že jako způsob, jak tisknout out průměr všech našich tříd. 532 00:27:03,620 --> 00:27:06,150 533 00:27:06,150 --> 00:27:07,350 Dál. 534 00:27:07,350 --> 00:27:11,190 Teď je tu jiný typ data-- další typ dat spíše než pole 535 00:27:11,190 --> 00:27:14,940 tzv slovníky, které jsou velmi podobně jako hash tabulky nebo hash mapy 536 00:27:14,940 --> 00:27:18,560 a jsou také podobné PHP asociativní pole. 537 00:27:18,560 --> 00:27:20,770 A tak mají představu klíčů a hodnot. 538 00:27:20,770 --> 00:27:23,780 >> A oni jsou definovány také s Toto náměstí držák zápis, 539 00:27:23,780 --> 00:27:26,750 ale rozdíl je že slovníky mají 540 00:27:26,750 --> 00:27:29,370 uvnitř hranatých závorkách, dvojtečkou. 541 00:27:29,370 --> 00:27:33,850 A dvojtečka odděluje data typ, který je klíčem a hodnota. 542 00:27:33,850 --> 00:27:38,540 Takže v tomto případě budu vytvářet slovník přijmout nějaké známky. 543 00:27:38,540 --> 00:27:44,200 A to bude typu string: int, 544 00:27:44,200 --> 00:27:46,940 což znamená, že všechny klíče se bude řetězce, 545 00:27:46,940 --> 00:27:53,080 a všechny hodnoty těch, kteří klíče se bude celá čísla. 546 00:27:53,080 --> 00:27:55,780 >> Co to znamená, že můžu pak odkaz na konkrétní údaje, 547 00:27:55,780 --> 00:28:00,490 že chci používat ty klíče spíše než pomocí číselných indexů, jako já 548 00:28:00,490 --> 00:28:04,350 by se pro standardní pole. 549 00:28:04,350 --> 00:28:06,470 Nyní se podívejme, je tu jedna důležitá věc 550 00:28:06,470 --> 00:28:10,790 že i já chci zmínit o tento konkrétní sekvence kódu. 551 00:28:10,790 --> 00:28:12,910 A to je, že je tu jiný typ dat, 552 00:28:12,910 --> 00:28:15,580 nebo spíš tam je to Myšlenka dat, která je 553 00:28:15,580 --> 00:28:18,340 obsažené v Swift volal Volitelně. 554 00:28:18,340 --> 00:28:21,270 >> A co Volitelně znamená že vychází ze skutečnosti, 555 00:28:21,270 --> 00:28:27,500 že někdy nebudeme získat data, která skutečně očekáváte. 556 00:28:27,500 --> 00:28:31,400 A tak to, co mám na mysli, že je-- pojďme podívejte se na tomto pořadí kódu 557 00:28:31,400 --> 00:28:38,910 který opakuje přes všechny argumenty, které byly předány do tohoto kódu 558 00:28:38,910 --> 00:28:43,460 a snaží se je převést, se snaží rozdělit do různých řetězců, 559 00:28:43,460 --> 00:28:47,310 proto, že přijímá velmi konkrétní typ argumentu. 560 00:28:47,310 --> 00:28:51,530 A pak se to bude snažit donutit řetězce, které představují čísla 561 00:28:51,530 --> 00:28:55,460 na celá čísla, která jsou stupně, že jsem se pak může spočítat. 562 00:28:55,460 --> 00:28:58,230 >> Takže v podstatě jdu použití této funkce Rozdělit že 563 00:28:58,230 --> 00:29:00,080 existuje v rámci Swift standardní knihovna. 564 00:29:00,080 --> 00:29:03,720 Chystám se projít do ní řetězec, který chci rozdělit. 565 00:29:03,720 --> 00:29:06,980 A pak pomocí tohoto trochu funky syntaxe, což 566 00:29:06,980 --> 00:29:09,670 Nemyslím si, pokud budeme vědět, dostat, ale možná, my 567 00:29:09,670 --> 00:29:14,320 bude skutečně specifikovat přesný znak, který chceme rozdělit na adrese. 568 00:29:14,320 --> 00:29:16,030 Takže co to vlastně vypadá? 569 00:29:16,030 --> 00:29:18,740 Pojďme se podívat na vlastně spuštěním tohoto kódu. 570 00:29:18,740 --> 00:29:22,000 >> Tak například, řekněme, že mám kvíz a já mám 50 na to. 571 00:29:22,000 --> 00:29:23,960 A já mám PSETs a Mám sto na to. 572 00:29:23,960 --> 00:29:29,180 A já got-- je tu další kvíz a já jsem dostal 40 na to. 573 00:29:29,180 --> 00:29:33,520 I stiskněte klávesu Enter, a nakonec to, co se stane, je, že to, co to dělá 574 00:29:33,520 --> 00:29:37,730 je s ohledem na tyto parametry, štípací řetězce v těchto dvojtečky, 575 00:29:37,730 --> 00:29:41,390 uznává, že je tu Dva prvky každé z nich, 576 00:29:41,390 --> 00:29:43,700 a to je v podstatě sledování každého z nich. 577 00:29:43,700 --> 00:29:49,226 >> Tak jsem se v mém slovníku kvíz, jehož hodnota je reprezentován číslem 50, 578 00:29:49,226 --> 00:29:54,290 Mám pset, který má hodnotu 100, a kvíz ten, který má hodnotu 40. 579 00:29:54,290 --> 00:29:57,400 Pak se později v kódu I vlastně průměr všech těchto hodnot 580 00:29:57,400 --> 00:30:01,160 a vypsat všechny klíče že zvláštní slovník. 581 00:30:01,160 --> 00:30:03,217 Ale je to důležité takže si můžete všimnout 582 00:30:03,217 --> 00:30:06,050 co se děje, je to, že to, co jsme chci udělat, je, aby se tento řetězec 583 00:30:06,050 --> 00:30:11,450 a rozdělit ho na tohoto charakteru, které můžeme udělat znovu s tímto rozdělením 584 00:30:11,450 --> 00:30:15,690 Funkce používat tento druh zajímavé, syntax, že existuje zde. 585 00:30:15,690 --> 00:30:17,880 >> Právě teď předpokládat, že to je v pořádku. 586 00:30:17,880 --> 00:30:19,980 Podíváme se ještě na to jen na chvíli. 587 00:30:19,980 --> 00:30:23,230 Ale teď je tu zajímavý aspekt, že jsme vlastně 588 00:30:23,230 --> 00:30:27,250 chtějí, aby se pokusili změnit toto řetězec na celé číslo. 589 00:30:27,250 --> 00:30:29,720 Ale v jiných jazycích co se může stát je 590 00:30:29,720 --> 00:30:33,440 že bychom asi zkusit na to a buď vrátit 591 00:30:33,440 --> 00:30:36,185 nějaký Sentinel hodnota jako negativního 592 00:30:36,185 --> 00:30:39,420 nebo možná null, nebo něco takového. 593 00:30:39,420 --> 00:30:41,070 Nebo možná, že by jen způsobilo chybu. 594 00:30:41,070 --> 00:30:42,820 A museli bychom pak chytit tuto chybu 595 00:30:42,820 --> 00:30:44,820 a pokuste se udělat něco vychází z toho, 596 00:30:44,820 --> 00:30:48,280 že tato konverze na celé číslo selhal. 597 00:30:48,280 --> 00:30:50,460 To je místo, kde tato myšlenka o Volitelné přijde. 598 00:30:50,460 --> 00:30:56,120 Můžete si skutečně vytvořit datový typ, který je int otazník, např. 599 00:30:56,120 --> 00:30:59,140 600 00:30:59,140 --> 00:31:01,910 To znamená, že toto celé číslo je, ve skutečnosti, volitelný. 601 00:31:01,910 --> 00:31:05,980 A co se stane, je, že to může obsahovat číslo, nebo nemusí. 602 00:31:05,980 --> 00:31:10,650 To může být ve skutečnosti tato další idea, zcela volal Nill. 603 00:31:10,650 --> 00:31:14,900 Ve kterém to znamená, že je tu žádná hodnota vůbec v tomto. 604 00:31:14,900 --> 00:31:16,810 Není to ani nula, tam prostě žádná hodnota. 605 00:31:16,810 --> 00:31:18,790 Neexistuje absolutně žádná hodnota zastoupena. 606 00:31:18,790 --> 00:31:21,650 >> A to je to, co tento řádek 71 se dělá. 607 00:31:21,650 --> 00:31:25,990 Je, že se říká, že já chtějí, aby se pokusili nastavit hodnotu, 608 00:31:25,990 --> 00:31:31,790 proměnná s názvem stupeň, se rovná přeměna tohoto řetězce do int. 609 00:31:31,790 --> 00:31:34,010 Tak jsem si vzal tento řetězec, Tato první komponenty, 610 00:31:34,010 --> 00:31:37,680 nebo spíše druhý komponenty, protože tato 611 00:31:37,680 --> 00:31:40,770 je nulový indexována, z toho Řetězec, který jsem se rozdělit. 612 00:31:40,770 --> 00:31:42,930 A já chci převést že na celé číslo. 613 00:31:42,930 --> 00:31:46,730 Ale to nemusí vždy probíhat obvykle, protože si představit 614 00:31:46,730 --> 00:31:50,710 co by se mohlo stát, kdyby, spíše než typ číslo, píšu samozřejmě jako asdf. 615 00:31:50,710 --> 00:31:51,534 >> Bude to nezdaří. 616 00:31:51,534 --> 00:31:54,200 Není to ve skutečnosti bude schopen konvertovat, že na celé číslo 617 00:31:54,200 --> 00:31:55,510 jak bych očekával. 618 00:31:55,510 --> 00:31:58,660 Takže spíše než výkop nějaký druh chyby, 619 00:31:58,660 --> 00:32:01,210 máme tuto myšlenku dobrovolné. 620 00:32:01,210 --> 00:32:04,240 A to znamená, že za použití tento otazník mohu říci, 621 00:32:04,240 --> 00:32:09,100 OK, to je možné, že jsem si vzít to, převede jej do int, 622 00:32:09,100 --> 00:32:12,630 a dát ho do proměnné, který bude také int. 623 00:32:12,630 --> 00:32:15,420 Pokud ano, pak to znamená že tato byla úspěšná 624 00:32:15,420 --> 00:32:18,720 a tato první část blok může pokračovat. 625 00:32:18,720 --> 00:32:21,040 >> V opačném případě se nezdařilo. 626 00:32:21,040 --> 00:32:25,840 Neexistuje žádná hodnota v grade-- nebo spíše není žádná hodnota v existujících, 627 00:32:25,840 --> 00:32:30,220 a já skutečně pokusit zpracovat tuto chybovou podmínku. 628 00:32:30,220 --> 00:32:33,340 Budeš vidět otazník po celou dobu 629 00:32:33,340 --> 00:32:35,990 v Swift a v příkladu kódu Swift. 630 00:32:35,990 --> 00:32:40,980 A ve skutečnosti nill operátor, je tento druh z otazníku, Volitelně část, 631 00:32:40,980 --> 00:32:45,057 bude pravděpodobně jedním ze složitějších věcí 632 00:32:45,057 --> 00:32:47,640 se trochu zabalit hlavu kolem jak jste vlastně s ním pracovat. 633 00:32:47,640 --> 00:32:48,490 >> To by mohl dělat teď smysl. 634 00:32:48,490 --> 00:32:50,760 A ve skutečnosti, když jsem byl psaní ukázkový kód pro to, 635 00:32:50,760 --> 00:32:52,780 Rozhodně jsem pochopil co se děje, 636 00:32:52,780 --> 00:32:55,570 ale přesto mě vystihuje překvapení každý tak často 637 00:32:55,570 --> 00:32:58,370 když bych zjistil, že některá data byla ve skutečnosti 638 00:32:58,370 --> 00:33:04,024 nil verze, volitelná verze z údajů, které jsem očekával. 639 00:33:04,024 --> 00:33:06,190 Takže jen uvědomit, že pokud vás mají rozšířená verze 640 00:33:06,190 --> 00:33:09,360 musíte rozbalit, že Data z tohoto boxu. 641 00:33:09,360 --> 00:33:15,870 >> Takže je to něco jako já- představit, že by vás mají krabici a obsahuje něco. 642 00:33:15,870 --> 00:33:18,490 A to, co je třeba udělat, je si položit otázku, 643 00:33:18,490 --> 00:33:22,800 Je možné, že tento box vlastně obsahuje data, která jsem hledal? 644 00:33:22,800 --> 00:33:28,180 Pokud ano, pak vytáhnout, že data ven a vložit do této proměnné existující. 645 00:33:28,180 --> 00:33:32,080 Pokud ne, pak jsem se jen proto, aby ignorovat obsah této kolonky 646 00:33:32,080 --> 00:33:34,310 dohromady proto, že doslova neobsahuje nic. 647 00:33:34,310 --> 00:33:36,880 648 00:33:36,880 --> 00:33:40,400 >> Jakékoliv dotazy na to? 649 00:33:40,400 --> 00:33:44,430 OK, pojďme od toho druh příkazové řádky věci 650 00:33:44,430 --> 00:33:47,610 a začít hledat na některé technologie 651 00:33:47,610 --> 00:33:53,060 že Xcode poskytuje nám v podobě dětských hřišť. 652 00:33:53,060 --> 00:33:56,669 Takže je tu spousta schopnost zde Swift. 653 00:33:56,669 --> 00:33:59,210 A pokud jste otevření Xcode a to zeptá se vás, co chcete dělat, 654 00:33:59,210 --> 00:34:01,340 můžete otevřít hřiště a jen hrát kolem 655 00:34:01,340 --> 00:34:06,200 s množstvím různých struktur a aspekty jazyka 656 00:34:06,200 --> 00:34:11,800 ještě před zahájením dotykem iOS SDK nebo Mac SDK. 657 00:34:11,800 --> 00:34:15,670 >> Takže v tomto případě, řekněme, že jsem have-- Mám poměrně spiklenecký příklad 658 00:34:15,670 --> 00:34:18,460 tady, ale mějte se mnou, jak třídíme o práci prostřednictvím tohoto příkladu. 659 00:34:18,460 --> 00:34:22,639 Řekněme, že musíme udělat hodně exponentů s pevnou hodnotou, 660 00:34:22,639 --> 00:34:26,397 stejně jako víme, že budeme muset udělat hodně čtverečních pravomocí, například. 661 00:34:26,397 --> 00:34:28,980 Takže budeme mít nějakou hodnotu x, budeme ho náměstí, 662 00:34:28,980 --> 00:34:30,540 budeme trvat nějakou hodnotu y a budeme ji náměstí. 663 00:34:30,540 --> 00:34:31,780 Tak dále a tak dále. 664 00:34:31,780 --> 00:34:35,549 >> Teď bychom vlastně jen vytvořit Výkon 2 funkce pro to, že jo? 665 00:34:35,549 --> 00:34:37,090 A tak jsme si vytvořit sílu 2 funkce. 666 00:34:37,090 --> 00:34:38,600 Budeme akceptovat double. 667 00:34:38,600 --> 00:34:41,489 Budeme output-- nebo budeme vrátit dvojí typ. 668 00:34:41,489 --> 00:34:46,159 Budeme mít tento výsledek a pak na dvakrát 669 00:34:46,159 --> 00:34:52,040 to, co jsme vlastně brát výsledky, které se inicializuje na hodnotu jedna, 670 00:34:52,040 --> 00:34:53,090 a vynásobte ji x. 671 00:34:53,090 --> 00:34:56,540 Takže v podstatě máme tady x krát x. 672 00:34:56,540 --> 00:35:01,860 >> A tak jsem se pak mohou, jak bychom očekávat, vzít to, spustit síla 2, 673 00:35:01,860 --> 00:35:03,680 poskytnout k němu některé údaje, se mi líbí 2,0. 674 00:35:03,680 --> 00:35:05,756 A my jsme si k vidění 4,0 výsledky. 675 00:35:05,756 --> 00:35:09,200 Spusťte moc 2 na 3.2 a my dostat se na náš výsledek, 10.24. 676 00:35:09,200 --> 00:35:10,840 Zatím je to dobré, ne? 677 00:35:10,840 --> 00:35:12,070 Teď jsme na mysli, dobře, OK. 678 00:35:12,070 --> 00:35:15,530 Teď jsem skutečně potřebují, aby udělat hodně sil 3. 679 00:35:15,530 --> 00:35:19,180 Takže budu kopírovat vložit všechny tohoto kódu, změnit název funkce z 680 00:35:19,180 --> 00:35:24,440 síla od 2 do výkonu 3, a všechno budou stejné, s výjimkou pro tuto hodnotu 681 00:35:24,440 --> 00:35:26,740 tady, tento rozsah, 1 ... 2. 682 00:35:26,740 --> 00:35:29,590 >> Takže spíše než opakování Tato smyčka dvakrát, 683 00:35:29,590 --> 00:35:31,880 Chci zopakovat této smyčky třikrát. 684 00:35:31,880 --> 00:35:36,330 Tak jsem jen změnit tuto hodnotu z 1 až 3-- nebo spíše 2-3. 685 00:35:36,330 --> 00:35:39,230 Takže znovu, stejný kód, To je jediná změna. 686 00:35:39,230 --> 00:35:40,080 Teď to funguje také. 687 00:35:40,080 --> 00:35:43,860 Síla 3 pokud v nějakém hodnotu 2. 688 00:35:43,860 --> 00:35:44,420 Dostaneme 8. 689 00:35:44,420 --> 00:35:45,370 SO 2 kostičky. 690 00:35:45,370 --> 00:35:48,060 A 3.2 cubed je 32,768. 691 00:35:48,060 --> 00:35:50,597 A tak Zatím je to dobré, ne? 692 00:35:50,597 --> 00:35:52,930 Ale doufejme, že to je trochu bit červené vlajky pro vás 693 00:35:52,930 --> 00:35:55,530 v tom, že nyní máme některé duplikace kódu 694 00:35:55,530 --> 00:35:58,800 s výjimkou pro některé velmi malé přepnout z jednoho do druhého. 695 00:35:58,800 --> 00:36:02,170 Takže je tam nějaký způsob, jak bychom mohli být schopni zjednodušit 696 00:36:02,170 --> 00:36:06,080 tento problém, kde můžeme skutečně, v běhu, zjistit některé, 697 00:36:06,080 --> 00:36:11,320 nám poskytli nějakou funkci, která má právě moc, že ​​chceme. 698 00:36:11,320 --> 00:36:13,960 >> A je tu tento nápad uzávěry, což je opravdu, ale opravdu 699 00:36:13,960 --> 00:36:18,180 důležité v souvislosti s Swift, a v mnoha dalších jazycích. 700 00:36:18,180 --> 00:36:21,580 Ale asi bude vidět to používá spíše v Swift 701 00:36:21,580 --> 00:36:23,650 proto, že je vložený v jazyce 702 00:36:23,650 --> 00:36:28,280 než budete v jiných i moderní jazyky. 703 00:36:28,280 --> 00:36:31,140 A tak vznikla myšlenka uzávěru je to, že je my 704 00:36:31,140 --> 00:36:35,430 může mít funkci, která si klade za cíl je obecný funkce, obecný moc 705 00:36:35,430 --> 00:36:36,860 funkce. 706 00:36:36,860 --> 00:36:41,010 >> A tato funkce bude přijímat tento exponent, že jsme vlastně 707 00:36:41,010 --> 00:36:42,990 chcete vytvořit. 708 00:36:42,990 --> 00:36:46,550 Tak například, první instance, chtěli jsme moc 2. 709 00:36:46,550 --> 00:36:50,050 Tak jsme se poskytnout moc a poté v závorkách 2. 710 00:36:50,050 --> 00:36:52,490 A teď si všimnout toho, co to vlastně vrací. 711 00:36:52,490 --> 00:36:57,680 To trvá vstup primeru volal y, že je celé číslo, 712 00:36:57,680 --> 00:37:03,090 a vrací to šílené vypadající věc parentheses-- závorkách 713 00:37:03,090 --> 00:37:06,230 double a potom šipka double. 714 00:37:06,230 --> 00:37:10,270 >> Co to znamená, je, že jsem bude vracet funkci. 715 00:37:10,270 --> 00:37:13,510 Nejsem vracet jiný typ dat, já jsem 716 00:37:13,510 --> 00:37:16,350 ve skutečnosti vrací funkci že má tento parametr, který 717 00:37:16,350 --> 00:37:22,680 přijímá double jako vstup a výstupy fungují jako návratová hodnota. 718 00:37:22,680 --> 00:37:29,750 A jako výsledek, protože teď jsem volal Síla a předat nějaké hodnoty pro y, 719 00:37:29,750 --> 00:37:32,280 a já jsem vytvořit ten druhý function-- upozornění, že je tu 720 00:37:32,280 --> 00:37:35,980 další funkce, která je vytvářena uvnitř tohle-- co dělám 721 00:37:35,980 --> 00:37:37,830 je, že jsem se změnit že hodnoty, které člověk 722 00:37:37,830 --> 00:37:41,010 Hodnota, že jsem se změnil 2-3, teď jsem, že to y. 723 00:37:41,010 --> 00:37:42,500 >> A tento problém přetrvává. 724 00:37:42,500 --> 00:37:48,530 Takže pokaždé, když jsem volat moc z, v podstatě, co se stane 725 00:37:48,530 --> 00:37:51,030 je, že jsem si vrátil funkci. 726 00:37:51,030 --> 00:37:54,310 Všimněte si, že tady jsem definovaný nová proměnná s názvem náměstí. 727 00:37:54,310 --> 00:37:59,340 Nastavil jsem, že se rovná síle, pokud tuto hodnotu 2 k moci. 728 00:37:59,340 --> 00:38:02,030 A co to je zpět funkce. 729 00:38:02,030 --> 00:38:05,970 Takže náměstí, variabilní náměstí, je nyní funkce typu 730 00:38:05,970 --> 00:38:11,390 že má tohle-- pardon, přejděte nahoru málo bit-- která má tuto podpis, 731 00:38:11,390 --> 00:38:15,560 přijímat double a výstup double. 732 00:38:15,560 --> 00:38:17,330 >> Takže teď, co jsem udělal Je jsem v podstatě 733 00:38:17,330 --> 00:38:22,890 vytvořil funkci s názvem náměstí, které přijímá libovolnou hodnotu a náměstí to. 734 00:38:22,890 --> 00:38:24,960 Můžeme vidět, co se děje tady dole. 735 00:38:24,960 --> 00:38:29,960 Náměstí 3. například znamená, že jdu vzít hodnotu 3 a na druhou to. 736 00:38:29,960 --> 00:38:32,010 Tak, jak přesně to funguje? 737 00:38:32,010 --> 00:38:37,800 Když jsem se projít energii z 2--, když jsem projít 2 do této moci funkce, 738 00:38:37,800 --> 00:38:44,430 tato proměnná y je obydlený s touto hodnotou 2. 739 00:38:44,430 --> 00:38:46,340 A to je trochu koná v paměti. 740 00:38:46,340 --> 00:38:49,430 Že to něco jako se konala v stát někde v počítači, 741 00:38:49,430 --> 00:38:51,980 my to opravdu jedno, jak nebo tam, kde v tomto bodě. 742 00:38:51,980 --> 00:38:54,692 >> Ale já jsem se vrátit tuto funkci volal exponenciaci. 743 00:38:54,692 --> 00:38:57,400 A opět, to nezáleží to, co tato funkce se nazývá, 744 00:38:57,400 --> 00:39:01,730 Opravdu to tak dá nazvat cokoliv, že přijímá double a vrátí double, 745 00:39:01,730 --> 00:39:05,640 ale používá tuto hodnotu y uvnitř ní. 746 00:39:05,640 --> 00:39:09,290 Takže i když je to tato funkce, tato exponentiater funkce, která je 747 00:39:09,290 --> 00:39:13,600 byly vráceny zpět do mé proměnné, které jsem volal náměstí, 748 00:39:13,600 --> 00:39:17,980 to v něm obsažený tento pojem o tom, co bylo y. 749 00:39:17,980 --> 00:39:19,070 A to si pamatuje, že. 750 00:39:19,070 --> 00:39:24,810 >> Takže pokaždé, když říkám, že funkce, která je nyní nazýván náměstí, používá to. 751 00:39:24,810 --> 00:39:27,990 Ale to také znamená, že mohu vytvořte další proměnnou pomocí 752 00:39:27,990 --> 00:39:29,120 jiná síla. 753 00:39:29,120 --> 00:39:33,240 Tak jsem si vytvořit krychle proměnnou, pro příklad, poskytnout jí moc 3. 754 00:39:33,240 --> 00:39:37,230 Nyní kostka bude skutečně trvat i několik hodnota a krychle, která i vrátit. 755 00:39:37,230 --> 00:39:39,570 Takže můžeme vidět, že jsem si Hodnota 8 z toho. 756 00:39:39,570 --> 00:39:42,720 >> Ale tato hodnota y nemá změnit, protože jsou 757 00:39:42,720 --> 00:39:44,980 se konala v jakési nezávislých proměnných. 758 00:39:44,980 --> 00:39:47,480 Jsou nějak se konala v nezávislé prostory v paměti. 759 00:39:47,480 --> 00:39:51,290 Takže kostka bude mít vždy x k síle 3. 760 00:39:51,290 --> 00:39:55,380 A náměstí bude mít vždy x k síle 2, který 761 00:39:55,380 --> 00:39:58,470 Znamená to, že náměstí bude vždy čtverečních čísla, jak jsem očekávat. 762 00:39:58,470 --> 00:40:01,794 A kostka vždy kostičky čísla, jak jsem očekávat. 763 00:40:01,794 --> 00:40:04,960 To také znamená, že někdy můžete si nějaký funky syntaxe hledá 764 00:40:04,960 --> 00:40:09,030 kde budete mít sílu na velmi dolní části obrazovky zde, síla 5. 765 00:40:09,030 --> 00:40:11,410 A předáte do výsledku. 766 00:40:11,410 --> 00:40:14,670 Můžete volat, že funkce, která je byly vráceny s číslem 4. 767 00:40:14,670 --> 00:40:17,440 A tak to, co v podstatě to 4 je na páté silové, 768 00:40:17,440 --> 00:40:20,830 můžeme vidět výsledky zde. 769 00:40:20,830 --> 00:40:23,690 Se mnou tak daleko? 770 00:40:23,690 --> 00:40:26,620 >> Takže tento nápad se nazývá uzávěr, protože to, co jsme v podstatě dělat 771 00:40:26,620 --> 00:40:30,610 je, že jsme už zapouzdření některá data into-- sort 772 00:40:30,610 --> 00:40:33,050 obvodových tato data do funkce, a my jsme 773 00:40:33,050 --> 00:40:36,240 budou moci znovu použít tuto funkci. 774 00:40:36,240 --> 00:40:41,480 Nyní je tato syntaxe však může ve skutečnosti být zjednodušena, velké množství. 775 00:40:41,480 --> 00:40:45,005 A je tu spousta možností V Swift tohoto zjednodušení. 776 00:40:45,005 --> 00:40:47,780 A to je to, co druh ty následné vlastně podívat. 777 00:40:47,780 --> 00:40:51,400 Takže v 7b jsme například tento přesně stejný kód. 778 00:40:51,400 --> 00:40:54,360 >> Ale teď spíše než vlastně definovat funkci 779 00:40:54,360 --> 00:40:57,910 Uvnitř této moci fungují a dát mu jméno, 780 00:40:57,910 --> 00:41:00,150 a pak se vrátit název této funkce, která 781 00:41:00,150 --> 00:41:02,357 pak se používá jako součást toto uzavření, místo toho jsme 782 00:41:02,357 --> 00:41:03,440 jen tak to zjednodušit. 783 00:41:03,440 --> 00:41:06,580 Nepotřebujeme tato funkce být jmenován. 784 00:41:06,580 --> 00:41:09,760 Tak tohle je koncept anonymní funkce, kde můžeme tedy 785 00:41:09,760 --> 00:41:15,180 přijmout jako vstup, v závorce tady, proměnná x, která je typu double. 786 00:41:15,180 --> 00:41:17,250 >> Chystáme se vrátit typu double. 787 00:41:17,250 --> 00:41:19,830 A pak klíčové slovo, n, je počátek této funkce. 788 00:41:19,830 --> 00:41:22,180 Takže si všimnout, že toto všechno je uvnitř složených závorek 789 00:41:22,180 --> 00:41:25,310 a my jsme definování fungují zde anonymní. 790 00:41:25,310 --> 00:41:29,910 Jen jednodušší způsob, jak definovat přesně to samé. 791 00:41:29,910 --> 00:41:30,810 OK? 792 00:41:30,810 --> 00:41:36,740 Ale vydrž, vlastně Swift nám umožňuje jít dál, a zjednodušit ještě víc, 793 00:41:36,740 --> 00:41:40,180 protože ve skutečnosti nemáme jedno, že tento parametr je 794 00:41:40,180 --> 00:41:41,700 pojmenovaný žádnou konkrétní věc. 795 00:41:41,700 --> 00:41:48,090 To může skutečně nazvat cokoliv a stále ještě můžeme použít tento první parametr. 796 00:41:48,090 --> 00:41:53,800 >> Takže ve skutečnosti je to zvláštní typ dat v anonymních funkcí, 797 00:41:53,800 --> 00:41:57,710 Tam je to zvláštní název proměnné v anonymních funkcí 798 00:41:57,710 --> 00:42:00,280 které začínají znak dolaru a představují 799 00:42:00,280 --> 00:42:03,785 čísla parametrů, nula indexována, pro tuto funkci. 800 00:42:03,785 --> 00:42:05,410 Takže je tu pár věcí děje. 801 00:42:05,410 --> 00:42:08,550 Tady budu vracet, a pak se složená závorka představuje funkci, 802 00:42:08,550 --> 00:42:09,050 že jo? 803 00:42:09,050 --> 00:42:13,920 >> Všimněte si, že nemám definovali parametrů typy nebo návratový typ. 804 00:42:13,920 --> 00:42:16,460 To může ve skutečnosti být odvozeny vzhledem k podpisu 805 00:42:16,460 --> 00:42:18,360 této původní funkci. 806 00:42:18,360 --> 00:42:20,500 Takže můžeme eliminovat že jako možnost. 807 00:42:20,500 --> 00:42:25,120 Ale také mohu použít znak dolaru nulový reprezentovat tuto první parametr, který je 808 00:42:25,120 --> 00:42:28,200 prošel do této anonymní funkce. 809 00:42:28,200 --> 00:42:31,630 Takže jej ještě více zjednoduší. 810 00:42:31,630 --> 00:42:32,750 OK? 811 00:42:32,750 --> 00:42:33,820 Zatím je to dobré? 812 00:42:33,820 --> 00:42:36,980 >> Teď je to to type-- se vám zapamatovat si tuto znak dolaru nulu 813 00:42:36,980 --> 00:42:40,130 že jsme viděli v tomto složenou závorkou že jsme viděli jen malou chvíli 814 00:42:40,130 --> 00:42:43,870 Před v tomto Swift šesti příklad? 815 00:42:43,870 --> 00:42:46,560 Bylo to tady. 816 00:42:46,560 --> 00:42:48,430 Všimněte si, že je to přesně to, co se díváme, 817 00:42:48,430 --> 00:42:51,580 je to, že jsme prošli do této funkce Rozdělit 818 00:42:51,580 --> 00:42:55,140 anonymní funkce, která kontroluje první parametr 819 00:42:55,140 --> 00:42:57,830 aby zjistil, jestli se rovná symbol tlustého střeva. 820 00:42:57,830 --> 00:42:59,830 A to je přesně to, co je děje, je to, že všechny 821 00:42:59,830 --> 00:43:02,320 jsme doing-- návrat Klíčové slovo je naznačen 822 00:43:02,320 --> 00:43:05,800 V tomto case-- vracíme tato hodnota, kam máme porovnání 823 00:43:05,800 --> 00:43:10,020 První parametr proti tato postava tlustého střeva. 824 00:43:10,020 --> 00:43:11,730 A tak, aby trochu demystifikuje toto. 825 00:43:11,730 --> 00:43:17,210 A vy budete vidět tento konstrukt pozemek v Swift syntaxi, tak se mějte 826 00:43:17,210 --> 00:43:19,400 na mysli, když jste přičemž se podívat na tohle. 827 00:43:19,400 --> 00:43:21,970 Nyní se můžeme dostat pryč příčky trochu 828 00:43:21,970 --> 00:43:25,460 a jít opravdu fantazie, která ukazuje ještě některé další SWIFT moci. 829 00:43:25,460 --> 00:43:27,950 Dalo by se dokonce vidět některé z nich ve vzorku kódy. 830 00:43:27,950 --> 00:43:29,790 Takže to je důvod, proč jdu ukázat vám to. 831 00:43:29,790 --> 00:43:37,260 >> V podstatě to, co můžeme udělat, je to, že jako první ze všech, to bylo docela se zbytečně pro mě 832 00:43:37,260 --> 00:43:41,710 implementovat celou tu moc kód, protože při importu Darwin 833 00:43:41,710 --> 00:43:46,490 knihovna, ve skutečnosti obsahuje funkci volal pow, že to udělá za vás. 834 00:43:46,490 --> 00:43:50,570 Takže můžeme zjednodušit ho ještě víc a máme Power Up funkce už jen 835 00:43:50,570 --> 00:43:54,890 být nádherný jednu vložku, kde jsme právě vrácení tohoto anonymní funkce, která 836 00:43:54,890 --> 00:44:00,780 přijímá dolaru 0, protože jeho báze a Y jako jeho exponent. 837 00:44:00,780 --> 00:44:02,582 >> Ale můžeme opravdu, opravdu efektní, když jsme 838 00:44:02,582 --> 00:44:04,790 Uvědomuji si, že Swift má hodně síly pod kapotou. 839 00:44:04,790 --> 00:44:07,010 Mnoho z operátorů, který jsme se zabývali, 840 00:44:07,010 --> 00:44:11,270 a znaky a symboly rozdělení a Všechny tyto věci, které byste normálně 841 00:44:11,270 --> 00:44:15,620 pracovat s s datovými typy v programovacím jazyce, 842 00:44:15,620 --> 00:44:17,600 jsou vlastně rozšiřitelné v Swift. 843 00:44:17,600 --> 00:44:21,460 Takže to, co to znamená, že jsme v Můžete definovat vlastní operátory. 844 00:44:21,460 --> 00:44:26,020 >> Takže teď jsem unavený psaní v tom všem pow a pak závorky a poté 845 00:44:26,020 --> 00:44:26,520 báze. 846 00:44:26,520 --> 00:44:27,520 Nechci to udělat. 847 00:44:27,520 --> 00:44:30,190 Vlastně jsem chtěl mít subjekt, který mi umožňuje dělat to. 848 00:44:30,190 --> 00:44:34,510 Takže můžu říct, rychlý, že chci vytvořit operátora, hvězda 849 00:44:34,510 --> 00:44:39,472 star-- mimochodem nemohu používat karát protože karát je operátor, který 850 00:44:39,472 --> 00:44:40,680 dělá něco úplně jiného. 851 00:44:40,680 --> 00:44:42,720 Takže nechci řadit z srazí s tím. 852 00:44:42,720 --> 00:44:45,750 A tak to, co vidíte v různých jazyků, včetně Pythonu, 853 00:44:45,750 --> 00:44:48,810 je jako provozovatel star star reprezentovat exponenty. 854 00:44:48,810 --> 00:44:50,730 >> Tak to je jediný důvod, proč Proto jsem udělal. 855 00:44:50,730 --> 00:44:53,067 A to bude operátor typu infix. 856 00:44:53,067 --> 00:44:54,900 A musím poskytovat k němu nějaké informace 857 00:44:54,900 --> 00:44:58,386 o přednosti tohoto Operátor tak je to vlevo asociativní. 858 00:44:58,386 --> 00:45:00,260 Je to jako poměrně ve srovnání s vysokou přednost 859 00:45:00,260 --> 00:45:02,432 k sumačního nebo násobení. 860 00:45:02,432 --> 00:45:04,140 Je to vyšší přednost než všechny ty. 861 00:45:04,140 --> 00:45:04,931 Tak dále a tak dále. 862 00:45:04,931 --> 00:45:07,410 A pak jsem se definovat funkce, které skutečně 863 00:45:07,410 --> 00:45:10,070 diktuje, co to dělá operátor. 864 00:45:10,070 --> 00:45:14,150 Takže za předpokladu, že mám doleva straně a pravá strana, 865 00:45:14,150 --> 00:45:17,330 což by bylo třeba lepší název proměnné za to. 866 00:45:17,330 --> 00:45:20,690 Levá strana a pravá strana. 867 00:45:20,690 --> 00:45:26,740 Pak jsem si vzít tuto pravomoc levou stranu na pravé straně 868 00:45:26,740 --> 00:45:28,980 a vrátí tuto hodnotu. 869 00:45:28,980 --> 00:45:30,370 Takže teď je to super sladká. 870 00:45:30,370 --> 00:45:33,790 Vše, co musíte udělat, je 2 star star 3 a který je 2 až třetí mocninou, 871 00:45:33,790 --> 00:45:35,290 a dostaneme hodnotu 8. 872 00:45:35,290 --> 00:45:40,280 2 star 10 je 2 10. moc, dostaneme 1024. 873 00:45:40,280 --> 00:45:43,630 >> Takže teď naše síla funkce, což je opět jiná, 874 00:45:43,630 --> 00:45:47,030 proto, že celá myšlenka této bylo, že máme jednu funkci, která 875 00:45:47,030 --> 00:45:50,700 má vždy nějakou hodnotu a násobí to-- nebo spíše 876 00:45:50,700 --> 00:45:53,240 má exponent ke stejným výkonem. 877 00:45:53,240 --> 00:45:54,300 Takže teď je to ještě jednodušší. 878 00:45:54,300 --> 00:45:57,070 Takže teď je to jen dolar Přihlašte 0 Hvězda y. 879 00:45:57,070 --> 00:46:01,190 Nemáme ani nadále používat, pow. 880 00:46:01,190 --> 00:46:03,020 >> OK, kdo prohrál? 881 00:46:03,020 --> 00:46:03,700 Děláme v pořádku? 882 00:46:03,700 --> 00:46:05,090 Jakékoliv dotazy týkající se této věci? 883 00:46:05,090 --> 00:46:05,815 Jo? 884 00:46:05,815 --> 00:46:09,500 >> Diváků: Když you-- [neslyšitelné] funk moc y double. 885 00:46:09,500 --> 00:46:11,441 Takže, když se vracíte funkci. 886 00:46:11,441 --> 00:46:13,190 DANIEL Armendariz: Funk moc y double. 887 00:46:13,190 --> 00:46:14,270 Ach jo, já nevím co čísla y jsou. 888 00:46:14,270 --> 00:46:15,708 Omlouvám se za to. 889 00:46:15,708 --> 00:46:19,420 >> Diváků: Proč se vrací Funkce [neslyšitelné] skříň. 890 00:46:19,420 --> 00:46:24,214 Není dolar nula star hvězda y [neslyšitelné] 891 00:46:24,214 --> 00:46:29,710 zjistíte, že operátor s tím vrácení double [neslyšitelné] zdvojnásobí? 892 00:46:29,710 --> 00:46:32,742 >> DANIEL Armendariz: Tak pojďme mi odpovědět na vaši otázku 893 00:46:32,742 --> 00:46:35,950 jak jsem to pochopil, a můžete mi říct, když jsem se pochopit vaši otázku. 894 00:46:35,950 --> 00:46:42,850 Takže tento konstrukt, složená závorka znak dolaru nula star star y, 895 00:46:42,850 --> 00:46:44,280 je funkce. 896 00:46:44,280 --> 00:46:50,080 A to přijímá parametr, který je zastoupená tímto znakem dolaru nula. 897 00:46:50,080 --> 00:46:55,830 Návratnost klíčové slovo je naznačen v tomto velmi krátký, anonymní funkce syntax. 898 00:46:55,830 --> 00:46:57,870 >> Což znamená, že v podstatě co to říká 899 00:46:57,870 --> 00:47:01,270 je to, že jsem vymezení function-- a pak budu 900 00:47:01,270 --> 00:47:05,320 Jen říkám something-- kde mám nějakou hodnotu y. 901 00:47:05,320 --> 00:47:08,300 Mám y, což je dvakrát. 902 00:47:08,300 --> 00:47:10,750 A Vracím double. 903 00:47:10,750 --> 00:47:19,010 A já mám v tomto přiznání y- líto, Neměl jsem nazval y- x. 904 00:47:19,010 --> 00:47:20,240 Ach, ach jo, ach jo. 905 00:47:20,240 --> 00:47:27,440 X-- nope-- star star y. 906 00:47:27,440 --> 00:47:29,720 >> Tak to je jen zjednodušená verze tohoto. 907 00:47:29,720 --> 00:47:33,990 A tak důvod, proč mám dolar znamení nula je, že použití této kabiny 908 00:47:33,990 --> 00:47:41,050 Znamená to, že už nemám typu prašanu, nebo už ne dělat 909 00:47:41,050 --> 00:47:45,570 Musím něco udělat jako 3 star star 2. 910 00:47:45,570 --> 00:47:48,530 Mohu jen mít jeden Funkce s názvem náměstí 911 00:47:48,530 --> 00:47:50,820 že se bude vždy nějaká hodnota jako vstup 912 00:47:50,820 --> 00:47:52,980 a vlastně vrátit náměstí to. 913 00:47:52,980 --> 00:47:56,460 >> Takže celá účelem uzavření je jen trochu zapouzdřit skutečnost 914 00:47:56,460 --> 00:47:59,920 že jsem se vždycky chtěl y používat kdykoli Říkám, že funkce jako síla 915 00:47:59,920 --> 00:48:01,710 Při užívání tohoto exponent. 916 00:48:01,710 --> 00:48:04,650 Takže vracet se pak, funkce, která přijímá 917 00:48:04,650 --> 00:48:08,460 dvojitý, což je základní, a vrátí výsledek tohoto exponentu 918 00:48:08,460 --> 00:48:10,740 je zde tlačítko. 919 00:48:10,740 --> 00:48:12,790 A to je hlavní rozdíl. 920 00:48:12,790 --> 00:48:14,430 Tam byl jen trochu vzkvétat. 921 00:48:14,430 --> 00:48:17,970 >> To není nic jiného ve srovnání s předchozími příklady, 922 00:48:17,970 --> 00:48:20,530 ale to bylo jen trochu vzkvétat můžeme skutečně 923 00:48:20,530 --> 00:48:24,500 vytvořit operátora v Swift a vlastně dělat věci s tím, 924 00:48:24,500 --> 00:48:26,396 což je druh super věc. 925 00:48:26,396 --> 00:48:27,520 Už jsem odpověď na vaši otázku? 926 00:48:27,520 --> 00:48:28,390 Sladké. 927 00:48:28,390 --> 00:48:31,350 Cokoliv jiného, ​​než jsme dál? 928 00:48:31,350 --> 00:48:33,570 OK. 929 00:48:33,570 --> 00:48:36,430 >> Nyní tento druh prosí Otázkou je, that-- dobře v pořádku, 930 00:48:36,430 --> 00:48:40,870 Nyní máme možnost pro funkce, které mají být vráceny. 931 00:48:40,870 --> 00:48:48,950 Můžeme také projít funkce, jako jsou údaje o nebo jako parametry dalších funkcí? 932 00:48:48,950 --> 00:48:50,710 A ve skutečnosti můžeme. 933 00:48:50,710 --> 00:48:53,480 Tak řekněme, že máme všechny se stejným kódem. 934 00:48:53,480 --> 00:48:56,120 Máme druhou proměnnou že se náměstí tento kód. 935 00:48:56,120 --> 00:48:59,320 A máme proměnnou krychle že bude krychle některá data. 936 00:48:59,320 --> 00:49:02,440 A my vlastně chceme použít pro široký rozsah čísel. 937 00:49:02,440 --> 00:49:06,870 >> Takže to, co bychom mohli být v pokušení dělat, samozřejmě, což je jistě platný, 938 00:49:06,870 --> 00:49:15,430 je iteraci tohoto seznamu čísel a aplikovat mé funkce náměstí a krychle 939 00:49:15,430 --> 00:49:22,270 a získat dva nové seznamy jsou výsledky že jsou to originální seznam čtvercový 940 00:49:22,270 --> 00:49:24,970 a kostičky, resp. 941 00:49:24,970 --> 00:49:26,880 Dokonale přijatelné. 942 00:49:26,880 --> 00:49:29,130 Ale co je to věc, která zde vidíme, je, že máme, 943 00:49:29,130 --> 00:49:31,310 znovu, duplikace našeho kódu. 944 00:49:31,310 --> 00:49:34,310 A je tu možná příležitost Pro nás zjednodušit to trochu. 945 00:49:34,310 --> 00:49:41,260 Co kdyby tam byl způsob, jak pro nás ve skutečnosti vždy iteraci přes nějaký seznam 946 00:49:41,260 --> 00:49:45,450 a jen předat tento kouzelný funkci proměnnou, která 947 00:49:45,450 --> 00:49:47,350 představuje funkci že chceme použít 948 00:49:47,350 --> 00:49:50,336 na každou jednotlivou položku v tomto seznamu. 949 00:49:50,336 --> 00:49:53,210 Tím se pojetí toho, co se nazývají vyššího řádu funkce. 950 00:49:53,210 --> 00:49:57,150 A to je v podstatě to, co to je, je to, že můžeme vytvořit funkci. 951 00:49:57,150 --> 00:50:00,210 >> A v tomto případě se to jmenuje mapper, jen aby to jméno, jen 952 00:50:00,210 --> 00:50:02,510 mapování nad každým jediná položka v seznamu. 953 00:50:02,510 --> 00:50:06,191 Kde vezmu seznam a beru funkci. 954 00:50:06,191 --> 00:50:08,440 A to funkce, samozřejmě, má určitý podpis. 955 00:50:08,440 --> 00:50:11,980 Přijímá jako dvojnásobek parametru a to bude výstup je double. 956 00:50:11,980 --> 00:50:14,310 A celý výsledek tato funkce bude 957 00:50:14,310 --> 00:50:18,921 bude nový seznam, který je typu double. 958 00:50:18,921 --> 00:50:19,420 OK? 959 00:50:19,420 --> 00:50:22,650 >> A co budu dělat je-li použít tuto funkci f 960 00:50:22,650 --> 00:50:24,960 ke každému prvku v mém seznamu. 961 00:50:24,960 --> 00:50:30,280 A reply-- a raději vrátit tento nový Seznam v důsledku, který je opravdu cool. 962 00:50:30,280 --> 00:50:31,820 Teď jsem si projít funkce kolem. 963 00:50:31,820 --> 00:50:35,290 A tato myšlenka vyššího řádu Funkce je opravdu důležité. 964 00:50:35,290 --> 00:50:39,260 A to je opravdu jen mapper Implementace chudáka 965 00:50:39,260 --> 00:50:43,130 z funkce, která je postavena do Swift s názvem mapy. 966 00:50:43,130 --> 00:50:45,690 A to dělá přesně to, možná i trochu lepší. 967 00:50:45,690 --> 00:50:48,260 >> To je tak nějak obecný, zjednodušená verze, 968 00:50:48,260 --> 00:50:51,270 nám umožňuje vidět pojetí, které zde platí. 969 00:50:51,270 --> 00:50:54,630 Nyní se podívejte na to, jak jsem může skutečně použít můj náměstí 970 00:50:54,630 --> 00:50:57,850 a moje kostka funkce Do tohoto seznamu čísel. 971 00:50:57,850 --> 00:50:58,780 Jsem běžet můj mapper. 972 00:50:58,780 --> 00:51:00,280 I poskytnout k němu můj seznam čísel. 973 00:51:00,280 --> 00:51:02,155 I poskytnout jí na funkce, která se děje 974 00:51:02,155 --> 00:51:04,170 použije na každý z těchto indexů. 975 00:51:04,170 --> 00:51:07,120 A to bude Výstup jako výsledek. 976 00:51:07,120 --> 00:51:11,810 A já se dostat vidět, že jsem se na druhou a kostičky Moje čísla jako výsledek. 977 00:51:11,810 --> 00:51:14,660 >> A samozřejmě bude trvat mapper nějaký druh anonymní funkce. 978 00:51:14,660 --> 00:51:17,640 Dokonce můžeme vidět, že jsem vytvořil Nová anonymní funkce, která 979 00:51:17,640 --> 00:51:20,220 jen trvá nějaký parametr a rozděluje ji 2. 980 00:51:20,220 --> 00:51:24,340 A můžeme vidět, že jsem ve skutečnosti, dělená můj seznam o 2 místo. 981 00:51:24,340 --> 00:51:25,250 Pohodě? 982 00:51:25,250 --> 00:51:27,340 Zatím je to dobré? 983 00:51:27,340 --> 00:51:29,650 Dobře, teď pojďme vrátit se k této myšlence. 984 00:51:29,650 --> 00:51:36,160 Pojďme realizaci tohoto zpátky v kontextu zadávání známek. 985 00:51:36,160 --> 00:51:41,860 >> A když to udělám, můžeme vidět, že můžu použít širokou škálu těchto options-- 986 00:51:41,860 --> 00:51:44,330 nebo celá řada z nich vyššího řádu funkce 987 00:51:44,330 --> 00:51:51,450 skutečně zjednodušit své schopnosti dělat Různé věci na seznamu čísel. 988 00:51:51,450 --> 00:51:53,660 Tak například, když jsem se seznam čísel, 989 00:51:53,660 --> 00:51:57,060 jeden z vyššího řádu funkce že existuje, se nazývá snížit. 990 00:51:57,060 --> 00:52:00,080 Co snížit dělá spíše než na mapě, se snižuje bude 991 00:52:00,080 --> 00:52:03,710 trvat dva prvky v seznamu, bude trvat nějakou funkci, která 992 00:52:03,710 --> 00:52:07,420 porovnává dva prvky seznam, a to pak bude 993 00:52:07,420 --> 00:52:09,610 druh output-- Výstup z této funkce 994 00:52:09,610 --> 00:52:13,790 bude další prvek, který pak v porovnání s ostatními. 995 00:52:13,790 --> 00:52:18,190 >> Takže byste mohli použít k vlastně součet čísel ve vašem seznamu. 996 00:52:18,190 --> 00:52:20,640 Například, pokud jste měli seznam 1, 2, 3, 4, 5, 997 00:52:20,640 --> 00:52:22,940 budete mít prvních prvků, 1 a 2. 998 00:52:22,940 --> 00:52:27,270 Můžete se na něj vztahují sčítání funkce, která vezme tyto dva prvky 999 00:52:27,270 --> 00:52:30,980 a vyplivne jeden z těchto prvků, což by hodnota 3. 1000 00:52:30,980 --> 00:52:35,684 Pak jsme se tuto hodnotu 3 s další prvek seznamu, shrnul ty dva, 1001 00:52:35,684 --> 00:52:37,100 a pak dál se stanoví seznam. 1002 00:52:37,100 --> 00:52:40,410 >> Jsme snížení Seznam na jednu hodnotu. 1003 00:52:40,410 --> 00:52:42,700 A to jen tak se stane že symbol plus 1004 00:52:42,700 --> 00:52:44,670 je operátor, stejně jako jsme právě viděli. 1005 00:52:44,670 --> 00:52:47,500 Tento operátor je ve skutečnosti, že funkce 1006 00:52:47,500 --> 00:52:53,100 má právě tento seznam, které jsme bude chtít, raději těmto vlastnostem 1007 00:52:53,100 --> 00:52:54,770 že bychom chtěli. 1008 00:52:54,770 --> 00:52:56,760 Tak jsem povzbudit, abyste podívejte se na tohle. 1009 00:52:56,760 --> 00:52:59,290 Chci, aby tak nějak pohybu Na některých z tohoto kodexu 1010 00:52:59,290 --> 00:53:05,330 takže vlastně můžeme podívat na některé skutečný, reálný, pravdivý Swift v Xcode, 1011 00:53:05,330 --> 00:53:06,880 v iOS vývoji. 1012 00:53:06,880 --> 00:53:08,630 Ale podívejte se na to a uvidíme, jestli můžete 1013 00:53:08,630 --> 00:53:11,171 analyzovat skrze to, co se děje s některými z těchto vyšších řádů 1014 00:53:11,171 --> 00:53:13,790 funkce včetně filtru, snížit, a budete dokonce 1015 00:53:13,790 --> 00:53:17,060 viz někde tady na mapě stejně. 1016 00:53:17,060 --> 00:53:17,910 Je to přímo tady. 1017 00:53:17,910 --> 00:53:20,410 Tam, kde to bude trvat sekvenci známek a to bude ve skutečnosti 1018 00:53:20,410 --> 00:53:24,230 Pro je pomocí přepínače konstrukt, které můžete poznat z C, 1019 00:53:24,230 --> 00:53:27,640 ale ve skutečnosti je to mnohem víc silnější než spínače konstruktu 1020 00:53:27,640 --> 00:53:29,810 že máme v C. 1021 00:53:29,810 --> 00:53:31,930 >> A budeme platit, že pro každý prvek v seznamu 1022 00:53:31,930 --> 00:53:34,540 a skutečně poskytovat stupeň písmeno každého 1023 00:53:34,540 --> 00:53:40,780 z těchto tříd s využitím všech těchto pojmů že jsme právě mluvili předtím. 1024 00:53:40,780 --> 00:53:44,760 Nyní vyhnout jen za minuta a hovoří o structs. 1025 00:53:44,760 --> 00:53:49,680 A tak structs jsou čekat v C, které jsme byli schopni definovat nový typ dat. 1026 00:53:49,680 --> 00:53:53,590 Struktury existují uvnitř Swift. 1027 00:53:53,590 --> 00:53:58,980 A tak se mnoho dalších konstruktů tzv výčtové typy a třídy, které opravdu 1028 00:53:58,980 --> 00:54:01,175 tento nápad úplně jiný level. 1029 00:54:01,175 --> 00:54:05,300 >> A v podstatě je to jen způsob, jak definování nového typu dat. 1030 00:54:05,300 --> 00:54:11,010 Takže pokud jste get-- když přijdete po třídě nebo structs nebo výčtových typů, 1031 00:54:11,010 --> 00:54:13,290 nenechte se zmást tím. 1032 00:54:13,290 --> 00:54:16,280 Je to jen způsob, jak definovat nějaká nová konkrétní typ dat. 1033 00:54:16,280 --> 00:54:20,230 A to je opravdu důležité při mluvíme o iOS pro vývoj aplikací 1034 00:54:20,230 --> 00:54:24,630 proto, že vše, co existuje v rámci aplikace iOS 1035 00:54:24,630 --> 00:54:27,460 je v podstatě předmětem nějakého druhu. 1036 00:54:27,460 --> 00:54:31,980 A objekt je v podstatě třída nebo enum nebo struct. 1037 00:54:31,980 --> 00:54:34,760 >> Takže v tomto případě, že jsem definovat nový typ dat 1038 00:54:34,760 --> 00:54:37,740 že volám hodnocení že je některé vlastnosti, včetně 1039 00:54:37,740 --> 00:54:41,040 jméno a posloupnost stupňů. 1040 00:54:41,040 --> 00:54:43,470 Takže jeden typ hodnocení že bych mohl mít na mysli 1041 00:54:43,470 --> 00:54:44,760 by kvízy, například. 1042 00:54:44,760 --> 00:54:48,180 Já bych chtěl mít hodnocení, které bylo kvíz 1043 00:54:48,180 --> 00:54:51,460 a který měl různé jakosti spojená s tím, pro kvíz jedna, 1044 00:54:51,460 --> 00:54:52,840 kvíz dva, tak dále a tak dále. 1045 00:54:52,840 --> 00:54:55,720 >> Nebo bych mohl mít jiný typ posouzení pro problémové sady. 1046 00:54:55,720 --> 00:54:56,650 A můžu dělat věci. 1047 00:54:56,650 --> 00:54:59,860 Já si skutečně mít Funkce v rámci tohoto typu 1048 00:54:59,860 --> 00:55:02,645 z údajů, které jsou nyní volal metody. 1049 00:55:02,645 --> 00:55:04,520 Takže pokud jste někdy vidět metoda slovo, je to opravdu 1050 00:55:04,520 --> 00:55:08,190 je jen funkce, které se vztahují k velmi konkrétní třídy, 1051 00:55:08,190 --> 00:55:10,100 nebo velmi specifický typ dat. 1052 00:55:10,100 --> 00:55:12,350 To nám umožňuje upravovat data uvnitř. 1053 00:55:12,350 --> 00:55:15,510 >> Takže jinými slovy, pokud chci, aby Přidání třídy do své analýzy, 1054 00:55:15,510 --> 00:55:18,630 pak vše, co potřebujete udělat, je, aby připojit skóre, který byl vstup 1055 00:55:18,630 --> 00:55:22,660 k této funkci se můj vnitřní majetek. 1056 00:55:22,660 --> 00:55:25,880 Je tu další čistý konstrukt zde v Swift, což je to dot dot dot 1057 00:55:25,880 --> 00:55:31,780 operátor, což znamená, že bodové hodnocení nyní přijímat libovolný počet celých čísel. 1058 00:55:31,780 --> 00:55:33,940 A skóre bude pole celých čísel, která 1059 00:55:33,940 --> 00:55:39,030 byly předány do mé funkce, která Znamená to, že můžu dělat věci, jako je toto. 1060 00:55:39,030 --> 00:55:42,360 >> Můžu si přidat stupně a jen poskytovat libovolné množství celých čísel do něj 1061 00:55:42,360 --> 00:55:47,420 a ve skutečnosti být pole z těchto hodnot v mém funkce 1062 00:55:47,420 --> 00:55:50,270 nebo ve svém způsobu, jako je tomu. 1063 00:55:50,270 --> 00:55:54,040 Teď je to důležité, protože vše v Xcode, vše v iOS, 1064 00:55:54,040 --> 00:55:56,250 je ve skutečnosti objekt. 1065 00:55:56,250 --> 00:55:59,630 Takže mějte na paměti, že Když jsme bust otevřené Xcode 1066 00:55:59,630 --> 00:56:04,890 a přeskočte za iOS verze dvě a tři 1067 00:56:04,890 --> 00:56:08,820 a vlastně jít na verzi čtyři. 1068 00:56:08,820 --> 00:56:11,940 >> A opět, bude to vše zveřejněny na semináře stránce. 1069 00:56:11,940 --> 00:56:16,980 iOS čtyři je trochu plnohodnotné realizace velmi základní aplikace. 1070 00:56:16,980 --> 00:56:23,920 A co tato aplikace dělá, je to načte UI, který vypadá takto. 1071 00:56:23,920 --> 00:56:28,680 Opět platí, že pokud klikneme na scénáři můžeme vidět, že to je to, co to vypadá. 1072 00:56:28,680 --> 00:56:31,320 To je UI. 1073 00:56:31,320 --> 00:56:33,676 Má titul na samém vrcholu. 1074 00:56:33,676 --> 00:56:34,800 Já jsem to nazval web galerie. 1075 00:56:34,800 --> 00:56:38,400 >> Uprostřed je prvek volal view UI image. 1076 00:56:38,400 --> 00:56:41,340 A na konci je tu Panel nástrojů s jedním tlačítkem, které 1077 00:56:41,340 --> 00:56:46,850 Má elastické mezery, které ji umožňují, aby centrum uprostřed tohoto panelu. 1078 00:56:46,850 --> 00:56:51,780 A co se stane, je, že když to zatížení stáhne JSON soubor, který je 1079 00:56:51,780 --> 00:56:55,540 obsažené na serveru jinde, analyzuje, že JSON soubor, 1080 00:56:55,540 --> 00:56:58,130 a soubor JSON vypadá trochu jako je tento. 1081 00:56:58,130 --> 00:57:02,770 1082 00:57:02,770 --> 00:57:06,230 Soubor JSON vypadá takto. 1083 00:57:06,230 --> 00:57:08,650 Tady to je. 1084 00:57:08,650 --> 00:57:11,730 >> Má název alba a má řadu fotografií. 1085 00:57:11,730 --> 00:57:13,490 Každá z těchto fotek mají jméno a také 1086 00:57:13,490 --> 00:57:19,460 URL sami, které reprezentují jpeg verze tohoto jednotlivých fotografií. 1087 00:57:19,460 --> 00:57:24,780 Takže to, co se stalo, je, že když tento program zatížení, stáhne soubor JSON, 1088 00:57:24,780 --> 00:57:30,590 analyzuje to, klade to vše v ekvivalent pole v iOS 1089 00:57:30,590 --> 00:57:33,020 app vývoj, který je nsarray. 1090 00:57:33,020 --> 00:57:37,520 A pak jsem si poté načíst tato data do aplikace 1091 00:57:37,520 --> 00:57:41,100 a nahrát ji na mé obrazovce. 1092 00:57:41,100 --> 00:57:44,760 >> Tam je obraz, který byl vložen tlačítkem na samém dně. 1093 00:57:44,760 --> 00:57:49,190 Mám-li na tlačítko Get Následující obrázek, pak táhne, že obraz z internetu 1094 00:57:49,190 --> 00:57:53,370 a nahrazuje tento obraz v pohledu UI obrazu. 1095 00:57:53,370 --> 00:57:57,820 Takže si můžete stáhnout a vlastně podívejte se na to na vašem počítači. 1096 00:57:57,820 --> 00:58:00,940 A stavět to a vlastně zkompilovat do vašeho zařízení. 1097 00:58:00,940 --> 00:58:04,710 Ale v podstatě proces byl to, vytvořte storyboard-- 1098 00:58:04,710 --> 00:58:08,080 nebo spíše ne create-- ale vybrat scénář. 1099 00:58:08,080 --> 00:58:15,030 A vlastně we'll-- pokud nechcete mind-- budeme trvat jen několik sekund 1100 00:58:15,030 --> 00:58:18,390 skutečně ukázat, jak se to stalo. 1101 00:58:18,390 --> 00:58:22,430 1102 00:58:22,430 --> 00:58:27,820 >> Jen tak, jak můžeme vlastně dosažení tohoto cíle je vyrobena trochu víc 1103 00:58:27,820 --> 00:58:28,360 zřejmé. 1104 00:58:28,360 --> 00:58:30,651 Jednotlivý aplikace, já jsem zavolá tento seminář 1105 00:58:30,651 --> 00:58:35,330 čtyři zastupující tento konkrétní číslo. 1106 00:58:35,330 --> 00:58:36,335 Uložte jej na ploše. 1107 00:58:36,335 --> 00:58:39,890 1108 00:58:39,890 --> 00:58:42,110 OK, bude kliknout na scénáři. 1109 00:58:42,110 --> 00:58:47,030 A co budu dělat je najít můj názor obrazu, 1110 00:58:47,030 --> 00:58:50,940 přetáhněte ji na své uživatelské interface a centrum za to. 1111 00:58:50,940 --> 00:58:54,850 Teď už jen stačí centrování to bohužel se nebude dělat spoustu, 1112 00:58:54,850 --> 00:58:58,680 až na obrazovku že je tato přesná velikost. 1113 00:58:58,680 --> 00:59:03,950 >> Takže se můžeme přesvědčit, že Kliknutím na tohoto dvojího kruhu věc, 1114 00:59:03,950 --> 00:59:08,290 svrhnout tuto pop up menu zde a měnící se 1115 00:59:08,290 --> 00:59:11,110 k náhledu, kde budeme vlastně šanci na náhled, jak 1116 00:59:11,110 --> 00:59:13,530 Tím se vlastně podívejte se na jiných zařízeních. 1117 00:59:13,530 --> 00:59:16,500 Jak můžeme vidět, nemáme ani vidět na tomto konkrétním případě. 1118 00:59:16,500 --> 00:59:18,500 Takže budu zavřít to nyní. 1119 00:59:18,500 --> 00:59:22,100 >> A budu volit Tato ikona se na velmi 1120 00:59:22,100 --> 00:59:23,910 spodní části obrazovky. 1121 00:59:23,910 --> 00:59:26,584 To říká, že Vyřešit Auto problémy rozložení. 1122 00:59:26,584 --> 00:59:28,000 Je nám líto, je to odříznout na dně. 1123 00:59:28,000 --> 00:59:36,360 Ale když kliknu na to, co jsem si to pop up-- jít pryč. 1124 00:59:36,360 --> 00:59:39,740 1125 00:59:39,740 --> 00:59:51,220 To, co jsem si je to pop up, který mi umožňuje přidat chybějící omezení. 1126 00:59:51,220 --> 00:59:53,780 A tím, že dělá to tak pak tak nějak zamknout 1127 00:59:53,780 --> 00:59:56,640 do střední části obrazovka jako já by se dalo očekávat. 1128 00:59:56,640 --> 01:00:00,520 >> Nyní s cílem, aby si toto tlačítko na vrch, musím jít do editoru. 1129 01:00:00,520 --> 01:00:05,010 Přejít na vložit do a klikněte na tlačítko Navigation Controller. 1130 01:00:05,010 --> 01:00:08,900 Co to udělá, je, že se přidá Celá tato další složka k ní, 1131 01:00:08,900 --> 01:00:11,310 ale ve skutečnosti bude odkaz zpátky ke své původní UI. 1132 01:00:11,310 --> 01:00:14,450 A detaily, opět, my ne Opravdu je třeba se starat o právě teď. 1133 01:00:14,450 --> 01:00:16,710 Ale já to chci mít Panel nástrojů na samém dně. 1134 01:00:16,710 --> 01:00:18,530 Tak jsem to zkontrolovat ukazuje Toolbar. 1135 01:00:18,530 --> 01:00:21,870 >> A to poskytuje v rámci mého názoru, který je nyní někde jinde, 1136 01:00:21,870 --> 01:00:23,900 můžeme vidět, že to souvisí tady. 1137 01:00:23,900 --> 01:00:28,710 To nyní nabízí panel nástrojů ve spodní části svého uživatelského rozhraní. 1138 01:00:28,710 --> 01:00:34,770 Takže teď, spíše než výběr view image, najdu štítek, 1139 01:00:34,770 --> 01:00:41,140 nebo spíše toolbar-- podívejme se, kde to je? 1140 01:00:41,140 --> 01:00:41,890 Jak se jmenuje? 1141 01:00:41,890 --> 01:00:49,760 Položka button-- bar-- item-- sorry-- bar tlačítko položka. 1142 01:00:49,760 --> 01:00:54,590 Plop, že tam a aplikovat pár o flexibilní prostory na obou stranách 1143 01:00:54,590 --> 01:00:57,429 skutečně centra to. 1144 01:00:57,429 --> 01:00:58,970 Takže teď jsem vytvořil můj UI, v podstatě. 1145 01:00:58,970 --> 01:01:01,428 A mohu dát mu jméno, pod dvojitým kliknutím na samém vrcholu 1146 01:01:01,428 --> 01:01:04,880 tady a říkat webové galerie a tak dále. 1147 01:01:04,880 --> 01:01:08,100 Nyní opět se jedná o prvky, které existují samy o sobě. 1148 01:01:08,100 --> 01:01:10,400 A musím se připojit je do svého kódu, který 1149 01:01:10,400 --> 01:01:14,297 Můžu udělat opět přináší up tohoto dvojího ikony kruh, 1150 01:01:14,297 --> 01:01:15,380 přepnutí z náhledu. 1151 01:01:15,380 --> 01:01:18,950 Což, mimochodem, nyní můžeme vidět, je pěkně ve středu a bude vypadat dobře 1152 01:01:18,950 --> 01:01:23,720 na různých zařízeních. 1153 01:01:23,720 --> 01:01:27,280 >> Přepněte do automatického režimu, který bude vyvolejte ViewController kód. 1154 01:01:27,280 --> 01:01:29,030 A teď tato část je důležitá. 1155 01:01:29,030 --> 01:01:34,590 K tomu, aby vám umožní připojit tyto dva prvky, kód k UI, 1156 01:01:34,590 --> 01:01:36,680 vyberte položku, která se chcete připojit. 1157 01:01:36,680 --> 01:01:39,570 Takže v tomto případě jsme skutečně chtějí kódovat 1158 01:01:39,570 --> 01:01:43,520 změnit obrázek, který je obsažen v rámci tohoto pohledu UI obrazu. 1159 01:01:43,520 --> 01:01:47,070 Takže pokud ovládáte na tlačítko od view image a táhnout, 1160 01:01:47,070 --> 01:01:51,960 zjistíte, že vám trochu bar, když necháte odejít všechno to pop 1161 01:01:51,960 --> 01:01:53,550 up dojde. 1162 01:01:53,550 --> 01:01:56,470 >> A to říká, že budeme Vytvoření připojení. 1163 01:01:56,470 --> 01:01:59,300 A odtud chci, aby to název, něco jako galerie. 1164 01:01:59,300 --> 01:02:00,240 Stiskněte klávesu Enter. 1165 01:02:00,240 --> 01:02:03,040 A to vlastně poskytuje proměnná s názvem galerie 1166 01:02:03,040 --> 01:02:08,600 že jsem se pak mohou odkazovat v mém kódu obrázek změnit, například. 1167 01:02:08,600 --> 01:02:10,430 Tak jak to, že kód vlastně vypadat? 1168 01:02:10,430 --> 01:02:13,030 No zase, já nechci tráví příliš mnoho času na to. 1169 01:02:13,030 --> 01:02:15,430 A já Doporučujeme vám si ji stáhnout a podívat se. 1170 01:02:15,430 --> 01:02:18,330 Ale jeden z nejvíce Důležitým aspektem je kód 1171 01:02:18,330 --> 01:02:20,980 že vlastně načte obrázek. 1172 01:02:20,980 --> 01:02:26,470 >> Takže v tomto případě chci aby se v rámci mých fotografií 1173 01:02:26,470 --> 01:02:28,520 pole, které je obsaženo v mé třídě. 1174 01:02:28,520 --> 01:02:33,390 Chci definovat název a adresu URL která byla analyzována z tohoto JSON. 1175 01:02:33,390 --> 01:02:39,810 Vlastně požádat zařízení, aby si URL, načíst URL z toho, 1176 01:02:39,810 --> 01:02:44,060 a pak načíst data z Obsah této URL. 1177 01:02:44,060 --> 01:02:49,430 Pak převést tyto údaje do obrázku průchodem do obrazu UI. 1178 01:02:49,430 --> 01:02:52,880 Takže znovu, to všechno jsou různé druhy objektů, různých typů tříd. 1179 01:02:52,880 --> 01:02:58,410 >> A pak jsem si pak nastavit my gallery.image rovná dat. 1180 01:02:58,410 --> 01:03:00,750 A to je druh masa z toho, že ve skutečnosti je pak 1181 01:03:00,750 --> 01:03:08,250 schopný změnit změnit data from-- obraz od jednoho k druhému. 1182 01:03:08,250 --> 01:03:10,660 Takže znovu, doufám, že teď spousta konstruktů 1183 01:03:10,660 --> 01:03:12,240 bude trochu větší smysl. 1184 01:03:12,240 --> 01:03:15,260 Všimněte si, že tam je nějaký vykřičníky zde. 1185 01:03:15,260 --> 01:03:19,810 V vykřičníky jsou v podstatě souvisí s Volitelně. 1186 01:03:19,810 --> 01:03:22,657 >> To, co jsem v podstatě říct, že i bez kontroly 1187 01:03:22,657 --> 01:03:24,490 aby zjistil, jestli tam dat v tento volitelný, 1188 01:03:24,490 --> 01:03:27,140 Chystám se jít dopředu a převzít že je zde a rozbalit jej. 1189 01:03:27,140 --> 01:03:31,340 Pamatujte si, že jsme použili analogii druh balíčku pro Volitelně 1190 01:03:31,340 --> 01:03:34,700 a musíme rozbalit Balík a vytáhnout data ven. 1191 01:03:34,700 --> 01:03:37,570 Vykřičník síly, které se ve skutečnosti stalo. 1192 01:03:37,570 --> 01:03:39,590 >> Ale já vím, že to je bezpečné, protože jsem zkontroloval 1193 01:03:39,590 --> 01:03:42,070 aby zjistil, jestli obrazových dat se rovná na nulu, já jsem vlastně zkontrolovat 1194 01:03:42,070 --> 01:03:45,420 a uvidíte, zda volitelná byl, ve skutečnosti, se nezdařilo. 1195 01:03:45,420 --> 01:03:47,110 V případě, že byl ve skutečnosti již selhal. 1196 01:03:47,110 --> 01:03:52,450 A tak jsem si jistý, že jakmile se dostanu k tomu bod můžu bezpečně rozbalit, že data. 1197 01:03:52,450 --> 01:03:55,710 Možná vidět také forma otazník. 1198 01:03:55,710 --> 01:03:59,100 Pokud tedy přejděte dolů, kde jsem je třeba skutečně analyzovat data. 1199 01:03:59,100 --> 01:04:01,850 >> Takže nenechte se odradit Tyto druh dlouhých jmen. 1200 01:04:01,850 --> 01:04:06,580 Najdete v Apple developer site hodně 1201 01:04:06,580 --> 01:04:09,620 odkazů na všechno objektů a všechny procesy 1202 01:04:09,620 --> 01:04:11,170 že ve skutečnosti, aby to bylo možné. 1203 01:04:11,170 --> 01:04:15,990 Ale Všimněte si, že se jedná v podstatě funkce, kde bych předat některá data. 1204 01:04:15,990 --> 01:04:18,410 A já se vrátím nějaké údaje. 1205 01:04:18,410 --> 01:04:24,190 A musím použít jako klíčové slovo do převést jej do této nsdictionary? 1206 01:04:24,190 --> 01:04:26,490 Což je opět, volitelný nsdictionary. 1207 01:04:26,490 --> 01:04:31,070 Což jsem pak je třeba, aby zkontrolujte, zda existuje. 1208 01:04:31,070 --> 01:04:37,130 >> Tak jsem se ho použít, pokud nechal úspěšných rovná analyzovat, 1209 01:04:37,130 --> 01:04:40,620 pak vím, že na přání ve skutečnosti obsahuje některé údaje. 1210 01:04:40,620 --> 01:04:43,840 Nebo to, co tu dělal jsem byl na jen předpokládat, že v případě, že 1211 01:04:43,840 --> 01:04:49,067 žádné chyby, že je ve skutečnosti v bezpečí. 1212 01:04:49,067 --> 01:04:51,400 Dobře, chci poděkovat vám všem moc děkuji za příchod. 1213 01:04:51,400 --> 01:04:53,540 Vím, že to bylo hodně, ale to bylo jen hodina 1214 01:04:53,540 --> 01:04:55,920 mluvit o nějaké pěkný moderní věci. 1215 01:04:55,920 --> 01:04:59,640 A tak doufám, že budete mít možnost stáhnout všechny kód 1216 01:04:59,640 --> 01:05:01,657 a vzít lepší, důkladný pohled na to. 1217 01:05:01,657 --> 01:05:04,240 Druh přesvědčit sami ze všech ty věci, co se děje. 1218 01:05:04,240 --> 01:05:06,800 A chci vám poděkovat všichni, opět přišel. 1219 01:05:06,800 --> 01:05:08,760 A hodně štěstí s vašimi závěrečných prací. 1220 01:05:08,760 --> 01:05:10,600 Mají velký den. 1221 01:05:10,600 --> 01:05:11,467