1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU LIU: Hej, kiel fartas ĝi iras ĉiuj? 3 00:00:13,590 --> 00:00:20,250 Kaj jen estas la IOS App programado de Objective C seminario. 4 00:00:20,250 --> 00:00:21,520 Kaj mia nomo estas Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Mi estas Lowell junior nun, koncentrante en komputiko. 6 00:00:26,114 --> 00:00:28,030 Do en ĉi tiu seminario mi estas tuj instruos vin infanoj 7 00:00:28,030 --> 00:00:30,770 Iomete da kiel fari app. 8 00:00:30,770 --> 00:00:33,030 Yay, emocias por ĝi. 9 00:00:33,030 --> 00:00:36,790 >> Do antaŭ ol ni eĉ komenci subnaĝado en la efektiva programado flanko, 10 00:00:36,790 --> 00:00:41,840 ni nur vere rapide paroli kial povus vi volas konstrui iOS app? 11 00:00:41,840 --> 00:00:43,940 Kial iOS tiel timinda? 12 00:00:43,940 --> 00:00:47,250 Do la unua problemo, la unua kio estas bela awesome por ni, 13 00:00:47,250 --> 00:00:51,190 precipe kiel CS50 studento, estas ke iOS 14 00:00:51,190 --> 00:00:55,860 uzas Objective C. Nu, tie estas nova lingvo nomata Swift, 15 00:00:55,860 --> 00:00:58,260 sed ni ne tuj uzi ke en tiu seminario. 16 00:00:58,260 --> 00:01:01,540 Se vi interesiĝas pri Swift, tie Estas sendependa seminarion pri tio. 17 00:01:01,540 --> 00:01:05,590 Sed Objective C estas esence superaro de C. Signifo 18 00:01:05,590 --> 00:01:10,230 ke ĉio vi uzas en C povas esti tradukata en Objective C 19 00:01:10,230 --> 00:01:11,630 tre facile. 20 00:01:11,630 --> 00:01:15,730 >> Kiel vi eble vidos poste, ke efektive estas iuj tre bazaj sintakson, estas 21 00:01:15,730 --> 00:01:19,790 esence ekzakte la sama, C kaj Objective C. Do, 22 00:01:19,790 --> 00:01:22,860 ekde vi prenis CS50 supren ĉi tien, vi jam 23 00:01:22,860 --> 00:01:26,500 scias Objective C, almenaŭ 40%. 24 00:01:26,500 --> 00:01:30,720 Ankaŭ, Apple havas vere fortika API por iOS. 25 00:01:30,720 --> 00:01:33,750 Ekzistas multe de vere freneza tion vi povas fari kun ĝi. 26 00:01:33,750 --> 00:01:36,760 Unu el kiuj estas iu efektive kreis iOS app 27 00:01:36,760 --> 00:01:40,600 por kontroli aŭtoj, kiuj Estas sufiĉe interesa. 28 00:01:40,600 --> 00:01:42,610 Probable helikoptero estas pli ekscita. 29 00:01:42,610 --> 00:01:47,020 Sed tiel estas kiel potenca la iOS API povas esti. 30 00:01:47,020 --> 00:01:49,340 >> Kaj kiel vi povus havi komprenis nun, 31 00:01:49,340 --> 00:01:53,000 la pilo superflui estas probable unu el la plej grava linio rimedoj 32 00:01:53,000 --> 00:01:54,250 havebla al vi. 33 00:01:54,250 --> 00:01:58,090 Kaj bona novaĵo, ĉar ĉiun sola problemo, kiun vi povus 34 00:01:58,090 --> 00:02:01,840 pensi dum konstruado via projektas finon en Objective C, 35 00:02:01,840 --> 00:02:05,910 estas verŝajna stako overflow respondo. 36 00:02:05,910 --> 00:02:07,420 Estas nur timinda. 37 00:02:07,420 --> 00:02:12,780 Krom tio, iOS estas vere platformo 38 00:02:12,780 --> 00:02:16,260 kie vi povas atingi grandegan aŭdienco kun malmulta penado. 39 00:02:16,260 --> 00:02:20,170 Ne estas kiel Android, kie ĉio estas bela fragmentado. 40 00:02:20,170 --> 00:02:22,540 >> Ĉio iOS estas unuigita. 41 00:02:22,540 --> 00:02:25,920 Kaj tiel longe, kiel oni kreas app por iPhone, 42 00:02:25,920 --> 00:02:31,260 Vi povas tre facile haveno kiu al la iPad, iPad mini, aŭ malsamaj iPhone grandecoj. 43 00:02:31,260 --> 00:02:33,050 Tiuj estas ĉiuj vere konvena. 44 00:02:33,050 --> 00:02:36,430 Kaj estas ĝuste vere bona por impresado viaj amikoj. 45 00:02:36,430 --> 00:02:38,920 Vi povas simple teni iPhone informu viajn amiko bona, 46 00:02:38,920 --> 00:02:40,250 tiu estas la app mi faros. 47 00:02:40,250 --> 00:02:43,860 Vi povas fari tion dum iu labortablo apps, kiu estas bela. 48 00:02:43,860 --> 00:02:48,870 >> Bone, nun ni reale preni en la lingvon Objective C. 49 00:02:48,870 --> 00:02:52,910 Do kial ni ne komencu per kelkaj vere bazaj sintakso. 50 00:02:52,910 --> 00:02:57,410 Kiel mi menciis antaŭe Objective C Ĝi estas esence superaro de C. 51 00:02:57,410 --> 00:03:01,860 Do multan baza sintakso estas fakte precize la samaj. 52 00:03:01,860 --> 00:03:06,150 Deklarante variablo kaj aldonante du variabloj kune 53 00:03:06,150 --> 00:03:09,440 estas precize kiel ni agis en Mario. 54 00:03:09,440 --> 00:03:11,140 Nenio nova ĉi tie. 55 00:03:11,140 --> 00:03:17,370 >> Simile, la Lodger por buklo kaj kondiĉo estas ankaŭ la sama. 56 00:03:17,370 --> 00:03:22,370 Vi povas fari por buklo kiel vi ili faris en Mario [inaudible]. 57 00:03:22,370 --> 00:03:26,280 Kaj vi povas fari kondiĉoj ĝuste kiel kio vi 58 00:03:26,280 --> 00:03:29,240 estis farante en via antaŭa p aroj. 59 00:03:29,240 --> 00:03:33,400 Tamen, Objective C ne estas tute C, 60 00:03:33,400 --> 00:03:36,640 kaj estas iu kiu estas ia stranga pri tio. 61 00:03:36,640 --> 00:03:42,340 >> La unua estis ke kiam vi estas faranta programado C, vi tipe nomas 62 00:03:42,340 --> 00:03:46,310 inkluzivi kaj tiam biblioteko nomo. 63 00:03:46,310 --> 00:03:49,860 Sed en Objective C vi nomas ke importo. 64 00:03:49,860 --> 00:03:53,100 Esence dirante funcionalidad, nur malsamaj nomoj. 65 00:03:53,100 --> 00:03:55,940 Kaj la kordoj estas vere iomete stranga. 66 00:03:55,940 --> 00:03:58,250 Vi povas vidi, ke la unua kio estas speco de stranga 67 00:03:58,250 --> 00:04:04,190 estas ke vi havas belan weird-- sorry-- vi havas belan weird NS 68 00:04:04,190 --> 00:04:04,960 subskribi super tie. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Kaj la dua afero tio estas speco de stranga 71 00:04:09,160 --> 00:04:14,090 Estas vi havas ĉe-signo antaŭ efektive deklarante la kordo. 72 00:04:14,090 --> 00:04:19,209 Do la ĉe-signo esence signifas ke ŝnuro ne estas nur ĉeno, 73 00:04:19,209 --> 00:04:20,880 ĝi estas fakte objekto. 74 00:04:20,880 --> 00:04:22,780 Ni intencas ekspliki kiu poste tiel ili ne 75 00:04:22,780 --> 00:04:25,800 paniko se vi faras ne kompreni kion tio signifas. 76 00:04:25,800 --> 00:04:29,980 Kaj impreso al konzolo estas iomete malsama ĉar en C ni nomas printf, 77 00:04:29,980 --> 00:04:33,350 sed en Objective C ni nomas [inaudible]. 78 00:04:33,350 --> 00:04:35,640 >> Vi estu scivolante kio estas tio. 79 00:04:35,640 --> 00:04:38,070 Tio estas esence printf, nur malsama lingvo. 80 00:04:38,070 --> 00:04:41,370 Ĝuste la sama uzado, ĝuste la sama funcionalidad. 81 00:04:41,370 --> 00:04:44,060 Nu ĝi rezultas ke Objective C reale 82 00:04:44,060 --> 00:04:50,040 havas ns prefijo en preskaŭ ĉio, ĉiu baza datumtipo, 83 00:04:50,040 --> 00:04:52,690 nsstring, nsarray, nsdictionary. 84 00:04:52,690 --> 00:04:56,340 La kialo estante kiu ns efektive staras por sekva paŝo, 85 00:04:56,340 --> 00:04:59,980 kiu estas entrepreno kiu Steve Jobs fondita, 86 00:04:59,980 --> 00:05:03,960 kiu estas kompanio kie la lingvo Objective C naskiĝas. 87 00:05:03,960 --> 00:05:06,140 Do tiu estas esence tradicio. 88 00:05:06,140 --> 00:05:09,010 Mi scias ke estas iom stranga, sed estas Apple. 89 00:05:09,010 --> 00:05:16,840 >> Do iu kiu estas eĉ weirder ol tio estas funkcio deklaro. 90 00:05:16,840 --> 00:05:22,600 Tio estas tre malsama de kion ni vidi en C, ĉar tie ĝi reale 91 00:05:22,600 --> 00:05:25,190 ne aspektas kiel C anymore. 92 00:05:25,190 --> 00:05:28,810 Kion vi havas here-- per la vojo ĉi ne estas kuglo punkto, 93 00:05:28,810 --> 00:05:30,690 ĉi estas minuso. 94 00:05:30,690 --> 00:05:36,440 Vi havas minuso paréntesis void kaj tiam la funkcio nomo. 95 00:05:36,440 --> 00:05:38,450 Ni simple diru se ni havas saluton mondo, tiam 96 00:05:38,450 --> 00:05:42,820 la reveno tipo estus malplena ĉar ni revenos nenion. 97 00:05:42,820 --> 00:05:44,680 >> Kio akiras vere stranga estas ke kiam vi estas 98 00:05:44,680 --> 00:05:49,580 havi pli ol unu parametro pasante en sama funkcio kiu 99 00:05:49,580 --> 00:05:53,870 estos vere stranga kiel montrita tie. 100 00:05:53,870 --> 00:05:58,230 Ni havas metodon nomo, nomata addInt al [inaudible] 101 00:05:58,230 --> 00:06:00,370 kaj ni pasante unu parametro. 102 00:06:00,370 --> 00:06:05,170 Sed post tio, ni havas pli metodon nomo alvoko kun. 103 00:06:05,170 --> 00:06:08,500 Kaj post kun ni pasante la dua parametro. 104 00:06:08,500 --> 00:06:11,940 Tiu estas vere iomete stranga, sed ĉiuj tiuj funkcio deklaroj 105 00:06:11,940 --> 00:06:14,770 sekvi la saman modelon kiel tiu. 106 00:06:14,770 --> 00:06:17,450 >> Ni havas minuso komenci kun. 107 00:06:17,450 --> 00:06:21,550 La minuso povus esti signo kelkfoje bazita sur kio klaso de metodo 108 00:06:21,550 --> 00:06:22,340 Estas tio. 109 00:06:22,340 --> 00:06:25,000 Metodo estas esence alia nomo por la funkcio. 110 00:06:25,000 --> 00:06:26,760 Kaj ni tuj klarigi ke poste kiam 111 00:06:26,760 --> 00:06:30,580 ni parolas pri objekto orientita programado. 112 00:06:30,580 --> 00:06:34,300 Vi unue entajpi la reveno tajpi ene de krampoj, 113 00:06:34,300 --> 00:06:37,450 post kiu venas la metodo nomo. 114 00:06:37,450 --> 00:06:40,310 Vi pasante unu parametro. 115 00:06:40,310 --> 00:06:44,750 Kaj se vi havas pli parametroj vi bezonas etendi la metodo nomon 116 00:06:44,750 --> 00:06:46,770 kaj esence skribi iun pli tie. 117 00:06:46,770 --> 00:06:48,090 >> Ĝi povus esti io vi deziras. 118 00:06:48,090 --> 00:06:50,140 En nia kazo estas kun. 119 00:06:50,140 --> 00:06:56,160 Sed vi povus diri fino, aŭ aŭ aŭ abc plena trinkejo, kion vi volas. 120 00:06:56,160 --> 00:06:59,500 Kaj tiam post tio vi pasante parametro b. 121 00:06:59,500 --> 00:07:01,750 Tiu estas vere stranga konvencio sed ni estas 122 00:07:01,750 --> 00:07:05,800 tuj vidos kial Apple volis fari tion tre rapide. 123 00:07:05,800 --> 00:07:10,530 Do kiel vi nomas funkcio? 124 00:07:10,530 --> 00:07:15,520 Nomante funkcio en Objective C estas ankaŭ malsama de C. 125 00:07:15,520 --> 00:07:18,170 >> Reale, nomante funkcio en Objective C 126 00:07:18,170 --> 00:07:21,030 Estas pli kiel vi parolas al iu. 127 00:07:21,030 --> 00:07:27,030 Ĉi tie ni havas memon, kiu nomata objekto. 128 00:07:27,030 --> 00:07:33,830 Vi esence diri la kontesti mem diri "Saluton Mondo!" 129 00:07:33,830 --> 00:07:36,830 Tio estas kiel nomi la funkcion. 130 00:07:36,830 --> 00:07:41,690 Objekto kaj metodo nomon kombinita reciproke. 131 00:07:41,690 --> 00:07:49,600 Kaj tiu estas kie la bizaran etendo por metodo nomon vere eniras en ludo. 132 00:07:49,600 --> 00:07:52,150 >> Ni rigardu la dua ekzemplo. 133 00:07:52,150 --> 00:07:56,780 Ni nur difinis metodo nomata addInt kun bla bla bla. 134 00:07:56,780 --> 00:08:00,066 Do en tiu kazo kiam oni nomas ke specifa [? mesaĝo?] ĝi okazas 135 00:08:00,066 --> 00:08:02,035 aspekti kiel mem addInt: 10 kun: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Ĝi sonas kiel la angla. 138 00:08:08,070 --> 00:08:11,980 Kvankam la funkcio funkcio deklaro estas stranga, 139 00:08:11,980 --> 00:08:15,600 la punkto de Objective C La metodo deklaro ŝablono, 140 00:08:15,600 --> 00:08:18,830 estas ke kiam vi nomas la funkcio aŭ metodo 141 00:08:18,830 --> 00:08:21,980 ĝi sonos kiel reala angla. 142 00:08:21,980 --> 00:08:25,270 Do estas tre intuicia unufoje vi eniros en gxin. 143 00:08:25,270 --> 00:08:28,740 >> Precipe tiukaze kie vi povas esence 144 00:08:28,740 --> 00:08:33,010 vidi ke la funkcio nomo estas ia dokumentante. 145 00:08:33,010 --> 00:08:35,390 Vi ne bezonas ajnan pli klarigo vidi 146 00:08:35,390 --> 00:08:42,770 kio ĝuste okazas, kio ekzakte unu parametro faranta. 147 00:08:42,770 --> 00:08:48,470 Irante preter tiu, tuj parolos iom iom pri objektema programado. 148 00:08:48,470 --> 00:08:52,160 Objektema programado estas unu el la fundamentaj programado 149 00:08:52,160 --> 00:08:57,110 teknikoj aŭ ŝablonoj kiuj estas uzita de Objective C. Objective C 150 00:08:57,110 --> 00:09:03,110 nomas Objective C, ne C, por vere bona kialo. 151 00:09:03,110 --> 00:09:07,560 >> Do antaŭ ol ni eniros en Objective C sintakso, 152 00:09:07,560 --> 00:09:11,670 Ni vere rapide rigardi kio ĝuste estas objekto. 153 00:09:11,670 --> 00:09:15,480 Ni probable faris ion kiel objekto antaŭe, kiu 154 00:09:15,480 --> 00:09:19,780 nomas la struct kiam vi estas implementando arbo aŭ ligillisto 155 00:09:19,780 --> 00:09:25,730 aŭ [? provi. ?] Do, ĝi estas esence kiel struct, 156 00:09:25,730 --> 00:09:28,560 sed estas multe pli potenca ol tio. 157 00:09:28,560 --> 00:09:33,150 Objekto havas metodoj kaj propraĵoj. 158 00:09:33,150 --> 00:09:35,310 Metodoj estas esence funkcioj. 159 00:09:35,310 --> 00:09:39,480 Esence funkciojn kiuj specifaj al certa objekto. 160 00:09:39,480 --> 00:09:45,440 >> Kaj propraĵoj estas esence la kampo oni indikas en la struct. 161 00:09:45,440 --> 00:09:48,500 Do por ĉiu unuopa objekto ni havos iuj propraĵo 162 00:09:48,500 --> 00:09:53,160 kiu havas iuj variabloj kiuj estas specifaj al la objekto. 163 00:09:53,160 --> 00:09:57,170 Kaj ni havas kelkajn funkciojn kiuj estas ankaŭ specifaj al la objekto. 164 00:09:57,170 --> 00:10:01,180 Kaj la funkcioj estas nomitaj metodoj kaj la variabloj estas nomitaj proprietoj. 165 00:10:01,180 --> 00:10:03,190 Estas nur fantazio nomo. 166 00:10:03,190 --> 00:10:10,440 Dum vi fakto, ĉiu ununura vido vi vidos, kiam vi malfermos iOS app, 167 00:10:10,440 --> 00:10:17,720 ni nur diras Twitter aŭ Facebook, ĉiu ununura vido vi vidas estas objekto. 168 00:10:17,720 --> 00:10:22,110 Kaj eĉ la tuta app estas objekton komence. 169 00:10:22,110 --> 00:10:25,340 Tre interesa koncepto. 170 00:10:25,340 --> 00:10:28,480 >> Kaj kial ni volas objekto orientita programado? 171 00:10:28,480 --> 00:10:33,530 Do vi povas imagi, ke kiam vi programo metas belan komplika. 172 00:10:33,530 --> 00:10:36,400 Ni simple diru, kiam vi estas implementando ŝaktabulo, 173 00:10:36,400 --> 00:10:40,020 la logiko tuj esti vere komplikita. 174 00:10:40,020 --> 00:10:43,280 Vi havas 36 malsamajn pecoj, tiel ke se vi 175 00:10:43,280 --> 00:10:48,370 volas skribi logikon por ĉiuj 36 malsamaj pecoj en ŝako, 176 00:10:48,370 --> 00:10:52,150 ke tuj estos multa malsamaj funkcioj kaj variabloj. 177 00:10:52,150 --> 00:10:54,070 Estas multa da afliktoj. 178 00:10:54,070 --> 00:10:58,980 Kaj probable vi estas iranta skribi malsama metodo aŭ malsama funkcio 179 00:10:58,980 --> 00:11:03,950 por ĉiu de la peco al akurate kontroli kion ili faras. 180 00:11:03,950 --> 00:11:08,830 >> Sed se vi faras objektema programado, ĉiuj tiuj pecoj 181 00:11:08,830 --> 00:11:12,440 povas abstraída en unu sola objekto. 182 00:11:12,440 --> 00:11:16,111 Kaj la objekto havos iujn komunajn propraĵoj, kiel kia peco 183 00:11:16,111 --> 00:11:16,610 tio estas? 184 00:11:16,610 --> 00:11:17,740 Kio koloro estas ĝi? 185 00:11:17,740 --> 00:11:19,480 Kiel ĝi movas? 186 00:11:19,480 --> 00:11:24,660 Kaj en tiu vojo vi havos multe simplificado la logiko de tio. 187 00:11:24,660 --> 00:11:28,480 Do ĝi estas nur vere bona vojo fari komplikaj programoj, 188 00:11:28,480 --> 00:11:33,700 kaj hierarkia rilato ene de la programo, tre simpla. 189 00:11:33,700 --> 00:11:36,800 Kiel ni iras vidi kial tre rapide kiam 190 00:11:36,800 --> 00:11:39,660 ni fakte faras programming-- kiam ni estas reale 191 00:11:39,660 --> 00:11:42,830 farante S kodo Programado sesio poste. 192 00:11:42,830 --> 00:11:48,120 >> Nu krom tiu, objektema programado 193 00:11:48,120 --> 00:11:50,030 Estas ĝuste amuzega. 194 00:11:50,030 --> 00:11:51,990 Vi alvenis al desegni vian propran celon. 195 00:11:51,990 --> 00:11:56,080 Vi alvenis al desegni kion faras ĝi aspektas kiel sola. 196 00:11:56,080 --> 00:11:58,250 Ne estas ĝuste respondon al ĝi. 197 00:11:58,250 --> 00:12:02,940 Kaj estas tute interesaj. 198 00:12:02,940 --> 00:12:07,270 Do en objektema programado, du fundamentaj konceptoj 199 00:12:07,270 --> 00:12:10,130 Estos klaso kaj petskribon. 200 00:12:10,130 --> 00:12:13,570 Klaso estas esence ŝablono por objekto. 201 00:12:13,570 --> 00:12:18,070 Kaj petskribon estas esence unu specifa objekto. 202 00:12:18,070 --> 00:12:21,090 >> Ni simple diras vi farante biskviton. 203 00:12:21,090 --> 00:12:24,800 En tiu kazo, ĉiu unuopa kuketo vi efektive finas kun 204 00:12:24,800 --> 00:12:27,310 tuj esti objekto. 205 00:12:27,310 --> 00:12:35,830 Sed la kuketon telero vi uzas por baki ĉiuj kuketoj estos klaso. 206 00:12:35,830 --> 00:12:37,880 Klaso estas esence ŝablono. 207 00:12:37,880 --> 00:12:46,170 Kaj la petskribo estos unu specifa objekto kreis el tiu klaso. 208 00:12:46,170 --> 00:12:49,970 >> Kaj petskribon kreiĝos surbaze klaso deklaro, 209 00:12:49,970 --> 00:12:56,760 kiel ni vidos en postaj diapozitivoj. 210 00:12:56,760 --> 00:13:00,010 Do ni vere faras vere rapida ekzemplo [inaudible]. 211 00:13:00,010 --> 00:13:04,280 Diru ni deklarante objekto por kato. 212 00:13:04,280 --> 00:13:07,930 La celo devus have-- la kato klason 213 00:13:07,930 --> 00:13:11,260 havas iujn proprietojn kaj metodoj. 214 00:13:11,260 --> 00:13:17,300 Kia propraĵoj cxesigxu la klaso have-- devus la kato havas? 215 00:13:17,300 --> 00:13:20,580 >> Ekzemple, koloro, aĝo kaj raso, tiuj 216 00:13:20,580 --> 00:13:24,440 Estos variabloj kiuj estas specifaj por ĉiu kato. 217 00:13:24,440 --> 00:13:27,790 Kaj tiuj estas iuj aferoj ke ni uzu por priskribi katon. 218 00:13:27,790 --> 00:13:31,880 Kian metodon, Kaj kia povas kato faras? 219 00:13:31,880 --> 00:13:37,160 Kelkaj rapidaj ekzemploj estus persekutado muso, manĝi fiŝon aŭ simple meow. 220 00:13:37,160 --> 00:13:40,900 Tiu estas vere rapida Ekzemplo de kato klaso. 221 00:13:40,900 --> 00:13:46,920 Kaj vere specifan kato objekto estos kato 222 00:13:46,920 --> 00:13:50,930 kie ni specifas la koloro, la aĝo kaj raso. 223 00:13:50,930 --> 00:13:53,790 >> En tiu kazo, nia celo estas ne plu estas klaso anymore. 224 00:13:53,790 --> 00:14:00,010 Ni kopiu la ŝablonon de la klaso kaj ni specifi ĉiu specifa informo 225 00:14:00,010 --> 00:14:04,510 al tiu specifa objekto por igi ĝin sendependa. 226 00:14:04,510 --> 00:14:09,350 Kaj kiam vi nomas metodon ene objekto, 227 00:14:09,350 --> 00:14:16,640 vi nur nomas meow sur la celo, kiu estas la kato vi ĵus kreis. 228 00:14:16,640 --> 00:14:19,020 >> Probable vi presos ion kiel "Saluton Mondo! 229 00:14:19,020 --> 00:14:20,000 Meow ". 230 00:14:20,000 --> 00:14:22,110 Pretty cute. 231 00:14:22,110 --> 00:14:24,500 Bone, ni nur eniri en iuj detaloj 232 00:14:24,500 --> 00:14:30,650 kaj vidu kio ĝuste faras tion traduki en esti iOS programado. 233 00:14:30,650 --> 00:14:36,500 Do en iOS programado ĉiu unuopa klaso estos implementado en du dosierojn. 234 00:14:36,500 --> 00:14:41,420 Unu dosiero estas ĉi tie, kiu nomas la interfaco. 235 00:14:41,420 --> 00:14:45,300 Alia dosiero estas ĉi tie, kiu nomas efektivigo. 236 00:14:45,300 --> 00:14:48,890 >> Tipe la interfaco havos extension.h 237 00:14:48,890 --> 00:14:51,740 kiel ni vidis en C bibliotekoj. 238 00:14:51,740 --> 00:14:56,340 Kaj implementación dosiero tuj havos extension.n. 239 00:14:56,340 --> 00:14:57,260 Estas speco de stranga. 240 00:14:57,260 --> 00:15:01,270 Sed .n signifas reale .c, ne ekzistas fundamenta diferenco inter tiuj 241 00:15:01,270 --> 00:15:02,100 du. 242 00:15:02,100 --> 00:15:06,650 Do en ĉi tiu kazo, ni povas vidi ke ni deklarante interfaco, Kato: objekto. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Nomata heredo. 245 00:15:13,760 --> 00:15:19,170 Ni esence heredante la kato klaso de la objekto klaso. 246 00:15:19,170 --> 00:15:24,790 Do ĉiu propraĵo kaj metodo kiu estis antaŭe difinita en la objekto klaso 247 00:15:24,790 --> 00:15:28,560 estos aŭtomate difinita en katon klaso ankaŭ. 248 00:15:28,560 --> 00:15:35,900 >> Krom tio, ni difini koloron, raso, kaj aĝo, tri variabloj. 249 00:15:35,900 --> 00:15:39,360 Tio fakte aspektas kiel io vi faris antaŭe. 250 00:15:39,360 --> 00:15:41,770 Ĝi aspektas kiel struct. 251 00:15:41,770 --> 00:15:44,950 Tio estas esence la sintakso por struct deklaro, 252 00:15:44,950 --> 00:15:47,710 kaj kiu estas plene korekta. 253 00:15:47,710 --> 00:15:51,825 Kaj ĉar mi menciis antaŭe, la diferenco al struct 254 00:15:51,825 --> 00:15:53,960 kaj objekto, unu el la fundamentaj diferencoj 255 00:15:53,960 --> 00:15:59,080 estas ke celo havas metodon, dum struct nur havas variabloj. 256 00:15:59,080 --> 00:16:03,450 Do krom la proprietoj aŭ variabloj ni kreis por la objekto, 257 00:16:03,450 --> 00:16:05,700 ni entajpi iun metodon. 258 00:16:05,700 --> 00:16:09,720 >> Ni simple diras ĉi tie ni havas du metodoj, oni estas meow, 259 00:16:09,720 --> 00:16:12,460 alia estas postkuro muso. 260 00:16:12,460 --> 00:16:18,600 Ni probable volas esti pasante parametro bazita sur nia antaŭa metodo 261 00:16:18,600 --> 00:16:20,440 deklaro skemon. 262 00:16:20,440 --> 00:16:22,160 Vi probable volas esti pasante muson. 263 00:16:22,160 --> 00:16:25,180 Kaj vi probable volas reveni al bool montras 264 00:16:25,180 --> 00:16:30,010 Se via kato havas sukcese kaptis la muson aŭ ne. 265 00:16:30,010 --> 00:16:33,170 >> Tiu estas la interfaco, sed ni povas vidi ke la interfaco efektive 266 00:16:33,170 --> 00:16:35,150 ne fari ion. 267 00:16:35,150 --> 00:16:40,800 Ĝi nur klarigas programon kion exists-- kio ekzistas en la kato klaso. 268 00:16:40,800 --> 00:16:43,640 Do en ordo por la programo por fari ion, 269 00:16:43,640 --> 00:16:46,680 ni bezonas havi implementación dosierojn. 270 00:16:46,680 --> 00:16:51,940 Do jen, la unua aĵo kiun ni faras estas evidente ni importi la interfaco. 271 00:16:51,940 --> 00:16:56,470 Post ni importi la interfacon, ni difini la metodo. 272 00:16:56,470 --> 00:17:00,150 >> Ni simple diru tie meow estus ĝuste presi 273 00:17:00,150 --> 00:17:01,740 "Saluton Mondo!" al la konzolo. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Kaj post la efektivigo dosiero, ni preskaux farita. 276 00:17:08,460 --> 00:17:14,530 Tiu estas esence klaso Deklaracio por unu klaso. 277 00:17:14,530 --> 00:17:19,970 Do nun la demando iĝas, Kiel do vi deklaras variablon? 278 00:17:19,970 --> 00:17:26,880 La vojo vi uzas klason krei objekto en Objective C estas skribita tie. 279 00:17:26,880 --> 00:17:30,730 >> Vi unue entajpi ke ĉi estas kato puntero, 280 00:17:30,730 --> 00:17:38,700 ĉar ĉiu objekto en Objective C fine estas implementado kiel puntero. 281 00:17:38,700 --> 00:17:46,210 Kaj vi nomas la klason, voki ilin kiel alloc, kiu estas esence malloc, 282 00:17:46,210 --> 00:17:51,220 dirante al la mastruma sistemo ke vi bezonas iun memora spaco por tiu celo. 283 00:17:51,220 --> 00:17:55,780 Post ke vi havas objekto jam kaj vi nur pravalorizi ĝin. 284 00:17:55,780 --> 00:17:56,780 Tiu estas nur konvencio. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Mi scias, ke tio estas iom bizara, sed tiu estas vere kiel Apple faras ajxoj. 287 00:18:04,410 --> 00:18:07,130 >> Asignanta propraĵoj estas fakte bela simpla. 288 00:18:07,130 --> 00:18:09,250 Estas tre simila al kion vi faras kiam 289 00:18:09,250 --> 00:18:13,780 vi atribuante iuj specifaj kampo ene de struct. 290 00:18:13,780 --> 00:18:16,830 Vi nur devas la variablo nomo, la proprieto nomo, 291 00:18:16,830 --> 00:18:20,140 kaj atribui specifan valoron al tio. 292 00:18:20,140 --> 00:18:24,120 Kaj alvokinte metodo estas tre similaj. 293 00:18:24,120 --> 00:18:29,080 La nomante metodon estas esence kion min raportas 294 00:18:29,080 --> 00:18:32,390 por nomi ajnan metodon en Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Vi pasante objekton en tiu kazo tuj estos myCat, 296 00:18:36,660 --> 00:18:42,490 kaj vi pasas la metodo nomo. 297 00:18:42,490 --> 00:18:47,130 Kvazaŭ vi parolas al la objekto, myCat, ke vi devus meow. 298 00:18:47,130 --> 00:18:48,570 Estas sufiĉe interesa. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Post tio, ekzistas unu pli esenca dezajno ŝablono 301 00:18:55,680 --> 00:18:59,940 ke ni bezonas paroli pri antaŭ alveni al reala S kodo. 302 00:18:59,940 --> 00:19:03,300 Tio dezajno ŝablono nomiĝas evento gvidita programado. 303 00:19:03,300 --> 00:19:09,660 Tiu estas ankaŭ probable unu el la plej fundamentajn ideojn en iOS programado. 304 00:19:09,660 --> 00:19:14,410 >> Do vi verŝajne ne scias, kion ekzakte estas la evento gvidita programado, 305 00:19:14,410 --> 00:19:16,990 sed ne estas vere ke timigas. 306 00:19:16,990 --> 00:19:20,400 Nu fakte, vi havas jam faris tion antaŭe. 307 00:19:20,400 --> 00:19:24,894 Tiu estas unu el la linioj vi havas probable jam skribita en la lasta [inaudible] 308 00:19:24,894 --> 00:19:26,810 de CS50, google.maps.event.addListener (markilo, 309 00:19:26,810 --> 00:19:27,810 "Klaku", la funkcio () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Nomante ĉi linio vi estas esence dirante la komputilo 312 00:19:37,620 --> 00:19:42,650 ke ĉiufoje kiam la okazaĵo nomita "Klaki" okazas en la markilo, 313 00:19:42,650 --> 00:19:43,630 uzi tiun funkcion. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Tio estas tre malsama de kion vi faros en mario.c. 316 00:19:50,950 --> 00:19:56,670 En mario.c vi ĵus kuras la programon fojon, ĝi provizas vin per eligo, 317 00:19:56,670 --> 00:19:58,590 kaj vi faris. 318 00:19:58,590 --> 00:20:02,590 Tio estas speco de kiel unu pafo programoj. 319 00:20:02,590 --> 00:20:05,830 Evento gvidita programoj Estas tre, tre malsama. 320 00:20:05,830 --> 00:20:10,230 Ni imagu, se Facebook estas unu ŝoton programo ne estas vere bona. 321 00:20:10,230 --> 00:20:13,750 Vi nur iru al Facebook unufoje kaj ĝi estas farita. 322 00:20:13,750 --> 00:20:16,700 Ĝi donas al vi kelkajn eligo kaj vi neniam atingis malantaŭe. 323 00:20:16,700 --> 00:20:19,380 Vi neniam alvenis ion pli. 324 00:20:19,380 --> 00:20:23,880 >> Do jen, speciale desegnon ni uzas estas 325 00:20:23,880 --> 00:20:26,940 okazaĵo dispelitaj, por ke ĉiu funkcio 326 00:20:26,940 --> 00:20:31,480 kaptado bazita sur kio okazaĵo okazis. 327 00:20:31,480 --> 00:20:34,670 Ekzemple, se ni havas butonon kaj ni entajpi 328 00:20:34,670 --> 00:20:39,870 ke krom se tiu butono estas klakita, vokas la funkcion nomita "Saluton Mondo!" 329 00:20:39,870 --> 00:20:47,810 En tiu maniero ni povas vere gestionar la funkcio logiko 330 00:20:47,810 --> 00:20:50,560 flui en tre fleksebla maniero. 331 00:20:50,560 --> 00:20:55,840 La uzanto povas fari aŭ voki funkcio kiu jam estis nomita. 332 00:20:55,840 --> 00:20:59,900 Ĝi estas tute bazita sur kio uzantoj fari. 333 00:20:59,900 --> 00:21:04,080 >> Do ni povas vidi, ke tio estas fakte multe pli bona ol mario.c. 334 00:21:04,080 --> 00:21:07,190 Kaj bona novaĵo estas ke ĝi estas fakte ne estas nova koncepto. 335 00:21:07,190 --> 00:21:12,140 Vi ĉiuj jam faris ke en la lasta problemo starigis. 336 00:21:12,140 --> 00:21:16,640 Do en Objective C ekzistas tri malsamaj diagramoj 337 00:21:16,640 --> 00:21:19,030 por evento gvidita programado. 338 00:21:19,030 --> 00:21:21,970 La unua diagramo estas nomita objektiva ago, 339 00:21:21,970 --> 00:21:26,990 kie vi ligos butonon gazetaro kun iu funkcio. 340 00:21:26,990 --> 00:21:31,590 Ni simple diru, kiam vi klakas iuj butonon, vi nomas iujn funkcion. 341 00:21:31,590 --> 00:21:33,620 Tiu estas tre simpla celo ago. 342 00:21:33,620 --> 00:21:35,580 >> La dua unu estas fakte la plej malfacila unu, 343 00:21:35,580 --> 00:21:38,450 ĝi nomiĝas delegacio sur protokolo. 344 00:21:38,450 --> 00:21:41,800 Ni intencas ekspliki ke en granda detalo poste. 345 00:21:41,800 --> 00:21:44,420 Kaj la tria maniero estas sciigo. 346 00:21:44,420 --> 00:21:46,770 Tiu estas vere ne tre grava kiel malproksima 347 00:21:46,770 --> 00:21:50,920 kiel ni raportas, ĉar la ŝanco ke vi tuj uzos sciigo 348 00:21:50,920 --> 00:21:53,310 en via fina projekto estas sufiĉe malalta. 349 00:21:53,310 --> 00:21:56,440 Do ni tuj salti ke parto. 350 00:21:56,440 --> 00:21:59,460 >> Kaj ni iras al plonĝi en delegacio sur protokolo. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Do kio ĝuste estas protokolo? 353 00:22:04,470 --> 00:22:06,450 Aŭ kion ekzakte estas delegacion? 354 00:22:06,450 --> 00:22:09,670 Ni parolu pri protokolo komence. 355 00:22:09,670 --> 00:22:13,360 Protokoloj estas nenio krom okazaĵoj. 356 00:22:13,360 --> 00:22:19,230 Sed ĉi tiuj okazaĵoj estas donitaj al vi por Apple por komenci kun. 357 00:22:19,230 --> 00:22:22,640 Ekzemple, mi ne tute certa kio de vi 358 00:22:22,640 --> 00:22:27,930 infanoj uzas Apple originalaj app poŝto aŭ kontakto, 359 00:22:27,930 --> 00:22:32,180 sed ĉiufoje vi rulumu la tablo kaj premu la specifaĵoj ĉelo 360 00:22:32,180 --> 00:22:36,130 sur la tablo, kiuj estas evento. 361 00:22:36,130 --> 00:22:38,330 >> Kaj se vi volas fari ke evento de ci mem, 362 00:22:38,330 --> 00:22:40,410 ĝi estas fakte iom malfacila. 363 00:22:40,410 --> 00:22:44,880 Do Apple donis ke eĉ al vi por ke vi povas simple uzi rekte 364 00:22:44,880 --> 00:22:49,610 la eventon por fari ion en via propra. 365 00:22:49,610 --> 00:22:52,980 Protokoloj estas reale vere, vere vaste uzata 366 00:22:52,980 --> 00:22:58,320 en Objective C. Nu en Fakte, ĉiu ununura app 367 00:22:58,320 --> 00:23:00,870 havas ion kaptitaj app delegito. 368 00:23:00,870 --> 00:23:06,330 Ene de delikataj estas ĉiuj la protokolojn por ŝargi la app. 369 00:23:06,330 --> 00:23:12,470 >> Ni simple diras, ke estas evento por app faris ŝarĝo. 370 00:23:12,470 --> 00:23:18,200 Do kio okazu post vi havas kreis app, post vi malfermos la app, 371 00:23:18,200 --> 00:23:22,630 post fermi la app, aŭ post vi metis la iPhone dormi. 372 00:23:22,630 --> 00:23:27,480 Tiuj estas ĉiuj okazaĵoj kiuj havas jam donita al vi. 373 00:23:27,480 --> 00:23:34,730 Kaj origine ene tiuj eroj ne estos implementación. 374 00:23:34,730 --> 00:23:39,750 Apple ĵus diris al vi, ke tiu funkcio okazos kiam iu evento okazas, 375 00:23:39,750 --> 00:23:44,380 sed kion vi faros kun tio funkcio estas tute ĝis vi. 376 00:23:44,380 --> 00:23:49,290 >> Delegacio estas esence dirante al la klaso 377 00:23:49,290 --> 00:23:53,060 ke vi devus trakti tiujn protokolojn. 378 00:23:53,060 --> 00:23:55,340 Estas iomete malklara, sed estos 379 00:23:55,340 --> 00:23:59,380 multe pli klara kiam ni faras la s kodoj en ago. 380 00:23:59,380 --> 00:24:04,760 Delegacio sur protokolo estas reale tre fortika mekanismo en la senco 381 00:24:04,760 --> 00:24:08,160 ke se ni faros delegacio al specifa klaso, 382 00:24:08,160 --> 00:24:12,400 ni povas esence manipuli ĉiuj specoj de eventoj 383 00:24:12,400 --> 00:24:17,040 uzante ajna klaso ni havas, tre oportune ilo. 384 00:24:17,040 --> 00:24:21,530 >> Do unu rapida ekzemplo por delegacio sur protokolo 385 00:24:21,530 --> 00:24:24,120 estos kio mi ĵus parolis. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Ĉi protokolo specife nomas tableview [inaudible] elektu rolon 388 00:24:30,890 --> 00:24:35,480 ĉe [? indekso?] [? pasinteco. ?] Do tiu estas okazaĵo kiu kaptus kiam vi 389 00:24:35,480 --> 00:24:39,710 efektive frapeti sur specifa ĉelo en via tableview, 390 00:24:39,710 --> 00:24:43,570 ni nur diros en via mail aux en viaj kontaktoj app. 391 00:24:43,570 --> 00:24:48,180 >> Ene funkcio estis origine farante nenion. 392 00:24:48,180 --> 00:24:51,950 La funkcio ne fari ion defaŭlte. 393 00:24:51,950 --> 00:24:55,540 Sed vi povas entajpi kion la funkcio faras, 394 00:24:55,540 --> 00:24:59,610 konsiderante kion vi volas el via app. 395 00:24:59,610 --> 00:25:01,610 Tre oportune ilo. 396 00:25:01,610 --> 00:25:06,840 Kaj kun ĉio, kion dirata, mi esence 397 00:25:06,840 --> 00:25:11,430 kovri iuj tre bazaj sintakson kaj fundamenta koncepto por Objective C 398 00:25:11,430 --> 00:25:15,860 programado, kaj ni povas fari iu s kodo. 399 00:25:15,860 --> 00:25:17,980 Multe pli ekscita. 400 00:25:17,980 --> 00:25:21,070 Do s kodo estas fakte iom abrumador 401 00:25:21,070 --> 00:25:23,330 kiam vi malfermas ŝin por la unua fojo. 402 00:25:23,330 --> 00:25:26,640 >> Unu rapida noto, do se vi volas fari IOS disvolviĝo, 403 00:25:26,640 --> 00:25:29,630 Mi forte rekomendas ke vi havas Mac. 404 00:25:29,630 --> 00:25:33,930 Ĉar faranta IOS disvolviĝo sur Windows estas vere, vere malmola. 405 00:25:33,930 --> 00:25:37,560 Estas doable, sed estas vere malfacile. 406 00:25:37,560 --> 00:25:40,610 Kaj vi definitive fari ne volis uzi g redakti. 407 00:25:40,610 --> 00:25:47,950 Do en s kodo ni havas pluraj malsamaj areoj. 408 00:25:47,950 --> 00:25:53,050 Kiam vi unue malfermu s kodo vi vidos navigado areo, 409 00:25:53,050 --> 00:25:57,470 kiu esence montras al vi ĉiujn dosieroj estas en via nuna projekto. 410 00:25:57,470 --> 00:26:03,590 >> Vi havas ilobreto areo, kiu estas esence administri vidoj, 411 00:26:03,590 --> 00:26:08,570 aŭ iuj iom rapida iloj pri s kodo mem. 412 00:26:08,570 --> 00:26:11,140 Kaj jen estas la fakta redaktoro areo. 413 00:26:11,140 --> 00:26:15,900 Tiu areo estas tre simila g redakto: sed multe pli bona ol g redaktu. 414 00:26:15,900 --> 00:26:21,150 Kaj en ĉi tiu rajto areo, estas vokis la utileco areo. 415 00:26:21,150 --> 00:26:27,170 La areo iĝas vere oportuna kiam vi kreas interfaco aŭ specifante 416 00:26:27,170 --> 00:26:30,070 kelkaj rapidaj setups por via app. 417 00:26:30,070 --> 00:26:34,570 >> Kaj la fina areo estas la depuración. 418 00:26:34,570 --> 00:26:37,970 Tiu areo enhavas la konzolo. 419 00:26:37,970 --> 00:26:43,170 Do kiam ajn vi diru printf, aŭ nslog en nia kazo, 420 00:26:43,170 --> 00:26:47,330 ĉiuj viaj rezultoj tuj estos presita tie. 421 00:26:47,330 --> 00:26:48,260 Bone? 422 00:26:48,260 --> 00:26:52,090 Mi supozas ke ni povas vere rapide fari ekzemplo por iOS programado. 423 00:26:52,090 --> 00:26:54,220 Kaj ni vere malfermi s kodo. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Do ĉiufoje vi malfermi s kodo, estas tuj aperos io simila. 426 00:27:01,346 --> 00:27:03,220 Iĝos demandu vin Kion vi volas fari? 427 00:27:03,220 --> 00:27:06,830 Ĉu vi volas komenci ion hazarda, infana parko, esence vi 428 00:27:06,830 --> 00:27:11,250 povas simple provi kodon sen fakte fari al ajna app. 429 00:27:11,250 --> 00:27:13,020 >> Ĉu vi volas krei novan projekton? 430 00:27:13,020 --> 00:27:16,660 Aŭ ĉu vi volas daŭri labori sur la ekzistanta projekto? 431 00:27:16,660 --> 00:27:20,270 En nia kazo ni iras krei novan projekton. 432 00:27:20,270 --> 00:27:22,980 Do estas vere bela, S kodo reale havas jam 433 00:27:22,980 --> 00:27:26,820 donite iuj ŝablonoj por krei celojn. 434 00:27:26,820 --> 00:27:32,680 Se vi volas fari ludon, s kodo efektive havas ludon ŝablono por vi, 435 00:27:32,680 --> 00:27:36,890 havas paĝo bazitaj aplikoj, langeton bazita apliko. 436 00:27:36,890 --> 00:27:39,280 En ĉi tiu kazo, ni tuj fari iun tre simpla, 437 00:27:39,280 --> 00:27:43,230 kaj ni iras al uzi sola vido apliko. 438 00:27:43,230 --> 00:27:48,270 >> Post tio precize kion vi volas nomi via produkto, kaj kio estas via nomo, 439 00:27:48,270 --> 00:27:52,760 kio estas via ensalutilo, kaj Kiun lingvon vi uzas. 440 00:27:52,760 --> 00:27:57,060 Ĉi tie ni ne volas kontrolu uzante Kerna Datumo. 441 00:27:57,060 --> 00:28:00,170 Kerna Datumo estas esence databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Se vi faras Kerna Datumo, s kodo tuj difini 443 00:28:05,360 --> 00:28:07,710 multe pli komplika klasoj por vi. 444 00:28:07,710 --> 00:28:12,740 Do por subteni ĉiu simpla, ni estas nur tuj faros sen Core Datumoj 445 00:28:12,740 --> 00:28:15,290 aktuale. 446 00:28:15,290 --> 00:28:18,030 >> La problemo ni tuj estos uzante estas that-- la problemo 447 00:28:18,030 --> 00:28:23,770 ni iras al iri kreante estas ke ni esence volas importi Mario de C 448 00:28:23,770 --> 00:28:25,437 al iOS app. 449 00:28:25,437 --> 00:28:26,645 Do ni nomas ke Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Kompreneble vi specifas kion vi volas meti en via projekto. 452 00:28:34,880 --> 00:28:37,870 Kaj tie ni iru. 453 00:28:37,870 --> 00:28:41,390 >> Do ĉi tiu estas iom abrumadora, sed ĉi tiu estas reale 454 00:28:41,390 --> 00:28:43,540 kion ni ĵus vidis en la diapozitivoj. 455 00:28:43,540 --> 00:28:49,710 Kaj la unua areo ni vidos nun estas esence projekto agordo. 456 00:28:49,710 --> 00:28:53,390 Do ĉio vi volas fari projekto, kia mekanismo, 457 00:28:53,390 --> 00:28:58,810 ni nur diras kia mekanismo ĉu vi deziras ke viaj app aperi sur? 458 00:28:58,810 --> 00:29:01,280 Ĉu iPhone, iPad aŭ universala? 459 00:29:01,280 --> 00:29:04,660 Do mekanismo orientiĝo, ĉiuj ĉi aĵoj. 460 00:29:04,660 --> 00:29:08,490 Ne tre grava, sed povus esti, sed ĉi 461 00:29:08,490 --> 00:29:11,050 Estas loko kie vi instalis via projekto se vi reale 462 00:29:11,050 --> 00:29:15,180 volas disfaldi al la Apple vendejo. 463 00:29:15,180 --> 00:29:20,420 >> Bone, ni rigardu iu kiu estas ene nia kodo. 464 00:29:20,420 --> 00:29:22,360 Ni iru tra la dosieron naviganto. 465 00:29:22,360 --> 00:29:30,140 Kaj tiuj estas ĉiuj dosieroj, ke jam venis kun la ŝablono, tre bela. 466 00:29:30,140 --> 00:29:35,980 Do kiam ni klaku unu el ili tiu estas kio similas. 467 00:29:35,980 --> 00:29:38,530 Tre simila al g redaktu. 468 00:29:38,530 --> 00:29:41,340 Sed vi povas vidi ke la sintaksa kolorigo estas probable 469 00:29:41,340 --> 00:29:42,780 iomete pli agrabla. 470 00:29:42,780 --> 00:29:45,610 Kaj estas vere multe pli potenca ol g redaktadon. 471 00:29:45,610 --> 00:29:49,970 Kaj vi povas auto kompleta multajn aĵojn por vi, 472 00:29:49,970 --> 00:29:52,370 kiel ni vidos tre rapide. 473 00:29:52,370 --> 00:29:54,100 >> Ni malfermu la depuración areon ankaŭ. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Bone, kiel ni povas vidi, la konzolo estas ĝuste ĉi tie. 476 00:30:07,000 --> 00:30:13,840 Jenon vi tuj vidos kie vi estas en printf aŭ nsloging ion. 477 00:30:13,840 --> 00:30:17,155 Do sen pli enkonduko, ni reale kompili la app kaj vidu kio okazas. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Unu esenca karakterizaĵo por s kodo, estas ke s kodo 480 00:30:23,410 --> 00:30:25,850 venas kun iPhone simulilo. 481 00:30:25,850 --> 00:30:29,820 Do vi ne bezonas havi iPhone provi vian projekton, 482 00:30:29,820 --> 00:30:34,440 s kodo povas simuli ke por vi, kiel ni povas vidi nun. 483 00:30:34,440 --> 00:30:36,406 >> Ĝi estas sufiĉe agrabla. 484 00:30:36,406 --> 00:30:38,640 Ĝi estas prenante iom iom da tempo kompili 485 00:30:38,640 --> 00:30:43,040 kaj esence ni havas malplena apliko, 486 00:30:43,040 --> 00:30:44,640 kiu fakte nenion faras. 487 00:30:44,640 --> 00:30:46,175 Sed ĝi kompilas. 488 00:30:46,175 --> 00:30:47,380 Estas bela awesome. 489 00:30:47,380 --> 00:30:50,200 Estas multe pli bone ol C, huh? 490 00:30:50,200 --> 00:30:52,130 Bone, do ni provu aldoni ion. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Unu dosiero kiu estas iomete weird tie nomiĝas storyboard. 493 00:31:02,650 --> 00:31:08,020 Tiu estas vere granda, awesome karakterizaĵo por s kodo. 494 00:31:08,020 --> 00:31:14,170 Ĉar en s kodon, vi povas fakte trenu kaj faligi elementoj sur la interfaco 495 00:31:14,170 --> 00:31:17,430 kaj ĝi rekte montri supren. 496 00:31:17,430 --> 00:31:18,055 Ni provu tion. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Ni faligis etiketo tie, "Saluton Mondo !!!" 499 00:31:27,236 --> 00:31:29,740 Ni povas centri tio. 500 00:31:29,740 --> 00:31:30,970 Sufiĉe malvarmeta. 501 00:31:30,970 --> 00:31:33,915 Nun ni kuru ĉi halto simulado. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Ĉi tie ni havas "Saluton Mondo !!!" 504 00:31:38,700 --> 00:31:40,810 Ni eĉ ne fari ajnan kodigo ankoraŭ. 505 00:31:40,810 --> 00:31:42,750 Kio la Heck okazas? 506 00:31:42,750 --> 00:31:45,880 Jen kiom potenca Interfaco Builder povas esti. 507 00:31:45,880 --> 00:31:48,030 Iu eĉ diris, ke Vi povas probable simple 508 00:31:48,030 --> 00:31:52,800 kompletigi app sen skribo probable mil linioj de kodo 509 00:31:52,800 --> 00:31:54,820 nur uzante la Interfaco Builder. 510 00:31:54,820 --> 00:31:59,680 Sed probable ne la plej bona maniero fari ĝin. 511 00:31:59,680 --> 00:32:01,670 >> Nun ni reale preni malsupren al kodigo. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Do la strukturo por la dosiero Estas vere vere interesaj 514 00:32:08,330 --> 00:32:15,610 ĉar kiel vi povas vidi, tie Estas neniu ĉefa funkcio ĉie. 515 00:32:15,610 --> 00:32:17,466 Vidu? 516 00:32:17,466 --> 00:32:19,340 Kiel ni menciis antaŭe, vi povas vidi ke tiu 517 00:32:19,340 --> 00:32:22,830 Estas implementación dosieron por specifa klaso. 518 00:32:22,830 --> 00:32:25,690 Sed ne ekzistas ĉefaj ie. 519 00:32:25,690 --> 00:32:27,490 Do kie estas ĉefa? 520 00:32:27,490 --> 00:32:31,970 Efektive, estas la ĉefaj, sed la ĉefa fakte neatingebla por vi. 521 00:32:31,970 --> 00:32:34,560 La ĉefaj estas ĉi tie. 522 00:32:34,560 --> 00:32:37,120 Tio aspektas familiaraj. 523 00:32:37,120 --> 00:32:41,000 >> Do esence kion iOS faras ene ĉefa 524 00:32:41,000 --> 00:32:43,540 estas ke kiam ajn ĉefajn estas nomita, kiu estas esence 525 00:32:43,540 --> 00:32:49,000 ĉiufoje kiam la app estas ekzekutita, ĝi kreas objekton nomitan AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Kiel mi menciis antaŭe, la tuta app estas vere objekto per sin. 528 00:32:57,350 --> 00:33:02,270 Do tiamaniere, esence la iOS app estas diranta la tradukilo 529 00:33:02,270 --> 00:33:05,540 ke OK, mi tuj kreos produkto nomata AppDelegate, 530 00:33:05,540 --> 00:33:07,620 kaj ke tuj estos mia app. 531 00:33:07,620 --> 00:33:09,640 Do vi devas iri tra kiuj AppDelegate 532 00:33:09,640 --> 00:33:12,040 kaj vidi kio tiu ulo estas faranta. 533 00:33:12,040 --> 00:33:14,850 Mia laboro estas farita por mi. 534 00:33:14,850 --> 00:33:22,070 >> Kaj en AppDelegate vi povas vidi ke estas iuj vere strangaj funkcioj, 535 00:33:22,070 --> 00:33:25,290 nu fakte metodoj, kiuj Apple jam donis al vi. 536 00:33:25,290 --> 00:33:27,464 Kion tio signifas? 537 00:33:27,464 --> 00:33:31,010 Tiuj estas fakte ĝuste protokoloj ke mi parolas. 538 00:33:31,010 --> 00:33:35,670 Do tiuj estas okazaĵoj kiuj Apple transdonis al vi komence. 539 00:33:35,670 --> 00:33:38,050 Estas nenio en iuj de la funkcioj nun, 540 00:33:38,050 --> 00:33:40,820 sed se ni volas pravalorizi ion por nia app 541 00:33:40,820 --> 00:33:46,140 antaŭ akiranta en montranta ajna vidpunkto, ni faru tion ĉi tie. 542 00:33:46,140 --> 00:33:51,150 >> Vi povas simple legi la nomon kaj mi supozas la okazaĵo estas fakte vere klara. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Do nun ĉefa kreis objekto por AppDelegate. 545 00:33:58,350 --> 00:34:05,220 Kaj kio AppDelegate tuj faros Efektive ankaŭ kaŝita de vi. 546 00:34:05,220 --> 00:34:09,250 La AppDelegate tuj komenci ŝarĝante la ViewController stoko. 547 00:34:09,250 --> 00:34:13,170 Do ĝi estas esence tuj komenci ŝarĝi ĉiujn vidpunktojn kiuj vi havas 548 00:34:13,170 --> 00:34:17,500 kaj ĝuste redonu la vido bazita en la hierarkio. 549 00:34:17,500 --> 00:34:21,280 >> Do en ĉi tiu kazo ni nur havas unu vido, kiu estas tie. 550 00:34:21,280 --> 00:34:25,060 Do tio estas la sola vidpunkto ke tuj nomos. 551 00:34:25,060 --> 00:34:28,159 La ViewController logiko estas ĝuste ĉi tie. 552 00:34:28,159 --> 00:34:32,159 Jen la kodo kiu reale kontrolas la vidon ni ĵus vidis. 553 00:34:32,159 --> 00:34:33,679 Bone, ni faru ion tie. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Do viewDidLoad sonas kiel okazaĵo, kiam fakte tiu estas ankaŭ delegito, 556 00:34:50,560 --> 00:34:52,500 ĉi tiu estas ankaŭ protokolo. 557 00:34:52,500 --> 00:34:56,350 >> Do sendepende de la vido estas ŝarĝita, kio estas malantaux la funkcio 558 00:34:56,350 --> 00:34:57,920 nomos. 559 00:34:57,920 --> 00:35:02,840 En tiu kazo ni devas vidi "Saluton Tianyu! "Se ni kuras la programon. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Ĝi faras iom malrapidan kompili storyboard dosierojn. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Nu ja, ni vidos eliron por ĝi. 564 00:35:18,190 --> 00:35:20,720 Estas bela malvarmeta. 565 00:35:20,720 --> 00:35:22,000 Nun ni reale faras Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Mi iras al difini la funkcias tre rapide. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: (int) nivelo rezultoj. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Bone, ĉi tiu estas reale la awesome karakterizaĵo de s kodo aŭtomata finaĵo. 572 00:36:06,410 --> 00:36:10,680 Do kiam vi skribas por kaj tajpu eniri, ĝi jam fordonis la ŝablono 573 00:36:10,680 --> 00:36:12,325 por vi, kiu estas sufiĉe malvarmeta. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Tio devus rigardi vere familiara al vi uloj. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Pardonu, tio estas mia kulpo. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Bone, malvarmeta. 580 00:37:18,120 --> 00:37:22,710 Ke logiko devus rigardi vere familiara al vi knaboj, speciale ĵus Mario. 581 00:37:22,710 --> 00:37:26,140 >> Sed ni nun presi al la konzolo ĉiu ununura tempo, 582 00:37:26,140 --> 00:37:29,280 ĉar ni volas iel subteni aŭtoveturejo de kio ni estas presanta. 583 00:37:29,280 --> 00:37:31,810 Ni intencas uzi la rezultigas iel poste, 584 00:37:31,810 --> 00:37:35,010 por montri la presita el rezulton al la uzanto. 585 00:37:35,010 --> 00:37:37,730 Do anstataŭe ni ĵus nslogging ĉio, 586 00:37:37,730 --> 00:37:42,410 kiun ni stokante ĉio enen funkcio alvoko rezulto, 587 00:37:42,410 --> 00:37:44,070 sed la logiko estas precize la sama. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Post ni finos gxin, ni nur presi niajn rezultojn. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Kaj tie anstataŭ videbligi Mian nomo, ni tuj nomas funkcio. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Vidu kio okazas. 594 00:38:18,090 --> 00:38:21,240 Oops, evidente. 595 00:38:21,240 --> 00:38:24,320 Ni ja havas belan iom piramido el tie. 596 00:38:24,320 --> 00:38:28,370 Tiu estas esence C, ni ĵus manipulanta kie vi nomas funkcio 597 00:38:28,370 --> 00:38:30,010 kaj kiel tiu funkcio similas. 598 00:38:30,010 --> 00:38:31,560 Nenio malsama. 599 00:38:31,560 --> 00:38:34,040 Sed tio estas vere Ne tre ekscita tie, 600 00:38:34,040 --> 00:38:37,500 ĉar ni ne vidas ion de la iPhone app. 601 00:38:37,500 --> 00:38:42,120 >> Do se vi vere havas iPhone app-- se vi vere havas Mario iOS dekstra 602 00:38:42,120 --> 00:38:45,080 nun, vi ne iros vidi ion, kio 603 00:38:45,080 --> 00:38:49,450 havas nenion kiu vidi kun Mario, ĉar ĉiuj tiuj eliroj en konzolo 604 00:38:49,450 --> 00:38:51,620 estas kaŝitaj al uzanto. 605 00:38:51,620 --> 00:38:53,850 Jen kion vi vidas, kio estas "Saluton Mondo !!!" 606 00:38:53,850 --> 00:38:55,720 Ne bona. 607 00:38:55,720 --> 00:39:03,090 Nun ni provu fari la uzanto vidos kio ĝuste ni presi ekstere. 608 00:39:03,090 --> 00:39:06,000 Do ni ne bezonas etiquetar anymore. 609 00:39:06,000 --> 00:39:09,800 Ni provu kaj elkompreni ion alia ke povus esti utila. 610 00:39:09,800 --> 00:39:12,140 >> Ekzistas fakte unu elemento nomata 611 00:39:12,140 --> 00:39:16,460 tekstujon, kiu povus esti tre helpema al ni. 612 00:39:16,460 --> 00:39:19,880 Ĝi esence montras regiono de teksto kiu povas esti redaktata. 613 00:39:19,880 --> 00:39:22,320 Tiel ke aspektas vere utila. 614 00:39:22,320 --> 00:39:23,810 Nun ni treni ĝin kaj malfiksi ĝin. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, ni havas tekston vido en nia vido, vere fantazio. 617 00:39:32,670 --> 00:39:35,430 Tio estas iomete tro granda. 618 00:39:35,430 --> 00:39:38,150 Ni faru ĝin pli malgranda. 619 00:39:38,150 --> 00:39:40,290 Metu ĝin en centro. 620 00:39:40,290 --> 00:39:43,760 Faru ĝin pli malgranda ankaŭ. 621 00:39:43,760 --> 00:39:50,110 >> Nun ni havas tekston vido, kiu povus kutimi montri nian finan rezulton. 622 00:39:50,110 --> 00:39:52,860 Sed nun ĝi estas definitive ne tuj funkcios 623 00:39:52,860 --> 00:39:56,970 ĉar ekzistas no-- la ViewController ni ĵus 624 00:39:56,970 --> 00:40:03,010 difinita ne scias ke estas teksto vido tie. 625 00:40:03,010 --> 00:40:06,550 Do ni devas iel ligas la teksto vido ni ĵus 626 00:40:06,550 --> 00:40:11,660 kreita kun la klaso kiu jam venis kun ni. 627 00:40:11,660 --> 00:40:14,860 >> La vojo ni fari tion estas vere vere magia. 628 00:40:14,860 --> 00:40:18,190 Do malfermu storyboard. 629 00:40:18,190 --> 00:40:22,220 Estas speciala [inaudible] nomata [? asistanto?] [inaudible]. 630 00:40:22,220 --> 00:40:25,190 Kiam vi klakas ke, ĝi estas tuj malfermi du dosierojn. 631 00:40:25,190 --> 00:40:29,425 Unu estas klaso kaj la alia unu estas responda vido por ĝi. 632 00:40:29,425 --> 00:40:31,920 Ĝi estas tre, tre helpema. 633 00:40:31,920 --> 00:40:35,950 Kaj ni nur iras tra la .h dosieron. 634 00:40:35,950 --> 00:40:39,110 Kontrolo, tiu estas [inaudible] logiko. 635 00:40:39,110 --> 00:40:47,280 Premu Kontrolo kaj trenu la teksto vido en la deklaro. 636 00:40:47,280 --> 00:40:48,780 Ni tuj nomas tiun outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Konekti. 639 00:40:53,670 --> 00:40:59,420 Do jen ni deklaris novan posedaĵo por nia ViewController klaso. 640 00:40:59,420 --> 00:41:02,300 Kaj la nova proprieto estas ĝuste la teksto vido 641 00:41:02,300 --> 00:41:05,000 ni kreis en la interfaco konstruaĵo. 642 00:41:05,000 --> 00:41:07,990 Do en tiu maniero povus aliro ĉiuj datumoj 643 00:41:07,990 --> 00:41:13,630 kaj manipuli ĉiu kio estas ene la eligo vido, kiu estas timinda. 644 00:41:13,630 --> 00:41:19,260 >> Do en nia reala kodo, ni faru ion kun tio. 645 00:41:19,260 --> 00:41:23,810 Do tiu tempo kiam ni estas kiel impreso el la fina rezulto por Mario, 646 00:41:23,810 --> 00:41:28,020 ni estas en ne ensalutadon nenion. 647 00:41:28,020 --> 00:41:30,080 Mi volas diri, ni povus teni la tala komunikaĵo. 648 00:41:30,080 --> 00:41:41,490 Krom tio, ni sendi la legado ni ĵus 649 00:41:41,490 --> 00:41:47,622 kreitaj por la eligo vido, kiu Estas UI textview ni ĵus kreita. 650 00:41:47,622 --> 00:41:48,746 Nun ni vidu kio okazas. 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 Ni havas piramido en la app nun. 654 00:41:59,130 --> 00:42:06,720 >> Do la uzanto povas vidi nian eligo ĉar ni kopiis la eligo de nia kodo 655 00:42:06,720 --> 00:42:08,045 al nia interfaco. 656 00:42:08,045 --> 00:42:10,950 Estas sufiĉe bone. 657 00:42:10,950 --> 00:42:14,990 Ĝi fakte ne estas ke ekscita ĉar ni can-- 658 00:42:14,990 --> 00:42:18,250 Ĉiuj app estas faranta estas montrante piramido al vi, 659 00:42:18,250 --> 00:42:20,520 kaj ekzistas nenio vi povas fari pri ĝi. 660 00:42:20,520 --> 00:42:22,330 Ne aparte emocionante. 661 00:42:22,330 --> 00:42:27,840 Do nun ni faru butonon ke malplenigos la vidoj. 662 00:42:27,840 --> 00:42:30,290 Ŝajnas ke butono estos helpema. 663 00:42:30,290 --> 00:42:33,270 Trenu kaj faligu. 664 00:42:33,270 --> 00:42:33,900 Buton unu. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Buton du. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Do kiam ni klaku maldekstre butonon, la vido devus liberigi. 669 00:42:52,052 --> 00:42:53,635 Tie devus esti nenio sur la ekrano. 670 00:42:53,635 --> 00:42:56,970 Kaj kiam ni klaku la dekstra butono, Mario, 671 00:42:56,970 --> 00:42:59,740 la vido tuj aperi denove. 672 00:42:59,740 --> 00:43:05,510 Do tiu vojo ni ankaŭ faros la magio stuff, kontrolo kaj trenu 673 00:43:05,510 --> 00:43:08,740 al la klaso deklaro en la asistanto director-- 674 00:43:08,740 --> 00:43:11,600 en la asistanto spektanto. 675 00:43:11,600 --> 00:43:18,620 En tiu kazo ni preciziganta ke tio devus esti ago. 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 >> Do jen ni jam kreis ago nomita clearMario, 679 00:43:26,830 --> 00:43:34,210 kiu estas la metodo kiu nomus kiam ajn ni premas la butonon klara. 680 00:43:34,210 --> 00:43:41,030 Do en nia reale kodo, ni nur metis la eligo de teksto kaj la eligo vido 681 00:43:41,030 --> 00:43:44,620 al nenio, kaj aliflanken ĝi ŝajnas esti klara. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Krom tio, ni kreos alia metodo nomata runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Ho bedaŭras, ke ne devus esti proprieto. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Bone, ke devus esti agon ankaŭ. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Kiam tiu funkcio estas nomitaj, ni nur kuri Mario dek. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Espereble ke estos bone. 692 00:44:39,780 --> 00:44:41,120 Ĉu ĝi kompili? 693 00:44:41,120 --> 00:44:43,920 Jes. 694 00:44:43,920 --> 00:44:45,090 Ni nun havas opinion. 695 00:44:45,090 --> 00:44:46,560 Ni havas eliron. 696 00:44:46,560 --> 00:44:50,040 Kaj ni simple vidos kio okazas. 697 00:44:50,040 --> 00:44:52,590 Tio foriris. 698 00:44:52,590 --> 00:44:54,500 Estas returne. 699 00:44:54,500 --> 00:44:57,620 Do jen ni specifita kia funkcio 700 00:44:57,620 --> 00:45:00,400 nomos kiam ni tajpas en iu, 701 00:45:00,400 --> 00:45:03,160 kiam ni premas specifa butonon. 702 00:45:03,160 --> 00:45:07,890 Tio estas esence la objektiva ago skemo 703 00:45:07,890 --> 00:45:12,510 por evento gvidita programadon en Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Krom tio, ĝi ne estas tre ekscita 705 00:45:15,030 --> 00:45:19,810 ĉar ni ne povas vere ŝanĝi kiom alta la piramido estos, 706 00:45:19,810 --> 00:45:23,640 do ni probable volas iel ricevas enigon el la uzanto 707 00:45:23,640 --> 00:45:29,490 kaj ŝanĝi la altecon de la piramido bazita sur kion ili eligo. 708 00:45:29,490 --> 00:45:32,900 Do ni tuj faros. 709 00:45:32,900 --> 00:45:38,720 Do tiu tempo kiam ni nomas runMario, ni ne ĝuste voki Mario rekte. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Ĉi tiu titolo. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegita. 714 00:46:23,700 --> 00:46:25,160 Tio estas tre interesa. 715 00:46:25,160 --> 00:46:26,720 Kio estas delegito? 716 00:46:26,720 --> 00:46:28,950 Mi tuj metis sin tie. 717 00:46:28,950 --> 00:46:31,038 Kaj ni tuj vidos kion tio signifas poste. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Do jen ni esence kreis specifaj petskribon nomiĝas UI garde 720 00:46:51,120 --> 00:46:52,210 vido. 721 00:46:52,210 --> 00:46:54,440 A UI garde vido estas esence kion vi volas 722 00:46:54,440 --> 00:46:58,940 vidu ĉiufoje io popoj supren kaj demandas vin por enigo, 723 00:46:58,940 --> 00:47:03,080 kiel kio okazos kiam vi provas aĉeti ion sur app vendejo. 724 00:47:03,080 --> 00:47:14,250 >> Krom tio, kiam vi krei ĝin, ni nur montros garde. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Bone, ni nur rapide testo volas, ke laboro aŭ ne. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Tio estas tre cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Nun ni reale krei enmetkampo por la UI garde. 731 00:47:59,120 --> 00:48:01,170 Tiel estas kiel ni faras tion. 732 00:48:01,170 --> 00:48:07,490 Kaj ni devus havi input vido por la atentigo. 733 00:48:07,490 --> 00:48:09,020 Tre cool. 734 00:48:09,020 --> 00:48:12,330 Ni simple diru 10. 735 00:48:12,330 --> 00:48:14,900 >> Ĝi estas nenion faras rajton nun ĉar la alvoko reale 736 00:48:14,900 --> 00:48:17,770 ne ŝanĝis por ekzekuti Mario. 737 00:48:17,770 --> 00:48:23,470 Do tiu revenis iom iom stranga ĉar kiam ajn 738 00:48:23,470 --> 00:48:30,790 ni premi butonon malsupren, kiam ajn ni premi butonon en la garde vido, 739 00:48:30,790 --> 00:48:35,560 io devas okazi, sed tio ne okazas. 740 00:48:35,560 --> 00:48:37,220 Kiel ni kaptos ke? 741 00:48:37,220 --> 00:48:41,280 Kiel ni scias ke uzanto adiaŭis garde vido 742 00:48:41,280 --> 00:48:45,630 kaj jam eniris ciferon, ĉar nun nenio estas reale okazas. 743 00:48:45,630 --> 00:48:50,450 >> Nu, vi povus esti diveninta konvena, delegacio. 744 00:48:50,450 --> 00:48:55,440 Do krom ĉiuj tiuj deklaroj, 745 00:48:55,440 --> 00:49:03,190 ni devas aldoni novan delegacio al ĝi nomas UI garde vido delegito. 746 00:49:03,190 --> 00:49:06,440 Tiel ke ĉiu unuopa interago aŭ okazaĵo 747 00:49:06,440 --> 00:49:10,190 ke ni tuj havos kun la UI garde vido 748 00:49:10,190 --> 00:49:14,100 tuj manipulos per nia klaso ankaŭ. 749 00:49:14,100 --> 00:49:26,297 >> Do krom tio, estos garde vido klako butonon indekso. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Tiu estas atingita. 752 00:49:37,730 --> 00:49:42,020 Do en tiu kazo ni havas already-- tiel ni havas 753 00:49:42,020 --> 00:49:46,210 eltrovis protokolo kiu manipulos la okazaĵo kiam 754 00:49:46,210 --> 00:49:51,320 Ni alklaku la Done butono en garde vido. 755 00:49:51,320 --> 00:49:55,976 Do ĉiufoje ni adiaŭas la garde vido, ĉi tio devus okazi. 756 00:49:55,976 --> 00:49:57,350 Lasu min provi ĝin tre rapide. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Nu ja, ni atingis ĉi tien. 759 00:50:19,300 --> 00:50:22,210 >> Do jen, kion ni ne volas reale preni estas reale 760 00:50:22,210 --> 00:50:43,120 akiri the-- Do ni volas eliri la teksto, kiun ni havas antaŭe 761 00:50:43,120 --> 00:50:45,350 eniris en la garde vido. 762 00:50:45,350 --> 00:50:48,505 Kaj surbaze de teksto, ni estas tuj montri Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Tiu tre rapide rezultas se ĝi efektive funkcias aŭ ne. 765 00:50:55,480 --> 00:50:59,476 Do en tiu kazo, se ni enigo, diru, 10, ni devus vidi 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Tre bone, ni havas nombro ĉi tie. 768 00:51:05,210 --> 00:51:06,470 Estas sufiĉe bone. 769 00:51:06,470 --> 00:51:16,840 Nun la lasta paŝo estos be-- Do la lasta paŝo ni bezonas fari nun 770 00:51:16,840 --> 00:51:21,100 Estas nur voki Mario kun nivelo bazita en la enigo 771 00:51:21,100 --> 00:51:23,270 ke ni metas en garde vido. 772 00:51:23,270 --> 00:51:26,920 Do ni devas konverti tiu ŝnuro en iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Statika overflow estas tre respektinda. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Kaj tiam ni simple nomas mem marioWithLevels valoro. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Vidu volas, ke fakte funkcias aŭ ne. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Ni jam donis piramidon. 781 00:52:01,550 --> 00:52:04,785 Ni provu ŝanĝi la altecon. 782 00:52:04,785 --> 00:52:06,530 Tio efektive funkcias. 783 00:52:06,530 --> 00:52:07,610 Estas bela malvarmeta. 784 00:52:07,610 --> 00:52:10,420 Por ke nun vi povas simple input ajna valoro vi deziras. 785 00:52:10,420 --> 00:52:12,440 Ni simple diras kvar. 786 00:52:12,440 --> 00:52:14,260 Tio estas bela awesome. 787 00:52:14,260 --> 00:52:17,090 Do tiu estas esence vere rapida ekzemplo 788 00:52:17,090 --> 00:52:23,170 por kiel krei projekton en s kodo kaj kiel vere rapide telegramon supren 789 00:52:23,170 --> 00:52:26,220 iuj vere simplaj eventoj kaj funkcioj. 790 00:52:26,220 --> 00:52:28,840 >> Do la fonto tuj esti metitaj en linio poste. 791 00:52:28,840 --> 00:52:33,400 Do se vi estas interesata en kiel iOS Mario laboras, 792 00:52:33,400 --> 00:52:38,360 Mi tuj metis ekzakte la sama projektoj sur la CS50 retejo poste. 793 00:52:38,360 --> 00:52:41,260 Ni esence farita kun la somero, kaj antaŭ ol ni finos 794 00:52:41,260 --> 00:52:45,190 Mi nur volas atentigi vin infanoj al iuj vere awesome rimedoj ke 795 00:52:45,190 --> 00:52:47,550 estas haveblaj rete. 796 00:52:47,550 --> 00:52:52,270 >> Evidente la Apple dokumentado tuj estos tre helpema. 797 00:52:52,270 --> 00:52:57,630 Sed krom tio, mi speciale rekomendi kvar fontoj, kodo lernejo, 798 00:52:57,630 --> 00:53:02,120 arbo domo, AppCoda kaj WWDC filmetoj. 799 00:53:02,120 --> 00:53:07,270 Kodo lernejo kaj arbo domo estas du linio instrupova retejojn, 800 00:53:07,270 --> 00:53:10,210 kiu specife enfokusigi sur programado. 801 00:53:10,210 --> 00:53:16,930 Speciale por kodo lernejo, ili havas vere bona lernilo en iOS. 802 00:53:16,930 --> 00:53:19,550 >> Tio estas vere rapida ekzemplo por tio. 803 00:53:19,550 --> 00:53:22,980 Ili efektive kreas vere cute-- Rigardu tiun malgrandan cute iPhone 804 00:53:22,980 --> 00:53:24,920 dude tie, ĝi estas bela awesome. 805 00:53:24,920 --> 00:53:31,010 Kaj la maniero klarigi Objective C sintakso estas perfekte klara. 806 00:53:31,010 --> 00:53:32,230 Arbo domo estas la sama. 807 00:53:32,230 --> 00:53:34,660 Kaj AppCoda estas forumo. 808 00:53:34,660 --> 00:53:38,130 Estas fakte la blog kiu estis kuri per vere spertis Objective C 809 00:53:38,130 --> 00:53:39,120 programisto. 810 00:53:39,120 --> 00:53:43,950 Kaj ĉiuj tiuj lernilojn en AppCoda estas sufiĉe mallonga kaj facila de implementar, 811 00:53:43,950 --> 00:53:45,390 tre rekomendita. 812 00:53:45,390 --> 00:53:47,700 >> Kaj se estas desarrollador, definitive iri kontroli 813 00:53:47,700 --> 00:53:55,660 kiom la WWDC videoj kie vi povas lerni pri la lasta iOS programado 814 00:53:55,660 --> 00:53:58,250 teknikoj, APIs kaj bibliotekoj. 815 00:53:58,250 --> 00:54:02,850 Por ke estas preskaux ĝi por la seminario. 816 00:54:02,850 --> 00:54:03,820 Dankon tiom. 817 00:54:03,820 --> 00:54:08,040 Kaj mi esperas ke vi havas amuzon krei vian propran iOS app. 818 00:54:08,040 --> 00:54:09,302