1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Ahoj, jak se má to jde všem? 3 00:00:13,590 --> 00:00:20,250 A to je iOS App programování Objective C semináře. 4 00:00:20,250 --> 00:00:21,520 A mé jméno je Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Jsem Lowell junior právě teď, soustředit se v informatice. 6 00:00:26,114 --> 00:00:28,030 Takže v tomto semináři jsem si bude vás naučí lidi 7 00:00:28,030 --> 00:00:30,770 něco málo o tom, jak aplikaci. 8 00:00:30,770 --> 00:00:33,030 Hurá, nadchnout pro to. 9 00:00:33,030 --> 00:00:36,790 >> Takže než jsme se dokonce začít potápění do aktuálního programového straně, 10 00:00:36,790 --> 00:00:41,840 Prostě velmi rychle mluvit Proč budete chtít vytvořit aplikaci iOS? 11 00:00:41,840 --> 00:00:43,940 Proč je iOS tak úžasné? 12 00:00:43,940 --> 00:00:47,250 Takže první problém, první věc, která je dost děsivý pro nás, 13 00:00:47,250 --> 00:00:51,190 zejména jako CS50 student, je to, že iOS 14 00:00:51,190 --> 00:00:55,860 používá Cíl C. No, je tu nový jazyk s názvem Swift, 15 00:00:55,860 --> 00:00:58,260 ale my nebudeme použití, které v tomto semináři. 16 00:00:58,260 --> 00:01:01,540 Máte-li zájem o Swift, tam je nezávislý seminář o tom. 17 00:01:01,540 --> 00:01:05,590 Ale Objective C je v zásadě podmnožinou C. Význam 18 00:01:05,590 --> 00:01:10,230 že všechno, co používáte v C může být přeložen do Objective C 19 00:01:10,230 --> 00:01:11,630 velmi snadno. 20 00:01:11,630 --> 00:01:15,730 >> Jak můžete vidět později, že skutečně tam jsou některé velmi základní syntax, jsou 21 00:01:15,730 --> 00:01:19,790 v podstatě přesně stejný, C a Objective C. Tak, 22 00:01:19,790 --> 00:01:22,860 protože jste vzali CS50 up tak daleko, že již 23 00:01:22,860 --> 00:01:26,500 vím Objective C, alespoň 40%. 24 00:01:26,500 --> 00:01:30,720 Také, Apple má opravdu robustní API pro iOS. 25 00:01:30,720 --> 00:01:33,750 Existuje spousta opravdu šílené věci, které můžete udělat s ním. 26 00:01:33,750 --> 00:01:36,760 Jedním z nich je někdo vlastně vytvořil aplikaci iOS 27 00:01:36,760 --> 00:01:40,600 jejich ovládání vozidel, která Je docela zajímavé. 28 00:01:40,600 --> 00:01:42,610 Pravděpodobně vrtulník je více vzrušující. 29 00:01:42,610 --> 00:01:47,020 Ale to je, jak silný iOS API může být. 30 00:01:47,020 --> 00:01:49,340 >> A jak by se mohlo mít přišel právě teď, 31 00:01:49,340 --> 00:01:53,000 přetečení zásobníku je pravděpodobně jedním z Nejdůležitější on-line zdroje 32 00:01:53,000 --> 00:01:54,250 K dispozici pro vás. 33 00:01:54,250 --> 00:01:58,090 A dobrá zpráva, pro každého jediný problém, můžete případně 34 00:01:58,090 --> 00:02:01,840 myslet při vytváření vašich závěrečný projekt v Objective C, 35 00:02:01,840 --> 00:02:05,910 je pravděpodobné, přetečení zásobníku odpověď. 36 00:02:05,910 --> 00:02:07,420 Je to prostě úžasné. 37 00:02:07,420 --> 00:02:12,780 Kromě toho, iOS je opravdu platforma 38 00:02:12,780 --> 00:02:16,260 kde se můžete dostat obrovský publikum s malým úsilím. 39 00:02:16,260 --> 00:02:20,170 Není to jako Android, kde všechno je docela roztříštěný. 40 00:02:20,170 --> 00:02:22,540 >> Vše iOS je jednotný. 41 00:02:22,540 --> 00:02:25,920 A tak dlouho, jak si vytvořit aplikace pro iPhone, 42 00:02:25,920 --> 00:02:31,260 můžete snadno port, který na iPad, iPad mini, nebo různé velikosti iPhone. 43 00:02:31,260 --> 00:02:33,050 To vše jsou opravdu pohodlné. 44 00:02:33,050 --> 00:02:36,430 A to je jen opravdu dobrý pro imponující své přátele. 45 00:02:36,430 --> 00:02:38,920 Stačí si jen držet iPhone a řekněte svému příteli hej, 46 00:02:38,920 --> 00:02:40,250 To je aplikace, co dělat. 47 00:02:40,250 --> 00:02:43,860 Můžete to udělat, že pro jakýkoli desktopových aplikací, což je hezké. 48 00:02:43,860 --> 00:02:48,870 >> Dobře, teď pojďme skutečně dostat do jazyka Objective C. 49 00:02:48,870 --> 00:02:52,910 Tak proč ne my začínáme některé opravdu základní syntaxe. 50 00:02:52,910 --> 00:02:57,410 Jak jsem se již zmínil dříve Cíl C Je to v podstatě podmnožinou C. 51 00:02:57,410 --> 00:03:01,860 Takže hodně základní syntaxe vlastně úplně stejný. 52 00:03:01,860 --> 00:03:06,150 Deklarace proměnné a přidá dvě proměnné spolu 53 00:03:06,150 --> 00:03:09,440 je přesně tak, jak jsme to udělali v Mario. 54 00:03:09,440 --> 00:03:11,140 Nic nového zde. 55 00:03:11,140 --> 00:03:17,370 >> Stejně tak, nájemník pro smyčce a stav je také stejná. 56 00:03:17,370 --> 00:03:22,370 Můžete to udělat pro smyčce, stejně jako vy které dělal v Mario [neslyšitelné]. 57 00:03:22,370 --> 00:03:26,280 A vy můžete udělat podmínky stejně jako to, co 58 00:03:26,280 --> 00:03:29,240 dělali v předchozí p sad. 59 00:03:29,240 --> 00:03:33,400 Nicméně, Objective C není zcela C, 60 00:03:33,400 --> 00:03:36,640 a je tam něco, co Je trochu divné o tom. 61 00:03:36,640 --> 00:03:42,340 >> První z nich je, že když jste dělá programování C, obvykle volání 62 00:03:42,340 --> 00:03:46,310 patří a pak název knihovny. 63 00:03:46,310 --> 00:03:49,860 Ale v Objective C říkáte, aby dovoz. 64 00:03:49,860 --> 00:03:53,100 V podstatě říká funkčnosti jen různá jména. 65 00:03:53,100 --> 00:03:55,940 A řetězce jsou vlastně trochu divné. 66 00:03:55,940 --> 00:03:58,250 Můžete vidět, že první věc, která je trochu divný 67 00:03:58,250 --> 00:04:04,190 je to, že máte dost weird-- sorry-- máte dost divné NS 68 00:04:04,190 --> 00:04:04,960 Přihlašte se sem. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 A druhá věc že je to trochu divné 71 00:04:09,160 --> 00:04:14,090 se máte na znak před skutečně deklarovat řetězec. 72 00:04:14,090 --> 00:04:19,209 Takže zavináč v podstatě znamená, že řetězec není jen řetězec, 73 00:04:19,209 --> 00:04:20,880 to je ve skutečnosti objekt. 74 00:04:20,880 --> 00:04:22,780 Budeme vysvětlovat že později takže se nemusíte 75 00:04:22,780 --> 00:04:25,800 panika, pokud nemáte pochopit, co to znamená. 76 00:04:25,800 --> 00:04:29,980 A tisk na konzole je trochu odlišné, protože v C nazýváme printf, 77 00:04:29,980 --> 00:04:33,350 ale v Objective C, zavolejte [neslyšitelné]. 78 00:04:33,350 --> 00:04:35,640 >> Možná se divíte, co to je. 79 00:04:35,640 --> 00:04:38,070 To je v podstatě printf, jen jiný jazyk. 80 00:04:38,070 --> 00:04:41,370 Přesně stejné použití, přesně stejné funkce. 81 00:04:41,370 --> 00:04:44,060 No, ukázalo se, že Objective C vlastně 82 00:04:44,060 --> 00:04:50,040 má ns prefix téměř všechno, každá základní datový typ, 83 00:04:50,040 --> 00:04:52,690 NSString, nsarray, nsdictionary. 84 00:04:52,690 --> 00:04:56,340 Důvodem je, že ns vlastně znamená další krok 85 00:04:56,340 --> 00:04:59,980 což je společnost, která Steve Jobs založil, 86 00:04:59,980 --> 00:05:03,960 což je společnost, kde Jazyk Objective C je na světě. 87 00:05:03,960 --> 00:05:06,140 Tak to je v podstatě tradice. 88 00:05:06,140 --> 00:05:09,010 Já vím, je to trochu divně, ale je to Apple. 89 00:05:09,010 --> 00:05:16,840 >> Takže něco, co je ještě divnější než že je deklarace funkce. 90 00:05:16,840 --> 00:05:22,600 To je velmi odlišné od toho, co jsme vidět v C, protože tady to vlastně 91 00:05:22,600 --> 00:05:25,190 nevypadá jako C už. 92 00:05:25,190 --> 00:05:28,810 Co máte here-- by způsob, jak to není odrážka, 93 00:05:28,810 --> 00:05:30,690 to je znaménko mínus. 94 00:05:30,690 --> 00:05:36,440 Máte znaménka mínus závorka void a pak název funkce. 95 00:05:36,440 --> 00:05:38,450 Řekněme, že pokud budeme mají Hello World, poté 96 00:05:38,450 --> 00:05:42,820 typ návrat bude zrušena proto, že jsme nic vrátit. 97 00:05:42,820 --> 00:05:44,680 >> To, co se opravdu divný je, že když jste 98 00:05:44,680 --> 00:05:49,580 které mají více než jeden parametr přecházet do stejné funkce, která 99 00:05:49,580 --> 00:05:53,870 bude opravdu divné, jak je znázorněno zde. 100 00:05:53,870 --> 00:05:58,230 Máme název metody, volal addInt na [neslyšitelné] 101 00:05:58,230 --> 00:06:00,370 a my jsme zadali jeden parametr. 102 00:06:00,370 --> 00:06:05,170 Ale po tom, máme Více jméno volání metody se. 103 00:06:05,170 --> 00:06:08,500 A poté, co se budeme absolvování Druhým parametrem. 104 00:06:08,500 --> 00:06:11,940 To je vlastně trochu divné, Ale všechny tyto funkce prohlášení 105 00:06:11,940 --> 00:06:14,770 sledovat stejný průběh, jako toto. 106 00:06:14,770 --> 00:06:17,450 >> Máme mínus začít. 107 00:06:17,450 --> 00:06:21,550 Znaménko minus může být znaménko plus někdy zakládají na tom, jaké metody 108 00:06:21,550 --> 00:06:22,340 to je. 109 00:06:22,340 --> 00:06:25,000 Metoda je v podstatě jiný název pro funkci. 110 00:06:25,000 --> 00:06:26,760 A budeme se vysvětlit, že později, když 111 00:06:26,760 --> 00:06:30,580 mluvíme o objektu orientované programování. 112 00:06:30,580 --> 00:06:34,300 Nejprve určit návrat typ závorkách, 113 00:06:34,300 --> 00:06:37,450 po kterém přichází název metody. 114 00:06:37,450 --> 00:06:40,310 Ty předávání jeden parametr. 115 00:06:40,310 --> 00:06:44,750 A pokud máte více parametrů je třeba rozšířit název metody 116 00:06:44,750 --> 00:06:46,770 a v podstatě napsat něco více zde. 117 00:06:46,770 --> 00:06:48,090 >> Může to být cokoliv chcete. 118 00:06:48,090 --> 00:06:50,140 V našem případě je to s. 119 00:06:50,140 --> 00:06:56,160 Ale dalo by se říct konec, nebo nebo nebo abc plný bar, co chcete. 120 00:06:56,160 --> 00:06:59,500 A pak po tom jste předávání parametru b. 121 00:06:59,500 --> 00:07:01,750 To je opravdu zvláštní konvence, ale my jsme 122 00:07:01,750 --> 00:07:05,800 uvidí, proč Apple chtěl k tomu, že velmi rychle. 123 00:07:05,800 --> 00:07:10,530 Tak jak se vám volání funkce? 124 00:07:10,530 --> 00:07:15,520 Volání funkce v Objective C je také odlišné od C. 125 00:07:15,520 --> 00:07:18,170 >> Vlastně, volání Funkce v Objective C 126 00:07:18,170 --> 00:07:21,030 je spíš mluvíte s někým. 127 00:07:21,030 --> 00:07:27,030 Zde máme já, které se nazývá objekt. 128 00:07:27,030 --> 00:07:33,830 Vy jste v podstatě říct, námitky sebe říct: "Hello World!" 129 00:07:33,830 --> 00:07:36,830 To je, jak k volání funkce. 130 00:07:36,830 --> 00:07:41,690 Objekt a název metody v kombinaci s ostatními. 131 00:07:41,690 --> 00:07:49,600 A to je místo, kde divný rozšíření pro název metody opravdu přijde do hry. 132 00:07:49,600 --> 00:07:52,150 >> Pojďme se podívat na druhý příklad. 133 00:07:52,150 --> 00:07:56,780 Právě jsme definovali metodu nazvanou addInt s bla bla bla. 134 00:07:56,780 --> 00:08:00,066 Takže v tomto případě, kdy voláte že konkrétní [? poselství?] to jde 135 00:08:00,066 --> 00:08:02,035 vypadat jako vlastní addInt: 10 s: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Zní to jako angličtina. 138 00:08:08,070 --> 00:08:11,980 I když funkce deklarace funkce je divný, 139 00:08:11,980 --> 00:08:15,600 bod Cíl let C metoda prohlášení vzor, 140 00:08:15,600 --> 00:08:18,830 je, že když voláte funkce nebo metoda 141 00:08:18,830 --> 00:08:21,980 to bude znít jako skutečný angličtiny. 142 00:08:21,980 --> 00:08:25,270 Takže je to velmi intuitivní jakmile se dostanete do toho. 143 00:08:25,270 --> 00:08:28,740 >> Zejména v tomto případě, kde si můžete v podstatě 144 00:08:28,740 --> 00:08:33,010 vidět, že název funkce je druh dokumentace sama. 145 00:08:33,010 --> 00:08:35,390 Ty nepotřebuješ více vysvětlení vidět 146 00:08:35,390 --> 00:08:42,770 co přesně se děje, co se přesně jeden parametr dělá. 147 00:08:42,770 --> 00:08:48,470 Nad rámec, který, pojďme mluvit trochu bit o objektově orientovaného programování. 148 00:08:48,470 --> 00:08:52,160 Objektově orientované programování je Jedním ze základních programů 149 00:08:52,160 --> 00:08:57,110 techniky nebo vzory, které je použitý cíl C. Objective C 150 00:08:57,110 --> 00:09:03,110 se nazývá cíl C, ne C, pro opravdu dobrý důvod. 151 00:09:03,110 --> 00:09:07,560 >> Takže než se dostaneme do Cíl syntax C, 152 00:09:07,560 --> 00:09:11,670 Pojďme se podívat na opravdu rychle co přesně je objekt. 153 00:09:11,670 --> 00:09:15,480 Jsme asi udělali něco jako objekt před, který 154 00:09:15,480 --> 00:09:19,780 se nazývá struct, když jste implementaci strom nebo propojený seznam 155 00:09:19,780 --> 00:09:25,730 nebo [? zkusit. ?] Takže, to je v podstatě jako struct, 156 00:09:25,730 --> 00:09:28,560 ale je to mnohem silnější než to. 157 00:09:28,560 --> 00:09:33,150 Objekt má metody a vlastnosti. 158 00:09:33,150 --> 00:09:35,310 Metody jsou v podstatě funkce. 159 00:09:35,310 --> 00:09:39,480 V podstatě funguje, že specifické pro určitý objekt. 160 00:09:39,480 --> 00:09:45,440 >> A vlastnosti jsou v podstatě pole zadáte do struct. 161 00:09:45,440 --> 00:09:48,500 Takže pro každý objekt máme nějaký majetek 162 00:09:48,500 --> 00:09:53,160 že má některé proměnné, které jsou specifické pro daný objekt. 163 00:09:53,160 --> 00:09:57,170 A máme některé funkce, které jsou rovněž specifické pro daný objekt. 164 00:09:57,170 --> 00:10:01,180 A funkce jsou volány metody a proměnné se nazývají vlastnosti. 165 00:10:01,180 --> 00:10:03,190 Je to jen vymyšlené jméno. 166 00:10:03,190 --> 00:10:10,440 Zatímco jsi skutečnosti, každý názor vidíte, když otevřete aplikaci iOS, 167 00:10:10,440 --> 00:10:17,720 řekněme, že Twitter nebo Facebook, každý pohled vidíte, je objekt. 168 00:10:17,720 --> 00:10:22,110 A dokonce i celá aplikace je objekt začít. 169 00:10:22,110 --> 00:10:25,340 Velmi zajímavý koncept. 170 00:10:25,340 --> 00:10:28,480 >> A proč chceme objekt orientovaného programování? 171 00:10:28,480 --> 00:10:33,530 Takže si dovedete představit, že když Program, je to poměrně složité. 172 00:10:33,530 --> 00:10:36,400 Řekněme, že když jste provádění šachovnice, 173 00:10:36,400 --> 00:10:40,020 logika bude je opravdu složité. 174 00:10:40,020 --> 00:10:43,280 Máte 36 různých kousky, takže pokud jste 175 00:10:43,280 --> 00:10:48,370 chci psát logiku pro všechny 36 různých kusů v šachy, 176 00:10:48,370 --> 00:10:52,150 že to bude hodně různé funkce a proměnné. 177 00:10:52,150 --> 00:10:54,070 Je to hodně problémů. 178 00:10:54,070 --> 00:10:58,980 A pravděpodobně budete psát jiný způsob nebo různé funkce 179 00:10:58,980 --> 00:11:03,950 pro každý kus přesně kontrolovat, co dělají. 180 00:11:03,950 --> 00:11:08,830 >> Ale pokud si objektově orientovaný programování, všechny tyto kousky 181 00:11:08,830 --> 00:11:12,440 lze abstrahovat do jediný objekt. 182 00:11:12,440 --> 00:11:16,111 A objekt bude mít nějaké společné vlastnosti, jako je, jaký druh dílu 183 00:11:16,111 --> 00:11:16,610 je to? 184 00:11:16,610 --> 00:11:17,740 Jakou má barvu? 185 00:11:17,740 --> 00:11:19,480 Jak se to může pohybovat? 186 00:11:19,480 --> 00:11:24,660 A tímto způsobem budete mít velmi zjednodušená logiku to. 187 00:11:24,660 --> 00:11:28,480 Takže je to jen opravdu dobrý způsob, jak aby složité programy, 188 00:11:28,480 --> 00:11:33,700 a hierarchický vztah v rámci programu, velmi jednoduché. 189 00:11:33,700 --> 00:11:36,800 Jak budeme vidět Proto velmi rychle, když 190 00:11:36,800 --> 00:11:39,660 jsme skutečně dělá programming-- když jsme vlastně 191 00:11:39,660 --> 00:11:42,830 dělá S kód programování se později. 192 00:11:42,830 --> 00:11:48,120 >> No kromě toho, objektově orientované programování 193 00:11:48,120 --> 00:11:50,030 je jen spousta legrace. 194 00:11:50,030 --> 00:11:51,990 Musíte vytvořit vlastní objekt. 195 00:11:51,990 --> 00:11:56,080 Musíš vytvořit to, co dělá to vypadá, jako by sami. 196 00:11:56,080 --> 00:11:58,250 Neexistuje žádná správná odpověď na to. 197 00:11:58,250 --> 00:12:02,940 A je to úplně zajímavé. 198 00:12:02,940 --> 00:12:07,270 Takže v objektově orientovaného programování, dva základní pojmy 199 00:12:07,270 --> 00:12:10,130 Bude třídy a instance. 200 00:12:10,130 --> 00:12:13,570 Třída je v podstatě šablona pro objekt. 201 00:12:13,570 --> 00:12:18,070 A instance je v podstatě jeden konkrétní objekt. 202 00:12:18,070 --> 00:12:21,090 >> Řekněme, že děláte cookie. 203 00:12:21,090 --> 00:12:24,800 V tomto případě, každý cookie skutečně skončit 204 00:12:24,800 --> 00:12:27,310 bude objekt. 205 00:12:27,310 --> 00:12:35,830 Ale cookie desku můžete použít k pečení všechny cookies bude třída. 206 00:12:35,830 --> 00:12:37,880 Třída je v podstatě šablona. 207 00:12:37,880 --> 00:12:46,170 A instance bude jeden konkrétní objekt vytvořený z této třídy. 208 00:12:46,170 --> 00:12:49,970 >> A instance bude vytvořena na základě deklarace třídy, 209 00:12:49,970 --> 00:12:56,760 jak uvidíme v dalších snímků. 210 00:12:56,760 --> 00:13:00,010 Tak pojďme vlastně dělat opravdu rychlý příklad [neslyšitelné]. 211 00:13:00,010 --> 00:13:04,280 Řekněme, že jsme vyhlášení objekt pro kočku. 212 00:13:04,280 --> 00:13:07,930 Objekt by měl have-- třída kočka by měla 213 00:13:07,930 --> 00:13:11,260 mají některé vlastnosti a metody. 214 00:13:11,260 --> 00:13:17,300 Jaké vlastnosti by měl třída have-- by kočka mít? 215 00:13:17,300 --> 00:13:20,580 >> Například, barva, věk a plemeno, ty 216 00:13:20,580 --> 00:13:24,440 bude proměnné, které jsou specifické pro každou kočku. 217 00:13:24,440 --> 00:13:27,790 A to jsou některé věci který používáme k popisu kočku. 218 00:13:27,790 --> 00:13:31,880 Jaké metody, nebo co může kočka dělat? 219 00:13:31,880 --> 00:13:37,160 Některé rychlé příklady byly by chase myš, jíst ryby nebo jen mňoukat. 220 00:13:37,160 --> 00:13:40,900 To je opravdu rychlý Příkladem kočičí třídy. 221 00:13:40,900 --> 00:13:46,920 A opravdu specifický kočka objekt bude kočka 222 00:13:46,920 --> 00:13:50,930 kde určíme barva, věk a plemeno. 223 00:13:50,930 --> 00:13:53,790 >> V tomto případě, náš objekt již třídy není ještě. 224 00:13:53,790 --> 00:14:00,010 My zkopírujte šablonu ze třídy a určíme každé konkrétní informace 225 00:14:00,010 --> 00:14:04,510 k tomuto specifickému předmětu aby byl nezávislý. 226 00:14:04,510 --> 00:14:09,350 A když voláte Způsob uvnitř objektu, 227 00:14:09,350 --> 00:14:16,640 stačí zavolat mňau na objektu, což je kočka jste právě vytvořili. 228 00:14:16,640 --> 00:14:19,020 >> Pravděpodobně budete tisknout něco jako "Hello World! 229 00:14:19,020 --> 00:14:20,000 Mňau ". 230 00:14:20,000 --> 00:14:22,110 Docela roztomilé. 231 00:14:22,110 --> 00:14:24,500 Dobře, řekněme, dostat se do nějaké detaily 232 00:14:24,500 --> 00:14:30,650 a zjistit, co přesně to dělá přeložit do bytí programování iOS. 233 00:14:30,650 --> 00:14:36,500 Takže v iOS programování každý třída bude realizován ve dvou souborech. 234 00:14:36,500 --> 00:14:41,420 Jeden soubor je tu, která se nazývá rozhraní. 235 00:14:41,420 --> 00:14:45,300 Další soubor je tu, která se nazývá implementace. 236 00:14:45,300 --> 00:14:48,890 >> Typicky rozhraní bude mít extension.h 237 00:14:48,890 --> 00:14:51,740 jak jsme viděli v C knihovny. 238 00:14:51,740 --> 00:14:56,340 A implementace soubor bude mít extension.n. 239 00:14:56,340 --> 00:14:57,260 Je to trochu divné. 240 00:14:57,260 --> 00:15:01,270 Ale n znamená ve skutečnosti .c, neexistuje zásadní rozdíl mezi těmi 241 00:15:01,270 --> 00:15:02,100 dvě. 242 00:15:02,100 --> 00:15:06,650 Takže v tomto případě můžeme vidět, že jsme deklarovat rozhraní, kat: objekt. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 To se nazývá dědičnost. 245 00:15:13,760 --> 00:15:19,170 Jsme v podstatě dědění kočka třídy z třídy objektů. 246 00:15:19,170 --> 00:15:24,790 Takže každá vlastnost, a metoda, která byla dříve definovány ve třídě objektu 247 00:15:24,790 --> 00:15:28,560 bude automaticky definováno ve třídě kočky stejně. 248 00:15:28,560 --> 00:15:35,900 >> Kromě toho, definujeme barvu, plemeno, a věk, tři proměnné. 249 00:15:35,900 --> 00:15:39,360 To opravdu vypadá jako něco, co jste udělali předtím. 250 00:15:39,360 --> 00:15:41,770 Vypadá to, že struct. 251 00:15:41,770 --> 00:15:44,950 Že je v podstatě syntaxe o prohlášení struct, 252 00:15:44,950 --> 00:15:47,710 a že je zcela správný. 253 00:15:47,710 --> 00:15:51,825 A protože jsem se zmínil dříve, rozdíl struct 254 00:15:51,825 --> 00:15:53,960 a předmět, jeden z zásadní rozdíly 255 00:15:53,960 --> 00:15:59,080 je to, že předmět má způsob, zatímco struct má pouze proměnné. 256 00:15:59,080 --> 00:16:03,450 Takže kromě vlastností nebo proměnné jsme vytvořili pro objekt, 257 00:16:03,450 --> 00:16:05,700 určíme nějakou metodu. 258 00:16:05,700 --> 00:16:09,720 >> Řekněme, že tady máme dvě metody, jedna je mňau, 259 00:16:09,720 --> 00:16:12,460 Dalším z nich je chase myš. 260 00:16:12,460 --> 00:16:18,600 Pravděpodobně Chceme být absolvování parametr na základě naší předchozí metody 261 00:16:18,600 --> 00:16:20,440 prohlášení vzor. 262 00:16:20,440 --> 00:16:22,160 Pravděpodobně budete chtít být absolvování myši. 263 00:16:22,160 --> 00:16:25,180 A pravděpodobně budete chtít vrátit bool znamenat 264 00:16:25,180 --> 00:16:30,010 Pokud je vaše kočka má úspěšně chytil myš, nebo ne. 265 00:16:30,010 --> 00:16:33,170 >> Jedná se o rozhraní, ale můžeme vidět, že rozhraní skutečně 266 00:16:33,170 --> 00:16:35,150 nedělá nic. 267 00:16:35,150 --> 00:16:40,800 Je to jen řekne program, co exists-- to, co existuje ve třídě kočky. 268 00:16:40,800 --> 00:16:43,640 Tak, aby pro Program něco udělat, 269 00:16:43,640 --> 00:16:46,680 musíme mít implementace souborů. 270 00:16:46,680 --> 00:16:51,940 Tak tady je první věc, kterou děláme, je samozřejmě dovážíme rozhraní. 271 00:16:51,940 --> 00:16:56,470 Poté, co jsme importu rozhraní, definujeme metodu. 272 00:16:56,470 --> 00:17:00,150 >> Řekněme, že tady mňau by jen vytisknout 273 00:17:00,150 --> 00:17:01,740 "Hello World!" na konzoli. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 A po provedení soubor, jsme skoro hotové. 276 00:17:08,460 --> 00:17:14,530 To je v podstatě třída Prohlášení o jednu třídu. 277 00:17:14,530 --> 00:17:19,970 Takže teď vyvstává otázka, Jak se vám deklarovat proměnnou? 278 00:17:19,970 --> 00:17:26,880 Způsob, jakým použít třídu k vytvoření Je zde napsáno objekt v Objective C. 279 00:17:26,880 --> 00:17:30,730 >> Ty první určit, že to je ukazatel kočka, 280 00:17:30,730 --> 00:17:38,700 proto, že každý objekt v Objective C konečně implementován jako ukazatel. 281 00:17:38,700 --> 00:17:46,210 A říkáte třídu, volat jim jak je Alloc, který je v podstatě malloc, 282 00:17:46,210 --> 00:17:51,220 říká operační systém, který vám Potřebuji místo v paměti pro tento objekt. 283 00:17:51,220 --> 00:17:55,780 Poté budete mít objekt a už jste právě inicializovat. 284 00:17:55,780 --> 00:17:56,780 To je jen konvence. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Já vím, že je to je trochu divné, ale To je vlastně, jak Apple dělá věci. 287 00:18:04,410 --> 00:18:07,130 >> Přiřazení vlastností je vlastně docela jednoduché. 288 00:18:07,130 --> 00:18:09,250 Je to velmi podobné Co děláte, když 289 00:18:09,250 --> 00:18:13,780 jste přiřazení některé konkrétní pole uvnitř Struct. 290 00:18:13,780 --> 00:18:16,830 Musíte jen proměnnou jméno, název vlastnosti, 291 00:18:16,830 --> 00:18:20,140 a přiřadit konkrétní hodnotu k němu. 292 00:18:20,140 --> 00:18:24,120 A volání metody je velmi podobná. 293 00:18:24,120 --> 00:18:29,080 Volání metoda je v podstatě o čem mluvím 294 00:18:29,080 --> 00:18:32,390 pro volání do všech metodu cíl C. 295 00:18:32,390 --> 00:18:36,660 >> Ty předávání objektu, v v tomto případě to bude myCat, 296 00:18:36,660 --> 00:18:42,490 a vy jste předáním název metody. 297 00:18:42,490 --> 00:18:47,130 Jako by mluvíte k objektu, myCat, že byste měli mňoukat. 298 00:18:47,130 --> 00:18:48,570 Je to docela zajímavé. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Po tom, zde je jedna důležitější návrhový vzor 301 00:18:55,680 --> 00:18:59,940 že musíme hovořit o než se dostane do skutečného S kód. 302 00:18:59,940 --> 00:19:03,300 Tento návrhový vzor se nazývá událostmi řízené programování. 303 00:19:03,300 --> 00:19:09,660 To je také pravděpodobně jedním z nejvíce základní myšlenky v programování systému iOS. 304 00:19:09,660 --> 00:19:14,410 >> Takže si asi nevíte, co přesně je událostmi řízené programování, 305 00:19:14,410 --> 00:19:16,990 ale to není opravdu tak děsivé. 306 00:19:16,990 --> 00:19:20,400 No ve skutečnosti, budete mít Již udělal předtím. 307 00:19:20,400 --> 00:19:24,894 To je jedna z linek, které jste pravděpodobně již psali v minulém [neslyšitelné] 308 00:19:24,894 --> 00:19:26,810 of CS50, google.maps.event.addListener (značka, 309 00:19:26,810 --> 00:19:27,810 "Click", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Voláním tento řádek jste v podstatě říká počítač 312 00:19:37,620 --> 00:19:42,650 že vždy, když volal událost "Klepněte na tlačítko" děje na značku, 313 00:19:42,650 --> 00:19:43,630 použijte tuto funkci. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> To je velmi odlišné od to, co dělat v mario.c. 316 00:19:50,950 --> 00:19:56,670 V mario.c stačí spustit program jednou, to vám dává výstup, 317 00:19:56,670 --> 00:19:58,590 a máte hotovo. 318 00:19:58,590 --> 00:20:02,590 Jedná se o něco jako One Shot programy. 319 00:20:02,590 --> 00:20:05,830 Událostmi řízené programy jsou velmi, velmi odlišné. 320 00:20:05,830 --> 00:20:10,230 Pojďme si představit, pokud Facebook je jedna záběr programu to není opravdu dobrá. 321 00:20:10,230 --> 00:20:13,750 Prostě jít na Facebook jednou a je to hotovo. 322 00:20:13,750 --> 00:20:16,700 To vám dává nějaký výstup a nikdy ho dostal zpátky. 323 00:20:16,700 --> 00:20:19,380 Ty nikdy nic víc. 324 00:20:19,380 --> 00:20:23,880 >> Tak tady, a to zejména vzor používáme je 325 00:20:23,880 --> 00:20:26,940 události řízené, takže každá funkce bude 326 00:20:26,940 --> 00:20:31,480 být zachycen na základě toho, co Akce se stalo. 327 00:20:31,480 --> 00:20:34,670 Například, pokud máme tlačítko a určíme 328 00:20:34,670 --> 00:20:39,870 že kdykoli se, že kliknutí na tlačítko, volání funkce s názvem "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Tímto způsobem můžeme opravdu spravovat funkce logiku 330 00:20:47,810 --> 00:20:50,560 průtok ve velmi flexibilně. 331 00:20:50,560 --> 00:20:55,840 Uživatel si může dělat, nebo volání funkce , která již byla volána. 332 00:20:55,840 --> 00:20:59,900 Je to zcela na základě toho, co uživatelé dělají. 333 00:20:59,900 --> 00:21:04,080 >> Takže můžeme vidět, že je to ve skutečnosti mnohem lépe než mario.c. 334 00:21:04,080 --> 00:21:07,190 A dobrá zpráva je, že je to ve skutečnosti není nový koncept. 335 00:21:07,190 --> 00:21:12,140 Vy jste tak již učinili že v poslední problém nastavit. 336 00:21:12,140 --> 00:21:16,640 Takže v Objective C existují tři různé diagramy 337 00:21:16,640 --> 00:21:19,030 pro událostmi řízené programování. 338 00:21:19,030 --> 00:21:21,970 První diagram volal cíl akce, 339 00:21:21,970 --> 00:21:26,990 kde svázat tlačítko lis s nějakou funkcí. 340 00:21:26,990 --> 00:21:31,590 Řekněme, že vždy, když klepnete na tlačítko některé tlačítko, volání nějaké funkce. 341 00:21:31,590 --> 00:21:33,620 To je velmi jednoduchý cíl akce. 342 00:21:33,620 --> 00:21:35,580 >> Druhý z nich je vlastně nejtěžší, 343 00:21:35,580 --> 00:21:38,450 je to jen delegace na protokolu. 344 00:21:38,450 --> 00:21:41,800 Budeme vysvětlovat že velmi podrobně později. 345 00:21:41,800 --> 00:21:44,420 A třetí způsob je oznámení. 346 00:21:44,420 --> 00:21:46,770 To je ve skutečnosti není velmi důležité, protože pokud 347 00:21:46,770 --> 00:21:50,920 jak jsme znepokojen, protože šance že budete používat oznámení 348 00:21:50,920 --> 00:21:53,310 v konečném projektu je velmi nízká. 349 00:21:53,310 --> 00:21:56,440 Takže budeme přeskočit tuto část. 350 00:21:56,440 --> 00:21:59,460 >> A budeme se potápět v delegaci na protokolu. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Takže co přesně je protokol? 353 00:22:04,470 --> 00:22:06,450 Nebo co přesně je delegace? 354 00:22:06,450 --> 00:22:09,670 Pojďme se bavit o protokol začít. 355 00:22:09,670 --> 00:22:13,360 Protokoly nejsou nic jiného než akce. 356 00:22:13,360 --> 00:22:19,230 Ale tyto události jsou uvedeny na vás Apple začít. 357 00:22:19,230 --> 00:22:22,640 Například, já nejsem zcela jistý, jak mnozí z vás 358 00:22:22,640 --> 00:22:27,930 kluci používat Apple originál app mail nebo kontakt, 359 00:22:27,930 --> 00:22:32,180 ale pokaždé, když se posunete stůl a stiskněte konkrétní buňku 360 00:22:32,180 --> 00:22:36,130 na stole, to je událost. 361 00:22:36,130 --> 00:22:38,330 >> A pokud si chcete udělat že událost sami, 362 00:22:38,330 --> 00:22:40,410 je to vlastně trochu tvrdý. 363 00:22:40,410 --> 00:22:44,880 Takže Apple dal, že i pro vás takže stačí přímo použít 364 00:22:44,880 --> 00:22:49,610 událost něco udělat na vlastní pěst. 365 00:22:49,610 --> 00:22:52,980 Protokoly jsou vlastně opravdu, ale opravdu široce používán 366 00:22:52,980 --> 00:22:58,320 v Objective C. dobře Skutečnost, každý app 367 00:22:58,320 --> 00:23:00,870 Má něco chytil app delegáta. 368 00:23:00,870 --> 00:23:06,330 Uvnitř delikátní je všechny protokoly pro načítání aplikace. 369 00:23:06,330 --> 00:23:12,470 >> Řekněme, že je zde akce pro cca udělal zatížení. 370 00:23:12,470 --> 00:23:18,200 Takže to, co by se mělo stát poté, co jste vytvořil aplikaci, po otevření aplikace, 371 00:23:18,200 --> 00:23:22,630 Po zavření aplikace, nebo po si dát iPhone do režimu spánku. 372 00:23:22,630 --> 00:23:27,480 To vše jsou události, které má již byly poskytnuty na vás. 373 00:23:27,480 --> 00:23:34,730 A původně uvnitř těchto částic nebude realizace. 374 00:23:34,730 --> 00:23:39,750 Apple vám právě řekl, že tuto funkci se stane, když se někteří události dojde, 375 00:23:39,750 --> 00:23:44,380 ale to, co dělat s tím Funkce je zcela na vás. 376 00:23:44,380 --> 00:23:49,290 >> Delegování je v podstatě říká třídu 377 00:23:49,290 --> 00:23:53,060 že byste měli zvládnout tyto protokoly. 378 00:23:53,060 --> 00:23:55,340 Je to trochu matoucí, ale to bude 379 00:23:55,340 --> 00:23:59,380 mnohem jasnější, když děláme se s kódy v akci. 380 00:23:59,380 --> 00:24:04,760 Delegace na protokolu je vlastně velmi robustní mechanismus v tom smyslu, 381 00:24:04,760 --> 00:24:08,160 že pokud budeme dělat delegaci do určité třídy, 382 00:24:08,160 --> 00:24:12,400 můžeme v podstatě zvládnout všechny druhy akcí 383 00:24:12,400 --> 00:24:17,040 pomocí libovolného třídy máme, velmi pohodlný nástroj. 384 00:24:17,040 --> 00:24:21,530 >> Takže jeden rychlý příklad pro delegace na protokolu 385 00:24:21,530 --> 00:24:24,120 bude to, co jsem právě mluvil o. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Tento protokol konkrétně se nazývá TableView [neslyšitelné] vyberte roli 388 00:24:30,890 --> 00:24:35,480 V [? index?] [? minulost. ?] Takže to událost, která by se chytil, když vás 389 00:24:35,480 --> 00:24:39,710 vlastně klepněte na konkrétní buňka ve vašem TableView, 390 00:24:39,710 --> 00:24:43,570 řekněme, že ve vašem mailu nebo v kontaktech aplikace. 391 00:24:43,570 --> 00:24:48,180 >> Uvnitř funkce byl původně dělat nic. 392 00:24:48,180 --> 00:24:51,950 Funkce není dělat nic ve výchozím nastavení. 393 00:24:51,950 --> 00:24:55,540 Ale můžete zadat co funkce dělá, 394 00:24:55,540 --> 00:24:59,610 vzhledem k tomu, co chcete z vaší aplikace. 395 00:24:59,610 --> 00:25:01,610 Velmi vhodný nástroj. 396 00:25:01,610 --> 00:25:06,840 A s tím vším Jak již bylo řečeno, jsem v podstatě 397 00:25:06,840 --> 00:25:11,430 pokrývají některé velmi základní syntaxe a Základním konceptem pro Objective C 398 00:25:11,430 --> 00:25:15,860 programování, a můžeme udělat nějaké y kód. 399 00:25:15,860 --> 00:25:17,980 Mnohem více vzrušující. 400 00:25:17,980 --> 00:25:21,070 Takže je kód je ve skutečnosti trochu ohromující 401 00:25:21,070 --> 00:25:23,330 když jej otevřete poprvé. 402 00:25:23,330 --> 00:25:26,640 >> Jeden rychlý poznámka, takže pokud máte Chcete udělat iOS rozvoje 403 00:25:26,640 --> 00:25:29,630 Velmi doporučuji máte Mac. 404 00:25:29,630 --> 00:25:33,930 Vzhledem k tomu, dělat iOS vývoj na Windows je opravdu, opravdu těžké. 405 00:25:33,930 --> 00:25:37,560 Je to proveditelné, ale je to opravdu těžké. 406 00:25:37,560 --> 00:25:40,610 A určitě dělat nebudete chtít používat g upravit. 407 00:25:40,610 --> 00:25:47,950 Takže s kódem máme několik různých oblastí. 408 00:25:47,950 --> 00:25:53,050 Při prvním otevření se s code uvidíte navigační oblasti, 409 00:25:53,050 --> 00:25:57,470 který v podstatě vám ukáže všechny soubory, které je v aktuálním projektu. 410 00:25:57,470 --> 00:26:03,590 >> Máte panel nástrojů prostor, který je v podstatě řídící názory, 411 00:26:03,590 --> 00:26:08,570 nebo nějaký malý rychlý Nástroje asi s kódem sám. 412 00:26:08,570 --> 00:26:11,140 A to je skutečná editor oblast. 413 00:26:11,140 --> 00:26:15,900 Tato oblast je velmi podobný g editovat, ale mnohem lepší, než g editovat. 414 00:26:15,900 --> 00:26:21,150 A v této pravé části, je volal užitná plocha. 415 00:26:21,150 --> 00:26:27,170 Oblast se stává opravdu vhod, když budete vytvářet rozhraní nebo zadáním 416 00:26:27,170 --> 00:26:30,070 Některé rychlé nastavení pro vaši aplikaci. 417 00:26:30,070 --> 00:26:34,570 >> A poslední oblastí je ladění. 418 00:26:34,570 --> 00:26:37,970 Tato oblast obsahuje konzolu. 419 00:26:37,970 --> 00:26:43,170 Takže vždy, když říkáte printf, nebo NSLog v našem případě, 420 00:26:43,170 --> 00:26:47,330 všechny vaše výsledky jsou bude vytištěn zde. 421 00:26:47,330 --> 00:26:48,260 V pořádku? 422 00:26:48,260 --> 00:26:52,090 Myslím, že můžeme velmi rychle udělat Příkladem pro programování iOS. 423 00:26:52,090 --> 00:26:54,220 A pojďme vlastně otevřít s kód. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Takže pokaždé, když otevřou s kód, to je ukážu něco takového. 426 00:27:01,346 --> 00:27:03,220 Bude se vás zeptat Co chcete dělat? 427 00:27:03,220 --> 00:27:06,830 Chcete začít něco náhodný, dětské hřiště, v podstatě ty 428 00:27:06,830 --> 00:27:11,250 si jen vyzkoušet kód bez ve skutečnosti se zavázat, že jakékoliv aplikace. 429 00:27:11,250 --> 00:27:13,020 >> Chcete vytvořit nový projekt? 430 00:27:13,020 --> 00:27:16,660 Nebo chcete, aby i nadále práce na stávajícím projektu? 431 00:27:16,660 --> 00:27:20,270 V našem případě budeme k vytvoření nového projektu. 432 00:27:20,270 --> 00:27:22,980 Takže je to opravdu pěkné, s Kód ve skutečnosti již 433 00:27:22,980 --> 00:27:26,820 vám dal nějaké šablony pro vytváření objektů. 434 00:27:26,820 --> 00:27:32,680 Pokud si chcete udělat hru, to kód ve skutečnosti má herní šablonu pro vás, 435 00:27:32,680 --> 00:27:36,890 má strana na základě žádosti, Karta aplikace založené. 436 00:27:36,890 --> 00:27:39,280 V tomto případě, budeme udělat něco velmi jednoduchého, 437 00:27:39,280 --> 00:27:43,230 a budeme používat jedna žádost pohled. 438 00:27:43,230 --> 00:27:48,270 >> Po tom, co chcete volat Váš produkt, a to, co je vaše jméno, 439 00:27:48,270 --> 00:27:52,760 Jaký je váš identifikátor, a Jaký jazyk používáte. 440 00:27:52,760 --> 00:27:57,060 Zde se nechceme zkontrolovat pomocí základní údaje. 441 00:27:57,060 --> 00:28:00,170 Jádro dat je v podstatě databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Pokud tak učiníte základních údajů, s kód bude definovat 443 00:28:05,360 --> 00:28:07,710 mnohem složitější třídy pro vás. 444 00:28:07,710 --> 00:28:12,740 Tak, aby vše jednoduché, my jsme prostě dělat bez základních údajů 445 00:28:12,740 --> 00:28:15,290 právě teď. 446 00:28:15,290 --> 00:28:18,030 >> Problém budeme mít použití je that-- problému 447 00:28:18,030 --> 00:28:23,770 budeme třeba vytvářet je, že jsme v podstatě chcete importovat Mario z C 448 00:28:23,770 --> 00:28:25,437 do aplikace iOS. 449 00:28:25,437 --> 00:28:26,645 Tak řekněme, že Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Samozřejmě určíte, co vás chtějí, aby v projektu. 452 00:28:34,880 --> 00:28:37,870 A tam jdeme. 453 00:28:37,870 --> 00:28:41,390 >> Tak tohle je trochu ohromující, ale to je ve skutečnosti 454 00:28:41,390 --> 00:28:43,540 to, co jsme právě viděli na snímcích. 455 00:28:43,540 --> 00:28:49,710 A první oblast vidíme právě teď je v podstatě nastavení projektu. 456 00:28:49,710 --> 00:28:53,390 Takže vše, co chcete dělat projekt, jaký druh zařízení, 457 00:28:53,390 --> 00:28:58,810 řekněme, že to, co druh zařízení Chcete, aby vaše aplikace se objeví na? 458 00:28:58,810 --> 00:29:01,280 Je to iPhone, iPad nebo univerzální? 459 00:29:01,280 --> 00:29:04,660 Takže orientace zařízení, všechny ty věci. 460 00:29:04,660 --> 00:29:08,490 Není příliš důležité, ale může být, ale toto 461 00:29:08,490 --> 00:29:11,050 je místo, kde můžete nastavit Váš projekt, pokud jste skutečně 462 00:29:11,050 --> 00:29:15,180 chtějí nasadit do obchodu Apple. 463 00:29:15,180 --> 00:29:20,420 >> Dobře, pojďme se podívat na něco, co je v našem kódu. 464 00:29:20,420 --> 00:29:22,360 Pojďme projít souboru navigátoru. 465 00:29:22,360 --> 00:29:30,140 A to jsou všechny soubory, které již přišel s šablony, velmi pěkné. 466 00:29:30,140 --> 00:29:35,980 Takže když jsme se na jednu z nich to je to, co to vypadá. 467 00:29:35,980 --> 00:29:38,530 Velmi podobné g editovat. 468 00:29:38,530 --> 00:29:41,340 Ale je vidět, že zvýrazňování syntaxe je pravděpodobně 469 00:29:41,340 --> 00:29:42,780 trochu hezčí. 470 00:29:42,780 --> 00:29:45,610 A to je ve skutečnosti mnohem víc mocnější než editaci g. 471 00:29:45,610 --> 00:29:49,970 A můžete auto kompletní spousta věcí pro vás, 472 00:29:49,970 --> 00:29:52,370 jak uvidíme velmi rychle. 473 00:29:52,370 --> 00:29:54,100 >> Pojďme otevřít ladění oblast stejně. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Dobře, jak můžeme vidět, konzole je tady. 476 00:30:07,000 --> 00:30:13,840 To je to, co budete vidět, kde jste v printf nebo nsloging něco. 477 00:30:13,840 --> 00:30:17,155 Takže bez dalších okolků, pojďme vlastně sestavit aplikaci a uvidíme, co se stane. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Jeden zásadní vlastnost pro s kód, je to, že s kód 480 00:30:23,410 --> 00:30:25,850 přichází s iPhone simulátoru. 481 00:30:25,850 --> 00:30:29,820 Takže nemusíte mít iPhone vyzkoušet váš projekt, 482 00:30:29,820 --> 00:30:34,440 s kód může simulovat, že pro vy, jak můžeme vidět hned teď. 483 00:30:34,440 --> 00:30:36,406 >> Je to docela pěkné. 484 00:30:36,406 --> 00:30:38,640 Je to brát trochu trochu času při sestavování 485 00:30:38,640 --> 00:30:43,040 a v podstatě máme prázdný aplikace, 486 00:30:43,040 --> 00:30:44,640 který vlastně nic nedělá. 487 00:30:44,640 --> 00:30:46,175 Ale to sestavuje. 488 00:30:46,175 --> 00:30:47,380 Je to dost děsivý. 489 00:30:47,380 --> 00:30:50,200 Je to mnohem lepší, než C, co? 490 00:30:50,200 --> 00:30:52,130 Dobře, tak pojďme zkuste něco přidat. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Jeden soubor, který je trochu Zde divný se nazývá scénář. 493 00:31:02,650 --> 00:31:08,020 To je vlastně skvělý, úžasné funkce pro s kódem. 494 00:31:08,020 --> 00:31:14,170 Vzhledem k tomu, v s kódem, můžete skutečně drag a pokles prvků na rozhraní 495 00:31:14,170 --> 00:31:17,430 a to se přímo zobrazí. 496 00:31:17,430 --> 00:31:18,055 Zkusme to. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Máme pokles štítek tady, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Můžeme centrum, které. 500 00:31:29,740 --> 00:31:30,970 Docela v pohodě. 501 00:31:30,970 --> 00:31:33,915 A teď pojďme spustit tuto zastavení simulace. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Zde máme "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Neměli jsme ani dělat ještě žádné kódování. 505 00:31:40,810 --> 00:31:42,750 Co to sakra děje? 506 00:31:42,750 --> 00:31:45,880 To je, jak silný Interface Builder může být. 507 00:31:45,880 --> 00:31:48,030 Někdo dokonce řekl, že Můžete si asi jen 508 00:31:48,030 --> 00:31:52,800 dokončit aplikaci bez písemného Pravděpodobně tisíc řádků kódu 509 00:31:52,800 --> 00:31:54,820 pouze pomocí rozhraní Builder. 510 00:31:54,820 --> 00:31:59,680 Ale to asi není nejlepší způsob, jak to udělat. 511 00:31:59,680 --> 00:32:01,670 >> Nyní pojďme skutečně dostat až na kódování. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Takže struktury souboru je ve skutečnosti opravdu zajímavé 514 00:32:08,330 --> 00:32:15,610 protože, jak můžete vidět, tam není hlavní funkcí kdekoliv. 515 00:32:15,610 --> 00:32:17,466 Vidíš? 516 00:32:17,466 --> 00:32:19,340 Jak již bylo řečeno, můžete vidět, že to 517 00:32:19,340 --> 00:32:22,830 je soubor implementace pro konkrétní třídu. 518 00:32:22,830 --> 00:32:25,690 Ale není tam žádný hlavní nikde. 519 00:32:25,690 --> 00:32:27,490 Takže kde je hlavní? 520 00:32:27,490 --> 00:32:31,970 Ve skutečnosti je hlavní, ale Hlavní je vlastně skrývá od vás. 521 00:32:31,970 --> 00:32:34,560 Hlavní je tady. 522 00:32:34,560 --> 00:32:37,120 To vypadá povědomě. 523 00:32:37,120 --> 00:32:41,000 >> Takže v podstatě to, co iOS dělá uvnitř hlavní 524 00:32:41,000 --> 00:32:43,540 je to, že vždy, když hlavní je s názvem, který je v podstatě 525 00:32:43,540 --> 00:32:49,000 vždy, když je aplikace spuštěn, vytvoří objekt s názvem AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Jak jsem již zmínil dříve, celý aplikace je vlastně objekt sám o sobě. 528 00:32:57,350 --> 00:33:02,270 Takže tímto způsobem, v podstatě iOS app říká kompilátoru 529 00:33:02,270 --> 00:33:05,540 to v pořádku, budu vytvářet produkt s názvem AppDelegate, 530 00:33:05,540 --> 00:33:07,620 a to bude moje app. 531 00:33:07,620 --> 00:33:09,640 Takže budete muset jít prostřednictvím tohoto AppDelegate 532 00:33:09,640 --> 00:33:12,040 a uvidíme, co ten člověk dělá. 533 00:33:12,040 --> 00:33:14,850 Moje práce je pro mě udělal. 534 00:33:14,850 --> 00:33:22,070 >> A v AppDelegate můžete vidět, že tam jsou některé opravdu podivné funkce, 535 00:33:22,070 --> 00:33:25,290 dobře vlastně metody, které Apple už dal. 536 00:33:25,290 --> 00:33:27,464 Co je tohle? 537 00:33:27,464 --> 00:33:31,010 Jsou to vlastně jen protokoly že jsem mluvil. 538 00:33:31,010 --> 00:33:35,670 Tak to jsou události, které Apple vám dal začít. 539 00:33:35,670 --> 00:33:38,050 Na tom není nic v některých funkce právě teď, 540 00:33:38,050 --> 00:33:40,820 ale pokud chceme inicializovat něco pro naši aplikaci 541 00:33:40,820 --> 00:33:46,140 než se dostane do zobrazením jakýkoli názor, uděláme tady. 542 00:33:46,140 --> 00:33:51,150 >> Stačí si jen přečíst název a myslím, že akce je ve skutečnosti úplně jasné. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Takže teď hlavní vytvořil objekt pro AppDelegate. 545 00:33:58,350 --> 00:34:05,220 A co AppDelegate bude dělat je vlastně také skrytý od vás. 546 00:34:05,220 --> 00:34:09,250 AppDelegate se začnou načítání zásob ViewController. 547 00:34:09,250 --> 00:34:13,170 Takže je to v podstatě začnou naložení do všechny pohledy, které máte 548 00:34:13,170 --> 00:34:17,500 a jen vykreslit názor založený na hierarchii. 549 00:34:17,500 --> 00:34:21,280 >> Takže v tomto případě máme jen jeden názor, který je tady. 550 00:34:21,280 --> 00:34:25,060 Tak to je jen názor že to bude říkat. 551 00:34:25,060 --> 00:34:28,159 Logika ViewController je tady. 552 00:34:28,159 --> 00:34:32,159 To je kód, který skutečně ovládá názor, jsme právě viděli. 553 00:34:32,159 --> 00:34:33,679 Dobře, pojďme udělat něco tady. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Takže viewDidLoad zní jako událost, i když ve skutečnosti je to také delegát, 556 00:34:50,560 --> 00:34:52,500 To je také protokol. 557 00:34:52,500 --> 00:34:56,350 >> Takže bez ohledu na názor je načten, Vše uvnitř funkce 558 00:34:56,350 --> 00:34:57,920 se bude jmenovat. 559 00:34:57,920 --> 00:35:02,840 V tomto případě bychom měli vidět "Hello Tianyu! ", Pokud jsme se spustit program. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Začíná to být trochu pomalý sestavování scénáře, souborů. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 No samozřejmě, my vidět výstup pro něj. 564 00:35:18,190 --> 00:35:20,720 Je to docela v pohodě. 565 00:35:20,720 --> 00:35:22,000 Nyní se vlastně dělat Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Budu definovat velmi rychle fungovat. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: výsledky (int) úrovni. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Dobře, to je vlastně úžasné znakem s kódem auto dokončení. 572 00:36:06,410 --> 00:36:10,680 Takže když budete psát pro a typ vstoupit, to už vzdal šablony 573 00:36:10,680 --> 00:36:12,325 pro vás, což je docela v pohodě. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 To by mělo vypadat opravdu znáte lidi. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Je nám líto, že je to moje chyba. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Dobře, v pohodě. 580 00:37:18,120 --> 00:37:22,710 Tato logika by měla vypadat opravdu povědomý na vámi, zejména právě Mario. 581 00:37:22,710 --> 00:37:26,140 >> Ale my se nyní tisknout na konzole pokaždé, 582 00:37:26,140 --> 00:37:29,280 proto, že chceme, aby nějak zachovat track z toho, co se tiskne. 583 00:37:29,280 --> 00:37:31,810 Budeme používat Výsledky nějak později, 584 00:37:31,810 --> 00:37:35,010 zobrazit tisku out vést k uživateli. 585 00:37:35,010 --> 00:37:37,730 Takže místo toho jsme jen nslogging všechno, 586 00:37:37,730 --> 00:37:42,410 který jsme skladování vše v důsledku volání funkce, 587 00:37:42,410 --> 00:37:44,070 ale logika je úplně stejný. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Poté, co jsme ji, skončíme jen vytisknout naše výsledky. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> A tady místo tisku na mé název, budeme volat funkci. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Podívejme se, co se stane. 594 00:38:18,090 --> 00:38:21,240 Jejda, samozřejmě. 595 00:38:21,240 --> 00:38:24,320 Máme pěkný malá pyramida tady. 596 00:38:24,320 --> 00:38:28,370 To je v podstatě C, jsme jen manipulaci kde volání funkce 597 00:38:28,370 --> 00:38:30,010 a jak se funkce vypadat. 598 00:38:30,010 --> 00:38:31,560 Na tom není nic jiného. 599 00:38:31,560 --> 00:38:34,040 To je však ve skutečnosti není příliš vzrušující tady, 600 00:38:34,040 --> 00:38:37,500 protože nejsme svědky něco z aplikace pro iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Takže pokud jste skutečně iPhone app-- pokud jste skutečně Mario iOS právo 602 00:38:42,120 --> 00:38:45,080 teď, nebudeš vidět nic, co by 603 00:38:45,080 --> 00:38:49,450 má co do činění s Mariem, protože všechny tyto výstupy do konzole 604 00:38:49,450 --> 00:38:51,620 jsou skryté od uživatele. 605 00:38:51,620 --> 00:38:53,850 To je to, co vidíte, což je "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 To není dobré. 607 00:38:55,720 --> 00:39:03,090 Nyní se snaží, aby se uživateli zobrazí co přesně jsme tisk. 608 00:39:03,090 --> 00:39:06,000 Takže nemusíme označit ještě. 609 00:39:06,000 --> 00:39:09,800 Zkusme a něco vymyslíme jiného, ​​co by mohlo být užitečné. 610 00:39:09,800 --> 00:39:12,140 >> Tam je skutečně jedna prvek, který se nazývá 611 00:39:12,140 --> 00:39:16,460 textové pole, které by mohly být velmi užitečné pro nás. 612 00:39:16,460 --> 00:39:19,880 Je to v podstatě zobrazuje oblast Text, který může být upraven. 613 00:39:19,880 --> 00:39:22,320 Takže to vypadá opravdu užitečné. 614 00:39:22,320 --> 00:39:23,810 Nyní pojďme ji přetáhněte a umístěte jej. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, máme textový výhled podle našeho názoru, opravdu fantazie. 617 00:39:32,670 --> 00:39:35,430 To je trochu moc velký. 618 00:39:35,430 --> 00:39:38,150 Pojďme dělat to menší. 619 00:39:38,150 --> 00:39:40,290 Dej to do centra města. 620 00:39:40,290 --> 00:39:43,760 Ať je to menší stejně. 621 00:39:43,760 --> 00:39:50,110 >> Nyní máme textový výhled, který jsme mohli být použity k zobrazení našeho konečného výsledku. 622 00:39:50,110 --> 00:39:52,860 Ale teď je to rozhodně nebude chodit do práce 623 00:39:52,860 --> 00:39:56,970 protože tam je no-- ViewController jsme právě 624 00:39:56,970 --> 00:40:03,010 definované neví, že je textový pohled venku. 625 00:40:03,010 --> 00:40:06,550 Proto musíme nějak propojit text názoru jsme právě 626 00:40:06,550 --> 00:40:11,660 vytvořený s třídou, která již přišel s námi. 627 00:40:11,660 --> 00:40:14,860 >> Způsob, jakým to udělat, je ve skutečnosti opravdu kouzelné. 628 00:40:14,860 --> 00:40:18,190 Takže otevřít scénář. 629 00:40:18,190 --> 00:40:22,220 K dispozici je speciální [neslyšitelné] s názvem [? asistent?] [neslyšitelné]. 630 00:40:22,220 --> 00:40:25,190 Po klepnutí na to, že to je chystá otevřít dva soubory. 631 00:40:25,190 --> 00:40:29,425 Jedním z nich je třída a druhý je odpovídající pohled na to. 632 00:40:29,425 --> 00:40:31,920 Je to velmi, velmi užitečné. 633 00:40:31,920 --> 00:40:35,950 A pojďme právě prochází soubor .h. 634 00:40:35,950 --> 00:40:39,110 Control, to je [neslyšitelný] logika. 635 00:40:39,110 --> 00:40:47,280 Stiskněte Ctrl a přetáhněte Text Pohled do prohlášení. 636 00:40:47,280 --> 00:40:48,780 Budeme říkat, že outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Připojit. 639 00:40:53,670 --> 00:40:59,420 Takže tady máme prohlásil nový vlastnost pro naši ViewController třídu. 640 00:40:59,420 --> 00:41:02,300 A nová vlastnost je jen textový názor 641 00:41:02,300 --> 00:41:05,000 jsme vytvořili v budově rozhraní. 642 00:41:05,000 --> 00:41:07,990 Takže tímto způsobem bychom mohli přístup ke všem datům 643 00:41:07,990 --> 00:41:13,630 a manipulovat vše, co je uvnitř výstup názor, což je úžasné. 644 00:41:13,630 --> 00:41:19,260 >> Takže v našem skutečném kódu pojďme něco udělat s ním. 645 00:41:19,260 --> 00:41:23,810 Takže to doba, kdy jsme jako tisk out konečném výsledku pro Mario, 646 00:41:23,810 --> 00:41:28,020 jsme v nepřihlašuje nic. 647 00:41:28,020 --> 00:41:30,080 Mám na mysli můžeme udržet prohlášení protokolování. 648 00:41:30,080 --> 00:41:41,490 Kromě toho, abychom poslat odečtu jsme právě 649 00:41:41,490 --> 00:41:47,622 vytvořené na výstupní pohledu, který je UI TextView jsme právě vytvořili. 650 00:41:47,622 --> 00:41:48,746 Nyní se podívejme, co se stane. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Wow. 653 00:41:56,620 --> 00:41:59,130 Máme pyramidu v aplikaci právě teď. 654 00:41:59,130 --> 00:42:06,720 >> Takže uživatel může vidět naši produkci z důvodu jsme zkopírovali výstup z našeho kódu 655 00:42:06,720 --> 00:42:08,045 do našeho rozhraní. 656 00:42:08,045 --> 00:42:10,950 Je to docela dobrý. 657 00:42:10,950 --> 00:42:14,990 Je to vlastně není tak vzrušující, protože jsme can-- 658 00:42:14,990 --> 00:42:18,250 Všechny aplikace dělá, je ukazující pyramidu na vás, 659 00:42:18,250 --> 00:42:20,520 a není to nic, co můžete dělat. 660 00:42:20,520 --> 00:42:22,330 Je to nijak zvlášť vzrušující. 661 00:42:22,330 --> 00:42:27,840 Takže teď pojďme udělat tlačítko že bude jasné názory. 662 00:42:27,840 --> 00:42:30,290 Zdá se, že tlačítko bude užitečné. 663 00:42:30,290 --> 00:42:33,270 Drag and drop. 664 00:42:33,270 --> 00:42:33,900 Button jeden. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Button dva. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Takže když jsme klikněte levým tlačítko, pohled by se měly odstranit. 669 00:42:52,052 --> 00:42:53,635 Mělo by být nic, co na obrazovce. 670 00:42:53,635 --> 00:42:56,970 A když jsme potom klikněte na tlačítko pravým tlačítkem, Mario, 671 00:42:56,970 --> 00:42:59,740 pohled bude opět objevit. 672 00:42:59,740 --> 00:43:05,510 Tak takhle uděláme také magie věci, řízení a táhnout 673 00:43:05,510 --> 00:43:08,740 k deklaraci třídy V asistent director-- 674 00:43:08,740 --> 00:43:11,600 V asistent prohlížeč. 675 00:43:11,600 --> 00:43:18,620 V tomto případě se zadáním že by měly být akce. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> Tak tady jsme již vytvořili akce s názvem clearMario, 679 00:43:26,830 --> 00:43:34,210 což je způsob, který by byl nazýván vždy, když stiskneme tlačítko jasné. 680 00:43:34,210 --> 00:43:41,030 Takže v našem vlastně kód, řekněme dal výstupní text a výstupní názor 681 00:43:41,030 --> 00:43:44,620 do ničeho, a že cesta to bude vypadat, že je jasné. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Kromě toho, že si vytvoříme jiná metoda tzv runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh promiň, že by neměl být majetek. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Dobře, že by se akce také. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> A když se tato funkce je volal, my stačí spustit Mario deset. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Doufejme, že to bude v pořádku. 692 00:44:39,780 --> 00:44:41,120 Má to sestavit? 693 00:44:41,120 --> 00:44:43,920 Ano. 694 00:44:43,920 --> 00:44:45,090 Nyní máme výhled. 695 00:44:45,090 --> 00:44:46,560 Máme výstup. 696 00:44:46,560 --> 00:44:50,040 A ať to prostě vidět, co se stane. 697 00:44:50,040 --> 00:44:52,590 To je pryč. 698 00:44:52,590 --> 00:44:54,500 To je zase zpátky. 699 00:44:54,500 --> 00:44:57,620 Tak tady jsme stanovili jaké funkce 700 00:44:57,620 --> 00:45:00,400 se bude jmenovat, pokud napíšeme v něčem, 701 00:45:00,400 --> 00:45:03,160 když stiskneme konkrétní tlačítko. 702 00:45:03,160 --> 00:45:07,890 To je v podstatě cíl akce schéma 703 00:45:07,890 --> 00:45:12,510 pro událost řízený programování v Objective C 704 00:45:12,510 --> 00:45:15,030 >> Kromě toho, to není moc vzrušující 705 00:45:15,030 --> 00:45:19,810 proto, že jsme si to moc měnit jak vysoko pyramida bude, 706 00:45:19,810 --> 00:45:23,640 tak jsme asi chtěli nějak získat vstup od uživatele 707 00:45:23,640 --> 00:45:29,490 a měnit výšku pyramida na základě toho, co výstupu. 708 00:45:29,490 --> 00:45:32,900 Takže budeme dělat, že. 709 00:45:32,900 --> 00:45:38,720 Takže tentokrát, když říkáme runMario, nemáme jen zavolat Mário přímo. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Tahle je titul. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegáta. 714 00:46:23,700 --> 00:46:25,160 To je velmi zajímavé. 715 00:46:25,160 --> 00:46:26,720 Co je to delegát? 716 00:46:26,720 --> 00:46:28,950 Chystám se dát já tady. 717 00:46:28,950 --> 00:46:31,038 A budeme vidět co to znamená později. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Tak tady jsme v podstatě vytvořili konkrétní příklad volal upozornění UI 720 00:46:51,120 --> 00:46:52,210 view. 721 00:46:52,210 --> 00:46:54,440 Pohled UI výstraha v podstatě to, co bude 722 00:46:54,440 --> 00:46:58,940 viz Každý, když něco popy up a požádá vás o vstup, 723 00:46:58,940 --> 00:47:03,080 jako to, co se stane, když se snažíte něco koupit na App Store. 724 00:47:03,080 --> 00:47:14,250 >> Kromě toho, že po vás vytvořit, jsme jen ukázat záznam. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Dobře, ať to prostě rychle Test bude, že práce, nebo ne. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 To je velmi cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Nyní pojďme vlastně vytvořit vstupní pole pro záznam UI. 731 00:47:59,120 --> 00:48:01,170 To je, jak to uděláme. 732 00:48:01,170 --> 00:48:07,490 A měli bychom mít Vstup výhled na pohotovosti. 733 00:48:07,490 --> 00:48:09,020 Velmi cool. 734 00:48:09,020 --> 00:48:12,330 Řekněme, že 10. 735 00:48:12,330 --> 00:48:14,900 >> Není to něco dělat pravý nyní, protože volání skutečně 736 00:48:14,900 --> 00:48:17,770 nezměnila pro provádění Mario. 737 00:48:17,770 --> 00:48:23,470 Tak se to stalo trochu trochu divné, protože vždy, když 738 00:48:23,470 --> 00:48:30,790 stiskneme tlačítko dolů, kdykoli jsme stisknutí tlačítka v zobrazení výstrahy, 739 00:48:30,790 --> 00:48:35,560 se něco stalo, ale to se nestane. 740 00:48:35,560 --> 00:48:37,220 Jak chytit, že? 741 00:48:37,220 --> 00:48:41,280 Jak víme, že uživatel odmítl výhled upozornění 742 00:48:41,280 --> 00:48:45,630 a již zadali číslo, protože teď se nic skutečně děje. 743 00:48:45,630 --> 00:48:50,450 >> No, možná jste uhodli to správně, delegace. 744 00:48:50,450 --> 00:48:55,440 Takže kromě všech tato prohlášení, 745 00:48:55,440 --> 00:49:03,190 musíme přidat novou delegaci na Vyzvala UI zobrazení ve střehu delegáta. 746 00:49:03,190 --> 00:49:06,440 Tak, že každý jednotlivý interakce nebo událost 747 00:49:06,440 --> 00:49:10,190 že budeme mít s výhledem UI výstrahy 748 00:49:10,190 --> 00:49:14,100 se bude zacházet podle naší třídy také. 749 00:49:14,100 --> 00:49:26,297 >> Takže kromě toho, bude alert pohled Klikněte na tlačítko na indexu. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Toto je dosaženo. 752 00:49:37,730 --> 00:49:42,020 Takže v případě, že máme already-- takže máme 753 00:49:42,020 --> 00:49:46,210 Zjistil protokol, který bude zpracovávat případ, kdy 754 00:49:46,210 --> 00:49:51,320 klikneme na tlačítko Hotovo Na zobrazení výstrahy. 755 00:49:51,320 --> 00:49:55,976 Takže pokaždé, když pomineme Pohled ve střehu, kdyby k tomu došlo. 756 00:49:55,976 --> 00:49:57,350 Dovolte mi, abych vyzkoušet velmi rychle. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 No opravdu, jsme tu dosáhli. 759 00:50:19,300 --> 00:50:22,210 >> Tak tady, budeme co ne ve skutečnosti si je vlastně 760 00:50:22,210 --> 00:50:43,120 dostat the-- Takže chceme dostat ven text, který jsme dříve 761 00:50:43,120 --> 00:50:45,350 vstoupil v zobrazení výstrahy. 762 00:50:45,350 --> 00:50:48,505 A na základě textu, jsme bude zobrazovat Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Jedná se o velmi rychle ukáže, že pokud to opravdu funguje, nebo ne. 765 00:50:55,480 --> 00:50:59,476 Takže v tomto případě, pokud se vstupní, řekněme, 10, měli bychom vidět 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Velmi dobře, máme číslo zde. 768 00:51:05,210 --> 00:51:06,470 Je to docela dobrý. 769 00:51:06,470 --> 00:51:16,840 Teď poslední krok bude be-- tak Posledním krokem musíme udělat právě teď 770 00:51:16,840 --> 00:51:21,100 Je jen zavolat Mario s level založený na vstupu 771 00:51:21,100 --> 00:51:23,270 že jsme dali do zobrazení výstrahy. 772 00:51:23,270 --> 00:51:26,920 Proto musíme převést Tento řetězec do iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Statické přetečení je velmi děsivý. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 A pak stačí zavolat já marioWithLevels hodnotu. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Pojďme se podívat, bude, že ve skutečnosti fungovat, nebo ne. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Už jste daný pyramidu. 781 00:52:01,550 --> 00:52:04,785 Zkusme změnit výšku. 782 00:52:04,785 --> 00:52:06,530 To skutečně funguje. 783 00:52:06,530 --> 00:52:07,610 Je to docela v pohodě. 784 00:52:07,610 --> 00:52:10,420 Takže teď můžete jen Vstupní jakýkoli hodnota, kterou chcete. 785 00:52:10,420 --> 00:52:12,440 Řekněme, že čtyři. 786 00:52:12,440 --> 00:52:14,260 To je dost děsivý. 787 00:52:14,260 --> 00:52:17,090 Takže to je v podstatě Opravdu rychlý příklad 788 00:52:17,090 --> 00:52:23,170 o tom, jak vytvořit projekt s kódem a jak se velmi rychle napojování 789 00:52:23,170 --> 00:52:26,220 některé opravdu jednoduché akce a funkce. 790 00:52:26,220 --> 00:52:28,840 >> Takže zdroj bude k uvedení on-line později. 791 00:52:28,840 --> 00:52:33,400 Takže pokud máte zájem v tom, jak iOS Mario funguje, 792 00:52:33,400 --> 00:52:38,360 Chystám se dát přesně stejný Projekty na internetových stránkách CS50 později. 793 00:52:38,360 --> 00:52:41,260 Jsme v podstatě udělal s léto, a než jsme dokončit 794 00:52:41,260 --> 00:52:45,190 Jen jsem vám chtěl upozornit lidi na některé opravdu úžasné zdroje, které 795 00:52:45,190 --> 00:52:47,550 jsou k dispozici online. 796 00:52:47,550 --> 00:52:52,270 >> Je zřejmé, že dokumentace Apple bude velmi užitečné. 797 00:52:52,270 --> 00:52:57,630 Ale kromě toho, já to zejména Doporučujeme čtyři zdroje, kód školy, 798 00:52:57,630 --> 00:53:02,120 dům na stromě, AppCoda a WWDC videa. 799 00:53:02,120 --> 00:53:07,270 Kód škola a dům na stromě jsou dvě on-line webové stránky vzdělávání, 800 00:53:07,270 --> 00:53:10,210 které se specificky zaměřují softwarového inženýrství. 801 00:53:10,210 --> 00:53:16,930 Zejména pro kód školy, které mají opravdu dobrý návod na iOS. 802 00:53:16,930 --> 00:53:19,550 >> To je opravdu rychlý příklad za to. 803 00:53:19,550 --> 00:53:22,980 Jsou to vlastně vytvořit opravdu cute-- podívejte se na to malé roztomilé iPhone 804 00:53:22,980 --> 00:53:24,920 vole tam, že je to dost děsivý. 805 00:53:24,920 --> 00:53:31,010 A způsob, jakým vysvětlit cíl Syntax C je naprosto jasné. 806 00:53:31,010 --> 00:53:32,230 Strom dům je stejný. 807 00:53:32,230 --> 00:53:34,660 A AppCoda je forum. 808 00:53:34,660 --> 00:53:38,130 Je to vlastně blog, který byl spuštěn by opravdu zkušeného Objective C 809 00:53:38,130 --> 00:53:39,120 programátor. 810 00:53:39,120 --> 00:53:43,950 A všechny ty cvičení v AppCoda jsou docela krátké a snadno implementovat, 811 00:53:43,950 --> 00:53:45,390 vysoce doporučeno. 812 00:53:45,390 --> 00:53:47,700 >> A pokud jste vývojář, rozhodně jít zkontrolovat 813 00:53:47,700 --> 00:53:55,660 jak videa, WWDC, kde si můžete dozvědět se o nejnovějších programování iOS 814 00:53:55,660 --> 00:53:58,250 techniky, rozhraní API a knihovny. 815 00:53:58,250 --> 00:54:02,850 Tak to je docela hodně to na semináři. 816 00:54:02,850 --> 00:54:03,820 Děkuji moc. 817 00:54:03,820 --> 00:54:08,040 A já doufám, že se bavit vytvořit si vlastní iOS aplikaci. 818 00:54:08,040 --> 00:54:09,302