1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Hey, hoe is dit gaan almal? 3 00:00:13,590 --> 00:00:20,250 En dit is die IOS App ontwikkeling van objektiewe c seminaar. 4 00:00:20,250 --> 00:00:21,520 En my naam is Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Ek is 'n Lowell junior nou, konsentreer in rekenaarwetenskap. 6 00:00:26,114 --> 00:00:28,030 So in hierdie seminaar Ek is gaan julle ouens te leer 7 00:00:28,030 --> 00:00:30,770 'n bietjie oor hoe om 'n app te maak. 8 00:00:30,770 --> 00:00:33,030 Yay, opgewonde vir dit. 9 00:00:33,030 --> 00:00:36,790 >> So voordat ons selfs begin duik in die werklike ontwikkeling kant, 10 00:00:36,790 --> 00:00:41,840 laat ons net regtig vinnig praat oor Hoekom wil jy dalk 'n IOS app op te bou? 11 00:00:41,840 --> 00:00:43,940 Hoekom is IOS so awesome? 12 00:00:43,940 --> 00:00:47,250 Dus is die eerste probleem, die eerste ding wat pretty awesome vir ons, 13 00:00:47,250 --> 00:00:51,190 veral as 'n CS50 student, is dat IOS 14 00:00:51,190 --> 00:00:55,860 gebruik Doelwit C. Wel, daar is 'n nuwe taal, die sogenaamde Swift, 15 00:00:55,860 --> 00:00:58,260 maar ons gaan nie gebruik wat in hierdie seminaar. 16 00:00:58,260 --> 00:01:01,540 As jy belangstel in Swift, is daar is 'n onafhanklike seminaar oor dat. 17 00:01:01,540 --> 00:01:05,590 Maar doelstelling C is basies 'n superset van C. Betekenis 18 00:01:05,590 --> 00:01:10,230 dat alles wat jy in C gebruik kan word in die doelstelling C vertaal 19 00:01:10,230 --> 00:01:11,630 baie maklik. 20 00:01:11,630 --> 00:01:15,730 >> As jy dalk later, dat dit inderdaad sien daar is 'n paar baie basiese sintaksis, is 21 00:01:15,730 --> 00:01:19,790 basies presies dieselfde, C en Doel C. So, 22 00:01:19,790 --> 00:01:22,860 omdat jy CS50 geneem hierdie ver, het jy al 23 00:01:22,860 --> 00:01:26,500 weet doelstelling C, ten minste 40%. 24 00:01:26,500 --> 00:01:30,720 Ook, Apple het 'n baie robuuste API vir IOS. 25 00:01:30,720 --> 00:01:33,750 Daar is 'n baie werklik gek dinge wat jy kan doen met dit. 26 00:01:33,750 --> 00:01:36,760 Waarvan een is iemand eintlik geskep het 'n IOS app 27 00:01:36,760 --> 00:01:40,600 vir die beheer van motors, wat is redelik interessant. 28 00:01:40,600 --> 00:01:42,610 Waarskynlik 'n helikopter is meer opwindend. 29 00:01:42,610 --> 00:01:47,020 Maar dit is hoe kragtig die IOS API kan wees. 30 00:01:47,020 --> 00:01:49,340 >> En as jy dalk ' uitgepluis nou, 31 00:01:49,340 --> 00:01:53,000 die stapel oorloop is waarskynlik een van die die belangrikste aanlyn hulpbronne 32 00:01:53,000 --> 00:01:54,250 aan u beskikbaar. 33 00:01:54,250 --> 00:01:58,090 En die goeie nuus vir elke enkele probleem wat jy moontlik kan 34 00:01:58,090 --> 00:02:01,840 dink, terwyl die bou van jou finale projek in Objective C, 35 00:02:01,840 --> 00:02:05,910 daar is waarskynlik 'n stapel oorloop antwoord. 36 00:02:05,910 --> 00:02:07,420 Dis net awesome. 37 00:02:07,420 --> 00:02:12,780 Behalwe dat, IOS is regtig 'n platform 38 00:02:12,780 --> 00:02:16,260 waar jy kan bereik 'n groot gehoor met min moeite. 39 00:02:16,260 --> 00:02:20,170 Dit is nie soos Android, waar alles is mooi gefragmenteerde. 40 00:02:20,170 --> 00:02:22,540 >> Alles IOS is verenig. 41 00:02:22,540 --> 00:02:25,920 En so lank as wat jy skep 'n app vir 'n iPhone, 42 00:02:25,920 --> 00:02:31,260 jy kan baie maklik hawe wat aan iPad, iPad mini, of verskillende iPhone groottes. 43 00:02:31,260 --> 00:02:33,050 Dit is alles baie gerieflik. 44 00:02:33,050 --> 00:02:36,430 En dit is net regtig 'n goeie vir die indrukwekkende jou vriende. 45 00:02:36,430 --> 00:02:38,920 Jy kan net oor 'n iPhone en vertel jou vriend hey, 46 00:02:38,920 --> 00:02:40,250 dit is die app ek maak. 47 00:02:40,250 --> 00:02:43,860 Jy kan dit doen vir enige lessenaar apps, wat is lekker. 48 00:02:43,860 --> 00:02:48,870 >> Alle reg, laat ons nou eintlik kry in die taal Doelwit C. 49 00:02:48,870 --> 00:02:52,910 So waarom nie ons begin met 'n paar baie basiese sintaks. 50 00:02:52,910 --> 00:02:57,410 Soos ek voor Doelwit genoem C Dit is basies 'n superset van C. 51 00:02:57,410 --> 00:03:01,860 So 'n baie basiese sintaks is eintlik presies dieselfde. 52 00:03:01,860 --> 00:03:06,150 Waarby 'n veranderlike en voeg twee veranderlikes saam 53 00:03:06,150 --> 00:03:09,440 is presies soos ons in Mario gedoen het. 54 00:03:09,440 --> 00:03:11,140 Niks nuut hier. 55 00:03:11,140 --> 00:03:17,370 >> Net so, die loseerder lus en toestand is ook dieselfde. 56 00:03:17,370 --> 00:03:22,370 Wat jy kan doen 'n lus vir net soos jy het het in 'n Mario [onhoorbaar]. 57 00:03:22,370 --> 00:03:26,280 En wat jy kan doen voorwaardes net soos wat jy 58 00:03:26,280 --> 00:03:29,240 gedoen het in jou vorige p stelle. 59 00:03:29,240 --> 00:03:33,400 Maar doelstelling C is nie heeltemal C, 60 00:03:33,400 --> 00:03:36,640 en daar is iets wat is 'n soort van vreemde daaroor. 61 00:03:36,640 --> 00:03:42,340 >> Die eerste een is dat wanneer jy doen C programmering, jy gewoonlik noem 62 00:03:42,340 --> 00:03:46,310 sluit en dan 'n biblioteek naam. 63 00:03:46,310 --> 00:03:49,860 Maar in Objective C jy noem dat die invoer. 64 00:03:49,860 --> 00:03:53,100 Basies sê funksies, net verskillende name. 65 00:03:53,100 --> 00:03:55,940 En die snare is eintlik 'n bietjie vreemd. 66 00:03:55,940 --> 00:03:58,250 Jy kan sien dat die eerste ding wat is 'n soort van vreemde 67 00:03:58,250 --> 00:04:04,190 is dat jy 'n mooi weird-- sorry-- jy het 'n mooi vreemde NS 68 00:04:04,190 --> 00:04:04,960 teken hier verby. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 En die tweede ding dit is soort van vreemde 71 00:04:09,160 --> 00:04:14,090 is jy 'n plat teken voor eintlik verklaar dat die string. 72 00:04:14,090 --> 00:04:19,209 So het die by teken basies beteken dat 'n string is nie net 'n string, 73 00:04:19,209 --> 00:04:20,880 dit is eintlik 'n voorwerp. 74 00:04:20,880 --> 00:04:22,780 Ons gaan om te verduidelik wat later so doen nie 75 00:04:22,780 --> 00:04:25,800 paniek as jy dit nie doen nie verstaan ​​wat dit beteken. 76 00:04:25,800 --> 00:04:29,980 En druk te konsole is 'n bietjie anders, want in C ons printf noem, 77 00:04:29,980 --> 00:04:33,350 maar in Objective C ons noem [onhoorbaar]. 78 00:04:33,350 --> 00:04:35,640 >> Jy mag dalk wonder wat is dit. 79 00:04:35,640 --> 00:04:38,070 Dit is basies printf, net 'n ander taal. 80 00:04:38,070 --> 00:04:41,370 Presies dieselfde gebruik, presies dieselfde funksionaliteit. 81 00:04:41,370 --> 00:04:44,060 Wel dit blyk dat Objektiewe C eintlik 82 00:04:44,060 --> 00:04:50,040 het 'n ns voorvoegsel in byna alles, elke basiese data tipe, 83 00:04:50,040 --> 00:04:52,690 nsstring, nsarray, nsdictionary. 84 00:04:52,690 --> 00:04:56,340 Die rede hiervoor is dat ns eintlik staan ​​vir volgende stap 85 00:04:56,340 --> 00:04:59,980 wat is 'n maatskappy wat Steve Jobs het gestig, 86 00:04:59,980 --> 00:05:03,960 wat is 'n maatskappy waar die taal doelstelling C gebore. 87 00:05:03,960 --> 00:05:06,140 So, dit is basies tradisie. 88 00:05:06,140 --> 00:05:09,010 Ek weet dit is 'n bietjie vreemd, maar dit is Apple. 89 00:05:09,010 --> 00:05:16,840 >> So iets is wat selfs Weirder as dit is 'n funksie verklaring. 90 00:05:16,840 --> 00:05:22,600 Dit is baie anders as wat ons sien in C, want hier is dit eintlik 91 00:05:22,600 --> 00:05:25,190 nie soos C kyk nie. 92 00:05:25,190 --> 00:05:28,810 Wat jy here-- deur die manier is dit nie 'n koeël punt, 93 00:05:28,810 --> 00:05:30,690 dit is 'n minus teken. 94 00:05:30,690 --> 00:05:36,440 Jy het 'n minus teken hakies leemte en dan die funksie naam. 95 00:05:36,440 --> 00:05:38,450 Laat ons net sê as ons het hello world, dan 96 00:05:38,450 --> 00:05:42,820 die terugkeer tipe leemte sal wees omdat ons terugkeer niks. 97 00:05:42,820 --> 00:05:44,680 >> Wat regtig weird is dat wanneer jy 98 00:05:44,680 --> 00:05:49,580 met meer as een parameter verby in 'n dieselfde funksie wat 99 00:05:49,580 --> 00:05:53,870 sal regtig weird wees soos hier gewys. 100 00:05:53,870 --> 00:05:58,230 Ons het 'n metode naam, genoem addInt te [onhoorbaar] 101 00:05:58,230 --> 00:06:00,370 en ons is verby een parameter. 102 00:06:00,370 --> 00:06:05,170 Maar nou dat die, ons het meer metode noem met. 103 00:06:05,170 --> 00:06:08,500 En ná met ons verby Die tweede parameter. 104 00:06:08,500 --> 00:06:11,940 Dit is eintlik 'n bietjie vreemd, Maar al hierdie funksie verklarings 105 00:06:11,940 --> 00:06:14,770 volg dieselfde patroon as hierdie. 106 00:06:14,770 --> 00:06:17,450 >> Ons het 'n minus teken om te begin. 107 00:06:17,450 --> 00:06:21,550 Die minus teken kan 'n plus-teken wees soms gebaseer op watter soort metode 108 00:06:21,550 --> 00:06:22,340 is dit. 109 00:06:22,340 --> 00:06:25,000 Metode is basies 'n ander naam vir funksie. 110 00:06:25,000 --> 00:06:26,760 En ons gaan verduidelik dat later, toe 111 00:06:26,760 --> 00:06:30,580 ons praat oor voorwerp georiënteerde programmering. 112 00:06:30,580 --> 00:06:34,300 Jy eers spesifiseer die terugkeer tik in hakies, 113 00:06:34,300 --> 00:06:37,450 waarna kom die metode naam. 114 00:06:37,450 --> 00:06:40,310 Jy verby een parameter. 115 00:06:40,310 --> 00:06:44,750 En as jy meer parameters wat jy nodig het om die metode naam uit te brei 116 00:06:44,750 --> 00:06:46,770 en skryf basies iets meer hier. 117 00:06:46,770 --> 00:06:48,090 >> Dit kan enigiets wat jy wil wees. 118 00:06:48,090 --> 00:06:50,140 In ons geval is dit met. 119 00:06:50,140 --> 00:06:56,160 Maar jy kan sê end, of of of abc volle bar, wat jy wil. 120 00:06:56,160 --> 00:06:59,500 En dan na dat jy verby parameter b. 121 00:06:59,500 --> 00:07:01,750 Dit is werklik 'n vreemde konvensie, maar ons is 122 00:07:01,750 --> 00:07:05,800 gaan om te sien waarom Apple wou wat baie vinnig doen. 123 00:07:05,800 --> 00:07:10,530 So hoe funksie noem jy? 124 00:07:10,530 --> 00:07:15,520 Roeping van 'n funksie in Objective C is ook verskillend van C. 125 00:07:15,520 --> 00:07:18,170 >> Eintlik, roep 'n funksie in Objective C 126 00:07:18,170 --> 00:07:21,030 is meer soos jy praat met iemand. 127 00:07:21,030 --> 00:07:27,030 Hier het ons self, wat is 'n voorwerp genoem. 128 00:07:27,030 --> 00:07:33,830 Jy is basies vertel van die beswaar self om te sê "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Dit is hoe die funksie te roep. 130 00:07:36,830 --> 00:07:41,690 'N voorwerp en 'n metode naam gekombineer met mekaar. 131 00:07:41,690 --> 00:07:49,600 En dit is waar die vreemde uitbreiding vir metode naam regtig kom in die spel. 132 00:07:49,600 --> 00:07:52,150 >> Kom ons kyk na die tweede voorbeeld. 133 00:07:52,150 --> 00:07:56,780 Ons het net 'n metode genoem gedefinieer addInt met blah blah blah. 134 00:07:56,780 --> 00:08:00,066 So in hierdie geval as jy 'n beroep daardie spesifieke [? boodskap?] dit gaan 135 00:08:00,066 --> 00:08:02,035 om te lyk soos self addInt: 10 met: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Dit klink soos Engels. 138 00:08:08,070 --> 00:08:11,980 Hoewel die funksie funksie verklaring is vreemd, 139 00:08:11,980 --> 00:08:15,600 die punt van doelstelling C se metode verklaring patroon, 140 00:08:15,600 --> 00:08:18,830 is dat wanneer jy 'n beroep die funksie of metode 141 00:08:18,830 --> 00:08:21,980 dit sal klink soos die werklike Engels. 142 00:08:21,980 --> 00:08:25,270 So dit is baie intuïtief sodra jy in dit. 143 00:08:25,270 --> 00:08:28,740 >> Veral in hierdie geval, waar jy kan basies 144 00:08:28,740 --> 00:08:33,010 sien dat die funksie naam is soort van dokumentasie self. 145 00:08:33,010 --> 00:08:35,390 Jy hoef nie enige meer verduideliking te sien 146 00:08:35,390 --> 00:08:42,770 wat presies gebeur het, wat presies een parameter doen. 147 00:08:42,770 --> 00:08:48,470 Gaan as dit nie, laat ons praat 'n bietjie bietjie oor objekgeoriënteerde programmering. 148 00:08:48,470 --> 00:08:52,160 Objekgeoriënteerde programmering is een van die fundamentele ontwikkeling 149 00:08:52,160 --> 00:08:57,110 tegnieke of patrone wat gebruik doelstelling C. doelstelling C 150 00:08:57,110 --> 00:09:03,110 objektiewe C, nie genoem C, vir 'n baie goeie rede. 151 00:09:03,110 --> 00:09:07,560 >> Dus, voordat ons in Objektiewe C sintaksis, 152 00:09:07,560 --> 00:09:11,670 Kom ons regtig vinnig kyk na wat presies is 'n voorwerp. 153 00:09:11,670 --> 00:09:15,480 Ons het waarskynlik iets gedoen agtige voorwerp voor, wat 154 00:09:15,480 --> 00:09:19,780 is die struct wanneer jy geroep implementering van 'n boom of 'n geskakelde lys 155 00:09:19,780 --> 00:09:25,730 of [? probeer. ?] So, dit is basies soos 'n struct, 156 00:09:25,730 --> 00:09:28,560 maar dit is baie meer kragtig as dit. 157 00:09:28,560 --> 00:09:33,150 'N voorwerp het metodes en eienskappe. 158 00:09:33,150 --> 00:09:35,310 Metodes is basies funksies. 159 00:09:35,310 --> 00:09:39,480 Basies funksies wat 'n spesifiek tot 'n sekere voorwerp. 160 00:09:39,480 --> 00:09:45,440 >> En eiendomme is basies die veld wat jy spesifiseer in die struct. 161 00:09:45,440 --> 00:09:48,500 So vir elke enkele voorwerp ons het 'n paar eiendom 162 00:09:48,500 --> 00:09:53,160 wat 'n paar veranderlikes wat is spesifiek vir die doel. 163 00:09:53,160 --> 00:09:57,170 En ons het 'n paar funksies wat is ook spesifiek op die voorwerp. 164 00:09:57,170 --> 00:10:01,180 En die funksies metodes genoem en die veranderlikes eienskappe genoem. 165 00:10:01,180 --> 00:10:03,190 Dit is net 'n fancy naam. 166 00:10:03,190 --> 00:10:10,440 Terwyl jy Trouens, elke enkele uitsig jy sien, terwyl jy 'n IOS app oop, 167 00:10:10,440 --> 00:10:17,720 laat ons net sê Twitter of Facebook, elke enkele uitsig wat jy sien is 'n voorwerp. 168 00:10:17,720 --> 00:10:22,110 En selfs die hele app is 'n voorwerp om te begin met. 169 00:10:22,110 --> 00:10:25,340 Baie interessante konsep. 170 00:10:25,340 --> 00:10:28,480 >> En hoekom wil ons voorwerp georiënteerde programmering? 171 00:10:28,480 --> 00:10:33,530 So jy kan dink dat wanneer jy program dit kry redelik ingewikkeld. 172 00:10:33,530 --> 00:10:36,400 Laat ons net sê wanneer jy implementering skaakbord, 173 00:10:36,400 --> 00:10:40,020 die logika gaan ingewikkeld word. 174 00:10:40,020 --> 00:10:43,280 Jy het 36 verskillende stukke, so dat as jy 175 00:10:43,280 --> 00:10:48,370 wil logika vir almal om te skryf 36 verskillende stukke in skaak, 176 00:10:48,370 --> 00:10:52,150 wat gaan 'n baie om te wees verskillende funksies en veranderlikes. 177 00:10:52,150 --> 00:10:54,070 Dit is 'n baie moeite. 178 00:10:54,070 --> 00:10:58,980 En waarskynlik jy gaan 'n te skryf ander metode of ander funksie 179 00:10:58,980 --> 00:11:03,950 vir elk van die stuk te presies beheer wat hulle doen. 180 00:11:03,950 --> 00:11:08,830 >> Maar georiënteerde voorwerp as jy dit doen programmering, al hierdie stukke 181 00:11:08,830 --> 00:11:12,440 kan in onttrek word 'n enkele voorwerp. 182 00:11:12,440 --> 00:11:16,111 En die voorwerp sal 'n paar algemene eienskappe, soos watter soort stuk 183 00:11:16,111 --> 00:11:16,610 is dit? 184 00:11:16,610 --> 00:11:17,740 Watter kleur is dit? 185 00:11:17,740 --> 00:11:19,480 Hoe kan dit beweeg? 186 00:11:19,480 --> 00:11:24,660 En in die manier wat jy het grootliks vereenvoudig die logika van dit. 187 00:11:24,660 --> 00:11:28,480 So dit is net 'n baie goeie manier ingewikkelde programme te maak, 188 00:11:28,480 --> 00:11:33,700 en hiërargiese verhouding binne die program, baie eenvoudig. 189 00:11:33,700 --> 00:11:36,800 As ons gaan om te sien waarom baie vinnig wanneer 190 00:11:36,800 --> 00:11:39,660 ons is eintlik doen programming-- wanneer ons eintlik 191 00:11:39,660 --> 00:11:42,830 doen 'n S-kode programmering sessie later. 192 00:11:42,830 --> 00:11:48,120 >> Wel, in Behalwe dat, objekgeoriënteerde programmering 193 00:11:48,120 --> 00:11:50,030 is net 'n baie pret. 194 00:11:50,030 --> 00:11:51,990 Jy het jou eie voorwerp te ontwerp. 195 00:11:51,990 --> 00:11:56,080 Jy het om te ontwerp wat beteken dit lyk soos deur jouself. 196 00:11:56,080 --> 00:11:58,250 Daar is geen reg antwoord daarop. 197 00:11:58,250 --> 00:12:02,940 En dit is heeltemal interessant. 198 00:12:02,940 --> 00:12:07,270 So in objekgeoriënteerde programmering, twee fundamentele konsepte 199 00:12:07,270 --> 00:12:10,130 sal die klas en byvoorbeeld wees. 200 00:12:10,130 --> 00:12:13,570 'N Klas is basies 'n sjabloon vir voorwerp. 201 00:12:13,570 --> 00:12:18,070 En 'n geval is basies een spesifieke voorwerp. 202 00:12:18,070 --> 00:12:21,090 >> Laat ons net sê jy maak 'n koekie. 203 00:12:21,090 --> 00:12:24,800 In hierdie geval, elke enkele koekie jy eintlik eindig met 204 00:12:24,800 --> 00:12:27,310 gaan 'n voorwerp wees. 205 00:12:27,310 --> 00:12:35,830 Maar die koekie plaat wat jy gebruik om te bak al die koekies sal 'n klas wees. 206 00:12:35,830 --> 00:12:37,880 'N Klas is basies 'n sjabloon. 207 00:12:37,880 --> 00:12:46,170 En die instansie sal een spesifieke wees voorwerp geskep uit die klas. 208 00:12:46,170 --> 00:12:49,970 >> En 'n geval sal geskep word op grond van klas verklaring, 209 00:12:49,970 --> 00:12:56,760 soos ons sal sien in later skyfies. 210 00:12:56,760 --> 00:13:00,010 So laat ons eintlik 'n werklik vinnige voorbeeld [onhoorbaar]. 211 00:13:00,010 --> 00:13:04,280 Kom ons sê ons is te verklaar 'n voorwerp vir 'n kat. 212 00:13:04,280 --> 00:13:07,930 Die voorwerp moet have-- die kat klas moet 213 00:13:07,930 --> 00:13:11,260 het 'n paar eienskappe en metodes. 214 00:13:11,260 --> 00:13:17,300 Watter soort van eiendomme moet die klas have-- moet die kat het? 215 00:13:17,300 --> 00:13:20,580 >> Byvoorbeeld, kleur, ouderdom en ras, diegene 216 00:13:20,580 --> 00:13:24,440 sal veranderlikes wees dat is spesifiek vir elke kat. 217 00:13:24,440 --> 00:13:27,790 En dit is 'n paar dinge wat ons gebruik om 'n kat te beskryf. 218 00:13:27,790 --> 00:13:31,880 Watter soort metode, of wat kan 'n kat doen? 219 00:13:31,880 --> 00:13:37,160 'N paar vinnige voorbeelde sou jaag wees muis, vis eet of net miaau. 220 00:13:37,160 --> 00:13:40,900 Dit is 'n baie vinnige voorbeeld van kat klas. 221 00:13:40,900 --> 00:13:46,920 En 'n baie spesifieke kat voorwerp sal 'n kat wees 222 00:13:46,920 --> 00:13:50,930 waar ons spesifiseer die kleur, ouderdom en ras. 223 00:13:50,930 --> 00:13:53,790 >> In daardie geval, ons doel is nie meer 'n klas nie. 224 00:13:53,790 --> 00:14:00,010 Ons kopieer die sjabloon van die klas en elkeen van ons spesifieke inligting spesifiseer 225 00:14:00,010 --> 00:14:04,510 aan daardie spesifieke voorwerp dit onafhanklik te maak. 226 00:14:04,510 --> 00:14:09,350 En wanneer jy 'n beroep 'n metode in 'n voorwerp, 227 00:14:09,350 --> 00:14:16,640 jy net noem miauw op die voorwerp, wat is die kat jy net geskep. 228 00:14:16,640 --> 00:14:19,020 >> Waarskynlik sal jy druk iets soos "Hello World! 229 00:14:19,020 --> 00:14:20,000 Miaau. " 230 00:14:20,000 --> 00:14:22,110 Oulik. 231 00:14:22,110 --> 00:14:24,500 Alle reg, laat ons net kry in 'n paar besonderhede 232 00:14:24,500 --> 00:14:30,650 en sien wat presies doen wat vertaal in om iOS programmering. 233 00:14:30,650 --> 00:14:36,500 So in IOS programmering elke enkele klas sal in twee lêers geïmplementeer word. 234 00:14:36,500 --> 00:14:41,420 Een lêer is hier, wat is die koppelvlak genoem. 235 00:14:41,420 --> 00:14:45,300 'N ander lêer is hier, wat is implementering genoem. 236 00:14:45,300 --> 00:14:48,890 >> Tipies van die koppelvlak sal extension.h het 237 00:14:48,890 --> 00:14:51,740 soos ons in C biblioteke gesien het. 238 00:14:51,740 --> 00:14:56,340 En implementering lêer gaan extension.n te hê. 239 00:14:56,340 --> 00:14:57,260 Dit is soort van vreemde. 240 00:14:57,260 --> 00:15:01,270 Maar .n beteken eintlik .c, is daar geen fundamentele verskil tussen die 241 00:15:01,270 --> 00:15:02,100 twee. 242 00:15:02,100 --> 00:15:06,650 So in hierdie geval, kan ons sien dat ons verklaar koppelvlak, Cat: voorwerp. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Dit is erfenis genoem. 245 00:15:13,760 --> 00:15:19,170 Ons is basies erfgename van die kat klas uit die voorwerp klas. 246 00:15:19,170 --> 00:15:24,790 So elke eiendom en metode wat was wat voorheen in die objekklas 247 00:15:24,790 --> 00:15:28,560 sal outomaties gedefinieer word in 'n kat klas as well. 248 00:15:28,560 --> 00:15:35,900 >> Behalwe dat, ons kleur definieer, ras en ouderdom, drie veranderlikes. 249 00:15:35,900 --> 00:15:39,360 Dit lyk eintlik soos iets wat jy gedoen het voor. 250 00:15:39,360 --> 00:15:41,770 Dit lyk soos struct. 251 00:15:41,770 --> 00:15:44,950 Dit is basies die sintaksis vir struct verklaring, 252 00:15:44,950 --> 00:15:47,710 en dit is heeltemal korrek. 253 00:15:47,710 --> 00:15:51,825 En omdat ek voorheen genoem, die verskil 'n struct 254 00:15:51,825 --> 00:15:53,960 en 'n voorwerp, een van die fundamentele verskille 255 00:15:53,960 --> 00:15:59,080 is dat 'n voorwerp het metode, terwyl 'n struct het slegs veranderlikes. 256 00:15:59,080 --> 00:16:03,450 So bo en behalwe die eienskappe of veranderlikes wat ons vir die doel geskep het, 257 00:16:03,450 --> 00:16:05,700 ons spesifiseer paar metode. 258 00:16:05,700 --> 00:16:09,720 >> Laat ons net hier sê dat ons twee metodes, een is miauw, 259 00:16:09,720 --> 00:16:12,460 'n ander een is jaag muis. 260 00:16:12,460 --> 00:16:18,600 Ons wil seker te wees wat verby 'n parameter gebaseer op ons vorige metode 261 00:16:18,600 --> 00:16:20,440 verklaring patroon. 262 00:16:20,440 --> 00:16:22,160 Jy het waarskynlik wil wees verby 'n muis. 263 00:16:22,160 --> 00:16:25,180 En jy sal waarskynlik wil hê 'n Bool duidelik maak om terug te keer 264 00:16:25,180 --> 00:16:30,010 As jou kat het suksesvol gevang die muis of nie. 265 00:16:30,010 --> 00:16:33,170 >> Dit is die koppelvlak, maar ons kan sien dat die koppelvlak eintlik 266 00:16:33,170 --> 00:16:35,150 doen niks. 267 00:16:35,150 --> 00:16:40,800 Dit vertel net 'n program wat exists-- wat bestaan ​​in die RTT-klas. 268 00:16:40,800 --> 00:16:43,640 So ten einde vir die program om iets te doen, 269 00:16:43,640 --> 00:16:46,680 ons nodig implementering lêers te hê. 270 00:16:46,680 --> 00:16:51,940 So hier is die eerste ding wat ons doen, is natuurlik ons ​​die invoer van die koppelvlak. 271 00:16:51,940 --> 00:16:56,470 Nadat ons die invoer van die koppelvlak, Ons definieer die metode. 272 00:16:56,470 --> 00:17:00,150 >> Laat ons net hier miauw sê wil net druk 273 00:17:00,150 --> 00:17:01,740 "Hello World!" aan die konsole. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 En na die implementering lêer, ons is redelik baie gedoen. 276 00:17:08,460 --> 00:17:14,530 Dit is basies 'n klas verklaring vir een klas. 277 00:17:14,530 --> 00:17:19,970 So nou is die vraag: hoe om 'n veranderlike verklaar jy dit? 278 00:17:19,970 --> 00:17:26,880 Die manier waarop jy 'n klas gebruik om 'n te skep voorwerp in Objective C is hier geskryf. 279 00:17:26,880 --> 00:17:30,730 >> Jy moet eers bepaal dat dit is 'n kat wyser, 280 00:17:30,730 --> 00:17:38,700 want elke voorwerp in Objective C uiteindelik geïmplementeer as 'n wyser. 281 00:17:38,700 --> 00:17:46,210 En jy die klas roep, noem hulle as alloc, wat is basies malloc, 282 00:17:46,210 --> 00:17:51,220 vertel van die bedryfstelsel wat jy moet 'n paar geheue spasie vir hierdie voorwerp. 283 00:17:51,220 --> 00:17:55,780 Na dat jy 'n voorwerp reeds en jy net inisialiseer. 284 00:17:55,780 --> 00:17:56,780 Dit is net konvensie. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Ek weet dit is 'n bietjie vreemd, maar dit is eintlik hoe Apple dinge doen. 287 00:18:04,410 --> 00:18:07,130 >> Toeken eiendomme eintlik redelik eenvoudig. 288 00:18:07,130 --> 00:18:09,250 Dit is baie soortgelyk aan wat jy doen wanneer 289 00:18:09,250 --> 00:18:13,780 jy 'n paar spesifieke toeken gebied binnekant van struct. 290 00:18:13,780 --> 00:18:16,830 Jy moet net die veranderlike noem, die eiendom naam, 291 00:18:16,830 --> 00:18:20,140 en 'n spesifieke waarde toe te wys. 292 00:18:20,140 --> 00:18:24,120 En roep 'n metode is baie soortgelyk. 293 00:18:24,120 --> 00:18:29,080 Die roeping van 'n metode is basies wat ek praat oor 294 00:18:29,080 --> 00:18:32,390 vir 'n beroep op enige manier in Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Jy 'n voorwerp verby, in hierdie geval is dit gaan wees myCat, 296 00:18:36,660 --> 00:18:42,490 en jy is die metode naam verby. 297 00:18:42,490 --> 00:18:47,130 Asof jy praat met die voorwerp, myCat, sodat jy moet miaau. 298 00:18:47,130 --> 00:18:48,570 Dit is redelik interessant. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Daarna, daar is een meer noodsaaklik ontwerp patroon 301 00:18:55,680 --> 00:18:59,940 wat ons nodig het om te praat oor voordat jy na die werklike S-kode. 302 00:18:59,940 --> 00:19:03,300 Dit ontwerp patroon genoem gebeurtenis gedrewe programmering. 303 00:19:03,300 --> 00:19:09,660 Dit is waarskynlik ook een van die mees fundamentele idees in IOS programmering. 304 00:19:09,660 --> 00:19:14,410 >> So het jy waarskynlik nie weet wat presies is die gebeurtenis gedrewe programmering, 305 00:19:14,410 --> 00:19:16,990 maar dit is nie regtig so scary. 306 00:19:16,990 --> 00:19:20,400 Wel, in werklikheid, het jy reeds dat voorheen gedoen. 307 00:19:20,400 --> 00:19:24,894 Dit is een van die lyne wat jy het waarskynlik reeds in die laaste [onhoorbaar] geskryf 308 00:19:24,894 --> 00:19:26,810 van CS50, google.maps.event.addListener (merker, 309 00:19:26,810 --> 00:19:27,810 "Klik", funksie () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Deur die roeping van hierdie lyn is jy wese vertel die rekenaar 312 00:19:37,620 --> 00:19:42,650 dat wanneer die gebeurtenis genoem "Klik" gebeur op die merker, 313 00:19:42,650 --> 00:19:43,630 gebruik hierdie funksie. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Dit is baie anders wat jy doen in mario.c. 316 00:19:50,950 --> 00:19:56,670 In mario.c jy net hardloop die program een keer, dit gee jou 'n uitset, 317 00:19:56,670 --> 00:19:58,590 en jy klaar is. 318 00:19:58,590 --> 00:20:02,590 Dit is soort van soos een skoot programme. 319 00:20:02,590 --> 00:20:05,830 Gebeurtenis gedrewe programme is baie, baie anders. 320 00:20:05,830 --> 00:20:10,230 Kom ons dink, as Facebook is 'n een skoot program dit is nie regtig 'n goeie. 321 00:20:10,230 --> 00:20:13,750 Jy gaan net om te Facebook een keer en dit is gedoen. 322 00:20:13,750 --> 00:20:16,700 Dit gee jou 'n paar uitset en jy het nooit dit terug. 323 00:20:16,700 --> 00:20:19,380 Jy het nooit enigiets meer. 324 00:20:19,380 --> 00:20:23,880 >> So hier, veral die patroon wat ons gebruik is 325 00:20:23,880 --> 00:20:26,940 gebeurtenis gedrewe, sodat elke funksie 326 00:20:26,940 --> 00:20:31,480 word gevang op grond van wat gebeurtenis gebeur het. 327 00:20:31,480 --> 00:20:34,670 Byvoorbeeld, as ons 'n knoppie en ons spesifiseer 328 00:20:34,670 --> 00:20:39,870 dat wanneer die knoppie is gekliek, noem die funksie genoem "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Op dié manier kan ons regtig die funksie logika bestuur 330 00:20:47,810 --> 00:20:50,560 vloei in 'n hoogs buigsame manier. 331 00:20:50,560 --> 00:20:55,840 Die gebruiker kan doen of bel 'n funksie wat reeds genoem. 332 00:20:55,840 --> 00:20:59,900 Dit is heeltemal gebaseer is op wat gebruikers doen. 333 00:20:59,900 --> 00:21:04,080 >> Sodat ons kan sien dat dit ' eintlik baie beter as mario.c. 334 00:21:04,080 --> 00:21:07,190 En goeie nuus is dat dit eintlik nie 'n nuwe konsep. 335 00:21:07,190 --> 00:21:12,140 Julle het dit reeds gedoen dat in die laaste probleem stel. 336 00:21:12,140 --> 00:21:16,640 So in Objective C daar drie verskillende diagramme 337 00:21:16,640 --> 00:21:19,030 vir die gebeurtenis gedrewe programmering. 338 00:21:19,030 --> 00:21:21,970 Die eerste diagram is genoem teiken aksie, 339 00:21:21,970 --> 00:21:26,990 waar jy bind 'n knoppie pers met 'n funksie. 340 00:21:26,990 --> 00:21:31,590 Laat ons net sê, wanneer jy kliek sommige knoppie, jy noem 'n funksie. 341 00:21:31,590 --> 00:21:33,620 Dit is baie eenvoudig teiken aksie. 342 00:21:33,620 --> 00:21:35,580 >> Die tweede een is eintlik die hardste een, 343 00:21:35,580 --> 00:21:38,450 dit genoem afvaardiging op protokol. 344 00:21:38,450 --> 00:21:41,800 Ons gaan om te verduidelik wat in groot detail later. 345 00:21:41,800 --> 00:21:44,420 En die derde manier is kennisgewing. 346 00:21:44,420 --> 00:21:46,770 Dit is eintlik nie baie belangrik so ver 347 00:21:46,770 --> 00:21:50,920 as ons bekommerd, want die kans dat jy gaan kennisgewing te gebruik 348 00:21:50,920 --> 00:21:53,310 in jou finale projek is redelik laag. 349 00:21:53,310 --> 00:21:56,440 So ons gaan om daardie deel te slaan. 350 00:21:56,440 --> 00:21:59,460 >> En ons gaan om te duik in afvaardiging op protokol. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 So wat presies is 'n protokol? 353 00:22:04,470 --> 00:22:06,450 Of wat presies is 'n afvaardiging? 354 00:22:06,450 --> 00:22:09,670 Kom ons praat oor protokol om te begin met. 355 00:22:09,670 --> 00:22:13,360 Protokolle is niks, maar die gebeure. 356 00:22:13,360 --> 00:22:19,230 Maar hierdie gebeure word gegee aan jy deur Apple om te begin met. 357 00:22:19,230 --> 00:22:22,640 Byvoorbeeld, ek is nie heeltemal seker hoeveel van julle 358 00:22:22,640 --> 00:22:27,930 ouens gebruik Apple se oorspronklike app pos of kontak, 359 00:22:27,930 --> 00:22:32,180 maar elke keer as jy blaai deur die tafel en druk die spesifieke sel 360 00:22:32,180 --> 00:22:36,130 op die tafel, dit is 'n gebeurtenis. 361 00:22:36,130 --> 00:22:38,330 >> En as jy wil om te doen so 'n geval deur jouself, 362 00:22:38,330 --> 00:22:40,410 dit is eintlik 'n bietjie hard. 363 00:22:40,410 --> 00:22:44,880 So Apple het dat selfs aan jou gegee sodat jy net kan direk gebruik 364 00:22:44,880 --> 00:22:49,610 Indien jy iets op jou eie te doen. 365 00:22:49,610 --> 00:22:52,980 Protokolle is eintlik regtig, regtig wyd gebruik 366 00:22:52,980 --> 00:22:58,320 in Objective C. Wel in Trouens, elke enkele app 367 00:22:58,320 --> 00:23:00,870 het iets gevang app afgevaardigde. 368 00:23:00,870 --> 00:23:06,330 Binnekant van delikate is om al die protokolle vir die laai van die app. 369 00:23:06,330 --> 00:23:12,470 >> Laat ons net sê daar is 'n gebeurtenis vir app het las. 370 00:23:12,470 --> 00:23:18,200 So wat moet gebeur nadat jy geskep het 'n app, nadat jy die app oop, 371 00:23:18,200 --> 00:23:22,630 nadat jy die app, of na jy sit die iPhone te slaap. 372 00:23:22,630 --> 00:23:27,480 Dit is al die gebeure wat reeds vir jou gegee. 373 00:23:27,480 --> 00:23:34,730 En oorspronklik in hierdie deeltjies sal daar geen implementering wees. 374 00:23:34,730 --> 00:23:39,750 Apple het net gesê dat hierdie funksie sal gebeur wanneer 'n gebeurtenis gebeur, 375 00:23:39,750 --> 00:23:44,380 maar wat jy doen met wat funksie is heeltemal aan jou. 376 00:23:44,380 --> 00:23:49,290 >> Afvaardiging is basies vertel die klas 377 00:23:49,290 --> 00:23:53,060 dat jy hierdie protokolle moet hanteer. 378 00:23:53,060 --> 00:23:55,340 Dit is 'n bietjie verwarrend, maar dit sal wees 379 00:23:55,340 --> 00:23:59,380 baie duideliker wanneer ons dit doen die s kodes in aksie. 380 00:23:59,380 --> 00:24:04,760 Afvaardiging op protokol is eintlik 'n hoogs robuuste meganisme in die sin 381 00:24:04,760 --> 00:24:08,160 dat as ons dit doen afvaardiging aan 'n spesifieke klas, 382 00:24:08,160 --> 00:24:12,400 ons kan in wese hanteer alle vorme van gebeure 383 00:24:12,400 --> 00:24:17,040 met behulp van 'n klas wat ons het, baie handige hulpmiddel. 384 00:24:17,040 --> 00:24:21,530 >> So een vinnige voorbeeld vir afvaardiging op protokol 385 00:24:21,530 --> 00:24:24,120 sal wees wat ek nou net gepraat oor. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Hierdie protokol spesifiek genoem word tableview [onhoorbaar] kies rol 388 00:24:30,890 --> 00:24:35,480 by [? indeks?] [? verlede. ?] So dit 'n gebeurtenis wat gevang sou word wanneer jy 389 00:24:35,480 --> 00:24:39,710 eintlik tik op 'n spesifieke sel in jou tableview, 390 00:24:39,710 --> 00:24:43,570 laat ons net sê in jou e-pos of in jou kontakte app. 391 00:24:43,570 --> 00:24:48,180 >> Binne 'n funksie daar was oorspronklik niks doen nie. 392 00:24:48,180 --> 00:24:51,950 Die funksie nie enigiets doen by verstek. 393 00:24:51,950 --> 00:24:55,540 Maar jy kan spesifiseer wat die funksie doen, 394 00:24:55,540 --> 00:24:59,610 gegee wat jy wil uit jou app. 395 00:24:59,610 --> 00:25:01,610 Baie handige hulpmiddel. 396 00:25:01,610 --> 00:25:06,840 En met alles wat Dit gesê, ek het basies 397 00:25:06,840 --> 00:25:11,430 dek 'n paar baie basiese sintaksis en fundamentele konsep van doelstelling C 398 00:25:11,430 --> 00:25:15,860 ontwikkeling, en ons kan 'n paar s-kode doen. 399 00:25:15,860 --> 00:25:17,980 Veel meer opwindend. 400 00:25:17,980 --> 00:25:21,070 So s-kode is eintlik 'n bietjie oorweldigend 401 00:25:21,070 --> 00:25:23,330 wanneer jy dit oopmaak vir die eerste keer. 402 00:25:23,330 --> 00:25:26,640 >> Een vinnige nota, so as jy wil IOS ontwikkeling te doen, 403 00:25:26,640 --> 00:25:29,630 Ek raai jy 'n Mac. 404 00:25:29,630 --> 00:25:33,930 Omdat doen IOS ontwikkeling op Windows is regtig baie moeilik. 405 00:25:33,930 --> 00:25:37,560 Dit is heel moontlik, maar dit is regtig moeilik. 406 00:25:37,560 --> 00:25:40,610 En jy beslis doen nie wil g wysig om te gebruik. 407 00:25:40,610 --> 00:25:47,950 So in s kode wat ons het verskillende gebiede. 408 00:25:47,950 --> 00:25:53,050 Wanneer jy die eerste oop s-kode jy sal 'n navigasie area sien, 409 00:25:53,050 --> 00:25:57,470 wat basies wys jou al die lêers wat in jou huidige projek. 410 00:25:57,470 --> 00:26:03,590 >> Jy het 'n nutsbalk gebied, wat is basies die bestuur menings, 411 00:26:03,590 --> 00:26:08,570 of 'n bietjie vinnige gereedskap oor s kode self. 412 00:26:08,570 --> 00:26:11,140 En dit is die werklike redakteur gebied. 413 00:26:11,140 --> 00:26:15,900 Hierdie gebied is baie soortgelyk g wysig, maar baie beter as g wysig. 414 00:26:15,900 --> 00:26:21,150 En in hierdie reg area, is genoem die nut gebied. 415 00:26:21,150 --> 00:26:27,170 Die gebied word baie handig wanneer jy skep koppelvlak of spesifiseer 416 00:26:27,170 --> 00:26:30,070 'n paar vinnige Opstellings vir jou app. 417 00:26:30,070 --> 00:26:34,570 >> En die finale gebied is die ontfouting. 418 00:26:34,570 --> 00:26:37,970 Hierdie gebied bevat die konsole. 419 00:26:37,970 --> 00:26:43,170 So wanneer jy printf sê, of nslog in ons geval, 420 00:26:43,170 --> 00:26:47,330 al jou uitslae gaan hier gedruk. 421 00:26:47,330 --> 00:26:48,260 Alle reg? 422 00:26:48,260 --> 00:26:52,090 Ek dink ons ​​kan regtig vinnig te doen 'n voorbeeld vir IOS programmering. 423 00:26:52,090 --> 00:26:54,220 En laat ons eintlik tot s kode oopmaak. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 So elke keer as jy op s kode oopmaak, is dit gaan om te wys iets soos dit. 426 00:27:01,346 --> 00:27:03,220 Dit gaan om jou te vra wat wil jy doen? 427 00:27:03,220 --> 00:27:06,830 Jy wil nie om iets te begin random, 'n speelgrond, basies jy 428 00:27:06,830 --> 00:27:11,250 kan net toets kode sonder eintlik pleeg enige app. 429 00:27:11,250 --> 00:27:13,020 >> Wil jy 'n nuwe projek te skep? 430 00:27:13,020 --> 00:27:16,660 Of wil jy om voort te gaan werk op die bestaande projek? 431 00:27:16,660 --> 00:27:20,270 In ons geval gaan ons 'n nuwe projek te skep. 432 00:27:20,270 --> 00:27:22,980 So dit is regtig mooi, s kode het eintlik reeds 433 00:27:22,980 --> 00:27:26,820 aan jou gegee sommige templates vir die skep van voorwerpe. 434 00:27:26,820 --> 00:27:32,680 As jy wil 'n speletjie om te doen, is kode eintlik 'n spel sjabloon vir jou, 435 00:27:32,680 --> 00:27:36,890 het bladsy gebaseerde programme, blad gebaseerde program. 436 00:27:36,890 --> 00:27:39,280 In hierdie geval, ons gaan iets baie maklik om te doen, 437 00:27:39,280 --> 00:27:43,230 en ons gaan 'n te gebruik enkele uitsig aansoek. 438 00:27:43,230 --> 00:27:48,270 >> Na wat net wat jy wil om te bel jou produk, en wat is jou naam, 439 00:27:48,270 --> 00:27:52,760 Wat is jou identifikasie en watter taal gebruik jy. 440 00:27:52,760 --> 00:27:57,060 Hier wil ons nie te kyk met behulp van Core Data. 441 00:27:57,060 --> 00:28:00,170 Core Data is basies 'n databasis uit IOS. 442 00:28:00,170 --> 00:28:05,360 As jy dit doen Core Data, is kode gaan definieer 443 00:28:05,360 --> 00:28:07,710 'n baie meer ingewikkeld klasse vir jou. 444 00:28:07,710 --> 00:28:12,740 So alles eenvoudig te hou, ons is net gaan om te doen sonder Core Data 445 00:28:12,740 --> 00:28:15,290 nou. 446 00:28:15,290 --> 00:28:18,030 >> Die probleem wat ons gaan wees gebruik van is that-- die probleem 447 00:28:18,030 --> 00:28:23,770 ons gaan word skep, is dat ons basies wil Mario om die invoer van C 448 00:28:23,770 --> 00:28:25,437 'n IOS app. 449 00:28:25,437 --> 00:28:26,645 So kom ons noem dat Mario-IOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Natuurlik kan jy spesifiseer wat jy wil om te sit in jou projek. 452 00:28:34,880 --> 00:28:37,870 En daar gaan ons. 453 00:28:37,870 --> 00:28:41,390 >> So, dit is 'n bietjie oorweldigend, maar dit is eintlik 454 00:28:41,390 --> 00:28:43,540 wat ons nou net gesien het op die skyfies. 455 00:28:43,540 --> 00:28:49,710 En die eerste gebied nou sien ons is basies projek opset. 456 00:28:49,710 --> 00:28:53,390 So alles wat jy wil doen projek, watter soort van die toestel, 457 00:28:53,390 --> 00:28:58,810 laat ons net sê watter soort van die toestel wil jy jou app op verskyn? 458 00:28:58,810 --> 00:29:01,280 Is dit die iPhone, iPad of universele? 459 00:29:01,280 --> 00:29:04,660 So toestel oriëntasie, al hierdie dinge. 460 00:29:04,660 --> 00:29:08,490 Nie baie belangrik, maar kon wees, maar dit 461 00:29:08,490 --> 00:29:11,050 is 'n plek waar jy die opstel van jou projek as jy eintlik 462 00:29:11,050 --> 00:29:15,180 wil sit vir die Apple winkel. 463 00:29:15,180 --> 00:29:20,420 >> Alle reg, laat ons kyk na iets wat binne-in ons kode. 464 00:29:20,420 --> 00:29:22,360 Kom ons gaan deur die lêer navigator. 465 00:29:22,360 --> 00:29:30,140 En dit is al die lêers wat reeds gekom het met die sjabloon, baie mooi. 466 00:29:30,140 --> 00:29:35,980 So wanneer ons kliek op een van hulle dit is wat dit lyk. 467 00:29:35,980 --> 00:29:38,530 Baie soortgelyk aan g wysig. 468 00:29:38,530 --> 00:29:41,340 Maar jy kan sien dat die accentuering is waarskynlik 469 00:29:41,340 --> 00:29:42,780 'n bietjie mooier. 470 00:29:42,780 --> 00:29:45,610 En dit is eintlik baie meer kragtig as g redigering. 471 00:29:45,610 --> 00:29:49,970 En jy kan die motor volledige 'n baie van die dinge wat vir jou, 472 00:29:49,970 --> 00:29:52,370 soos ons sal baie vinnig sien. 473 00:29:52,370 --> 00:29:54,100 >> Kom ons maak die ontfouting area so goed. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Alle reg, soos ons kan sien, die konsole is reg hier. 476 00:30:07,000 --> 00:30:13,840 Dit is wat jy gaan om te sien waar jy in printf of nsloging iets. 477 00:30:13,840 --> 00:30:17,155 So sonder verdere uitstel het, laat ons eintlik stel om die jeug en kyk wat gebeur. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 'N noodsaaklike funksie vir s-kode, is dat s-kode 480 00:30:23,410 --> 00:30:25,850 kom met 'n iPhone simulator. 481 00:30:25,850 --> 00:30:29,820 So jy hoef nie 'n te hê iPhone jou projek te probeer, 482 00:30:29,820 --> 00:30:34,440 s-kode kan simuleer wat vir jy, soos ons kan nou sien. 483 00:30:34,440 --> 00:30:36,406 >> Dit is redelik nice. 484 00:30:36,406 --> 00:30:38,640 Dit is om 'n bietjie bietjie van die tyd op te stel 485 00:30:38,640 --> 00:30:43,040 en basies ons 'n leë toepassing, 486 00:30:43,040 --> 00:30:44,640 wat eintlik niks. 487 00:30:44,640 --> 00:30:46,175 Maar dit stel. 488 00:30:46,175 --> 00:30:47,380 Dit is pretty awesome. 489 00:30:47,380 --> 00:30:50,200 Dit is baie beter as C, huh? 490 00:30:50,200 --> 00:30:52,130 Alle reg, dan laat ons probeer om iets by te voeg. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Een lêer wat is 'n bietjie vreemd hier is storyboard genoem. 493 00:31:02,650 --> 00:31:08,020 Dit is eintlik 'n groot, ontsagwekkende funksie vir s kode. 494 00:31:08,020 --> 00:31:14,170 Want in s-kode, kan jy eintlik sleep en drop elemente op die koppelvlak 495 00:31:14,170 --> 00:31:17,430 en dit sal direk wys. 496 00:31:17,430 --> 00:31:18,055 Kom ons probeer dit. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Ons gooi 'n etiket hier, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Ons kan sentrum wat. 500 00:31:29,740 --> 00:31:30,970 Pretty cool. 501 00:31:30,970 --> 00:31:33,915 Nou laat hardloop hierdie stop simulasie. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Hier het ons "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Ons het nie eens 'n kodering doen nie. 505 00:31:40,810 --> 00:31:42,750 Wat die heck gebeur? 506 00:31:42,750 --> 00:31:45,880 Dit is hoe kragtig Interface Builder kan wees. 507 00:31:45,880 --> 00:31:48,030 Iemand het selfs gesê dat Jy kan waarskynlik net 508 00:31:48,030 --> 00:31:52,800 voltooi 'n app sonder skriftelike waarskynlik 'n duisend reëls van die kode 509 00:31:52,800 --> 00:31:54,820 net deur die gebruik van die Interface Bouwer. 510 00:31:54,820 --> 00:31:59,680 Maar dit is waarskynlik nie die beste manier om dit te doen. 511 00:31:59,680 --> 00:32:01,670 >> Nou laat eintlik kry om af te kodering. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 So die struktuur vir die lêer is eintlik baie interessant 514 00:32:08,330 --> 00:32:15,610 Omdat, soos jy kan sien, is daar geen hooffunksie oral. 515 00:32:15,610 --> 00:32:17,466 Sien? 516 00:32:17,466 --> 00:32:19,340 Soos ons reeds voorheen vermeld, jy kan sien dat hierdie 517 00:32:19,340 --> 00:32:22,830 is 'n implementering lêer vir 'n spesifieke klas. 518 00:32:22,830 --> 00:32:25,690 Maar daar is geen hoof oral. 519 00:32:25,690 --> 00:32:27,490 So waar is die hoof? 520 00:32:27,490 --> 00:32:31,970 Eintlik is daar 'n hoof, maar die belangrikste is eintlik verborge nie. 521 00:32:31,970 --> 00:32:34,560 Die belangrikste is hier. 522 00:32:34,560 --> 00:32:37,120 Dit lyk bekend. 523 00:32:37,120 --> 00:32:41,000 >> So basies wat iOS doen binne belangrikste 524 00:32:41,000 --> 00:32:43,540 is dat wanneer hoof is genoem, wat is basies 525 00:32:43,540 --> 00:32:49,000 wanneer die app uitgevoer word, is dit skep 'n voorwerp genoem AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Soos ek voorheen genoem, die hele app is eintlik 'n voorwerp deur self. 528 00:32:57,350 --> 00:33:02,270 So op hierdie manier, basies IOS app vertel die samesteller 529 00:33:02,270 --> 00:33:05,540 dat OK, ek gaan om te skep 'n produk, genaamd AppDelegate, 530 00:33:05,540 --> 00:33:07,620 en wat gaan my jeug te wees. 531 00:33:07,620 --> 00:33:09,640 So jy moet gaan deur daardie AppDelegate 532 00:33:09,640 --> 00:33:12,040 en sien wat die man doen. 533 00:33:12,040 --> 00:33:14,850 My werk is vir my gedoen. 534 00:33:14,850 --> 00:33:22,070 >> En in AppDelegate jy kan sien dat daar is 'n paar baie vreemde funksies, 535 00:33:22,070 --> 00:33:25,290 Wel, eintlik metodes, wat Apple het reeds gegee het. 536 00:33:25,290 --> 00:33:27,464 Wat is dit? 537 00:33:27,464 --> 00:33:31,010 Dit is eintlik net protokolle dat ek kon praat. 538 00:33:31,010 --> 00:33:35,670 So dit is gebeure wat Apple jou gegee het om te begin met. 539 00:33:35,670 --> 00:33:38,050 Daar is niks in sommige van die funksies op die oomblik, 540 00:33:38,050 --> 00:33:40,820 maar as ons wil inisialiseer iets vir ons app 541 00:33:40,820 --> 00:33:46,140 voordat hy in die vertoon enige siening, ons doen wat hier. 542 00:33:46,140 --> 00:33:51,150 >> Jy kan net lees die naam en ek dink die geval is eintlik baie duidelik. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 So nou hoof geskep 'n voorwerp vir AppDelegate. 545 00:33:58,350 --> 00:34:05,220 En wat AppDelegate gaan doen is eintlik ook vir julle verberg. 546 00:34:05,220 --> 00:34:09,250 Die AppDelegate gaan begin laai die ViewController voorraad. 547 00:34:09,250 --> 00:34:13,170 So dit is basies gaan om te begin laai al die standpunte wat jy het 548 00:34:13,170 --> 00:34:17,500 en net lewer die oog gebaseer op die hiërargie. 549 00:34:17,500 --> 00:34:21,280 >> So in hierdie geval het ons net een besigtig, wat is hier. 550 00:34:21,280 --> 00:34:25,060 So dit is die enigste siening wat gaan genoem word. 551 00:34:25,060 --> 00:34:28,159 Die ViewController logika is reg hier. 552 00:34:28,159 --> 00:34:32,159 Dit is die kode wat eintlik beheer die oog sien ons net. 553 00:34:32,159 --> 00:34:33,679 Alle reg, laat ons iets doen hier. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 So viewDidLoad klink soos 'n gebeurtenis, terwyl dit in werklikheid is dit ook 'n afgevaardigde, 556 00:34:50,560 --> 00:34:52,500 dit is ook 'n protokol. 557 00:34:52,500 --> 00:34:56,350 >> Dus, wat die oog is gelaai, alles binne die funksie 558 00:34:56,350 --> 00:34:57,920 sal genoem word. 559 00:34:57,920 --> 00:35:02,840 In hierdie geval moet ons sien "Hallo Tianyu! "As ons die program. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Dit is om 'n bietjie stadig samestelling van storyboard lêers. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Wel wel, sien ons 'n uitset vir dit. 564 00:35:18,190 --> 00:35:20,720 Dit is pretty cool. 565 00:35:20,720 --> 00:35:22,000 Nou laat eintlik Mario doen. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Ek gaan die te definieer funksioneer baie vinnig. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: (int) vlak resultate. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Alle reg, dit is eintlik die ontsagwekkende kenmerk van s-kode motor voltooiing. 572 00:36:06,410 --> 00:36:10,680 So wanneer jy skryf vir en tik tik, dit reeds gegee om die sjabloon 573 00:36:10,680 --> 00:36:12,325 vir jou, wat is pretty cool. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Dit moet regtig kyk vertroud met julle. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Jammer, dit is my skuld. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Alle reg, cool. 580 00:37:18,120 --> 00:37:22,710 Dit logika moet lyk regtig vertroud vir julle ouens, veral net Mario. 581 00:37:22,710 --> 00:37:26,140 >> Maar ons sal nou druk uit te die konsole elke keer, 582 00:37:26,140 --> 00:37:29,280 want ons wil een of ander manier hou spoor van wat ons druk. 583 00:37:29,280 --> 00:37:31,810 Ons gaan die gebruik lei een of ander manier later, 584 00:37:31,810 --> 00:37:35,010 die gedrukte te vertoon uit lei tot die gebruiker. 585 00:37:35,010 --> 00:37:37,730 So in plaas ons is net nslogging alles, 586 00:37:37,730 --> 00:37:42,410 wat ons stoor alles in 'n funksie oproep gevolg, 587 00:37:42,410 --> 00:37:44,070 maar die logika is presies dieselfde. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Nadat ons dit, ons klaar net ons resultate druk. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> En hier in plaas van druk uit my naam, gaan ons 'n funksie te roep. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Kom ons kyk wat gebeur. 594 00:38:18,090 --> 00:38:21,240 Oeps, natuurlik. 595 00:38:21,240 --> 00:38:24,320 Ons het 'n lekker bietjie piramide hier. 596 00:38:24,320 --> 00:38:28,370 Dit is basies C, ons is net manipuleer waar jy noem 'n funksie 597 00:38:28,370 --> 00:38:30,010 en hoe 'n funksie lyk. 598 00:38:30,010 --> 00:38:31,560 Daar is niks anders nie. 599 00:38:31,560 --> 00:38:34,040 Maar dit is eintlik nie baie opwindend hier, 600 00:38:34,040 --> 00:38:37,500 omdat ons nie sien nie iets van die iPhone app. 601 00:38:37,500 --> 00:38:42,120 >> So as jy eintlik 'n iPhone app-- as jy eintlik Mario IOS reg 602 00:38:42,120 --> 00:38:45,080 nou, jy gaan nie om iets te sien dat 603 00:38:45,080 --> 00:38:49,450 het niks te doen met Mario omdat al die uitgange in 'n konsole 604 00:38:49,450 --> 00:38:51,620 verborge van 'n gebruiker. 605 00:38:51,620 --> 00:38:53,850 Dit is wat jy sien, wat is "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 Nie goed nie. 607 00:38:55,720 --> 00:39:03,090 Nou laat ons probeer om die gebruiker sien wat presies ons uit te druk. 608 00:39:03,090 --> 00:39:06,000 Sodat ons nie nodig het om meer te etiketteer. 609 00:39:06,000 --> 00:39:09,800 Kom ons probeer en uitvind iets anders wat nuttig kan wees. 610 00:39:09,800 --> 00:39:12,140 >> Daar is eintlik een element wat genoem word 611 00:39:12,140 --> 00:39:16,460 teks veld, wat kan baie nuttig wees vir ons. 612 00:39:16,460 --> 00:39:19,880 Dit vertoon basies 'n streek van die teks wat geredigeer kan word. 613 00:39:19,880 --> 00:39:22,320 Sodat lyk regtig nuttig. 614 00:39:22,320 --> 00:39:23,810 Nou laat sleep dit en gooi dit. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Sjoe, ons het 'n teks oog in ons mening, regtig fancy. 617 00:39:32,670 --> 00:39:35,430 Dit is 'n bietjie te groot. 618 00:39:35,430 --> 00:39:38,150 Kom ons maak dit kleiner. 619 00:39:38,150 --> 00:39:40,290 Sit dit in sentrum. 620 00:39:40,290 --> 00:39:43,760 Maak dit kleiner as well. 621 00:39:43,760 --> 00:39:50,110 >> Nou het ons 'n teks oog, wat ons kon word gebruik om ons finale uitslag te vertoon. 622 00:39:50,110 --> 00:39:52,860 Maar nou is dit beslis nie gaan om te werk 623 00:39:52,860 --> 00:39:56,970 want daar is no-- die ViewController ons net 624 00:39:56,970 --> 00:40:03,010 gedefinieer nie weet dat daar is 'n teks oog daar buite. 625 00:40:03,010 --> 00:40:06,550 So ons moet een of ander manier skakel die teks oog ons net 626 00:40:06,550 --> 00:40:11,660 geskep met die klas wat het reeds saam met ons. 627 00:40:11,660 --> 00:40:14,860 >> Die manier waarop ons dit doen is eintlik regtig magies. 628 00:40:14,860 --> 00:40:18,190 So oopmaak storyboard. 629 00:40:18,190 --> 00:40:22,220 Daar is 'n spesiale [onhoorbaar] genoem [? assistent?] [onhoorbaar]. 630 00:40:22,220 --> 00:40:25,190 As jy hier, dis gaan twee lêers oop te maak. 631 00:40:25,190 --> 00:40:29,425 Een is 'n klas en die ander een is 'n ooreenstemmende oog vir dit. 632 00:40:29,425 --> 00:40:31,920 Dit is baie, baie nuttig. 633 00:40:31,920 --> 00:40:35,950 En laat ons gaan net deur die .H lêer. 634 00:40:35,950 --> 00:40:39,110 Beheer, is dit [onhoorbaar] logika. 635 00:40:39,110 --> 00:40:47,280 Press beheer en sleep die teks uitsig in die verklaring. 636 00:40:47,280 --> 00:40:48,780 Ons gaan dit outputView te bel. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Koppel. 639 00:40:53,670 --> 00:40:59,420 So hier het ons 'n nuwe verklaar eiendom vir ons ViewController klas. 640 00:40:59,420 --> 00:41:02,300 En die nuwe eiendom is net die teks oog 641 00:41:02,300 --> 00:41:05,000 ons geskep het in die koppelvlak gebou. 642 00:41:05,000 --> 00:41:07,990 So in die manier wat ons kon toegang tot al die data 643 00:41:07,990 --> 00:41:13,630 en manipuleer alles wat binne-in die uitset siening, wat is awesome. 644 00:41:13,630 --> 00:41:19,260 >> So in ons werklike kode, Kom ons doen iets met dit. 645 00:41:19,260 --> 00:41:23,810 So hierdie tyd wanneer ons is soos druk uit die finale uitslag vir Mario, 646 00:41:23,810 --> 00:41:28,020 ons is in nie meld nie. 647 00:41:28,020 --> 00:41:30,080 Ek bedoel ons kan hou die te meld verklaring. 648 00:41:30,080 --> 00:41:41,490 Behalwe dat, ons stuur die Readout ons net 649 00:41:41,490 --> 00:41:47,622 geskep om die uitset siening, wat is 'n UI textview ons het net '. 650 00:41:47,622 --> 00:41:48,746 Nou laat ons kyk wat gebeur. 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 Ons het 'n piramide in die app nou. 654 00:41:59,130 --> 00:42:06,720 >> Sodat die gebruiker kan ons uitvoer omdat kyk Ons het die uitvoer van ons kode kopieer 655 00:42:06,720 --> 00:42:08,045 ons koppelvlak. 656 00:42:08,045 --> 00:42:10,950 Dit is redelik goed. 657 00:42:10,950 --> 00:42:14,990 Dit is eintlik nie opwindend omdat ons can-- 658 00:42:14,990 --> 00:42:18,250 Al die inligting doen, is toon 'n piramide vir julle, 659 00:42:18,250 --> 00:42:20,520 en daar is niks wat jy daaraan kan doen nie. 660 00:42:20,520 --> 00:42:22,330 Dit is nie baie opwindend. 661 00:42:22,330 --> 00:42:27,840 So nou, laat ons 'n knoppie dat die uitsig sal duidelik. 662 00:42:27,840 --> 00:42:30,290 Blyk dat 'n knoppie nuttig sal wees. 663 00:42:30,290 --> 00:42:33,270 Sleep. 664 00:42:33,270 --> 00:42:33,900 Button een. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Button twee. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> So wanneer ons kliek op die links knoppie, moet die oog verwyder. 669 00:42:52,052 --> 00:42:53,635 Daar moet niks op die skerm wees. 670 00:42:53,635 --> 00:42:56,970 En wanneer ons op die knoppie regs, Mario, 671 00:42:56,970 --> 00:42:59,740 die oog gaan om weer te verskyn. 672 00:42:59,740 --> 00:43:05,510 So op hierdie manier ons doen ook die magic stuff, beheer en sleep 673 00:43:05,510 --> 00:43:08,740 aan die klas verklaring in die assistent director-- 674 00:43:08,740 --> 00:43:11,600 in die assistent kyker. 675 00:43:11,600 --> 00:43:18,620 In hierdie geval is ons spesifiseer dat moet 'n aksie wees. 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 >> So hier het ons reeds geskep 'n aksie genoem clearMario, 679 00:43:26,830 --> 00:43:34,210 wat is die metode wat genoem sou word wanneer ons druk die knoppie duidelik. 680 00:43:34,210 --> 00:43:41,030 So in ons eintlik kode, laat ons net sit die uitset teks en die uitset oog 681 00:43:41,030 --> 00:43:44,620 tot niks, en dat die manier dit sal lyk duidelik te wees. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Behalwe dat, laat ons ' 'n ander metode genoem runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 O jammer, dat jy nie moet 'n eiendom wees. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Alle reg, dat indien wees 'n aksie as well. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> En wanneer daardie funksie is genoem, het ons net hardloop Mario tien. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Hopelik sal goed wees. 692 00:44:39,780 --> 00:44:41,120 Is dit stel? 693 00:44:41,120 --> 00:44:43,920 Ja. 694 00:44:43,920 --> 00:44:45,090 Nou het ons 'n oog. 695 00:44:45,090 --> 00:44:46,560 Ons het 'n uitset. 696 00:44:46,560 --> 00:44:50,040 En laat ons net kyk wat gebeur. 697 00:44:50,040 --> 00:44:52,590 Dit is verby. 698 00:44:52,590 --> 00:44:54,500 Dit is weer terug. 699 00:44:54,500 --> 00:44:57,620 So hier is ons het gespesifiseer watter soort funksie 700 00:44:57,620 --> 00:45:00,400 sal genoem word wanneer ons tik in iets, 701 00:45:00,400 --> 00:45:03,160 wanneer ons druk 'n spesifieke knoppie. 702 00:45:03,160 --> 00:45:07,890 Dit is basies die teiken aksie skema 703 00:45:07,890 --> 00:45:12,510 vir die gebeurtenis gedrewe ontwikkeling in Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Behalwe dat, dit is nie baie opwindende 705 00:45:15,030 --> 00:45:19,810 want ons kan nie regtig verander hoe hoog die piramide sal wees, 706 00:45:19,810 --> 00:45:23,640 sodat ons waarskynlik wil een of ander manier kry 'n toevoer van die gebruiker 707 00:45:23,640 --> 00:45:29,490 en verander die hoogte van die piramide gebaseer op wat hulle uitset. 708 00:45:29,490 --> 00:45:32,900 So ons gaan om dit te doen. 709 00:45:32,900 --> 00:45:38,720 So hierdie tyd wanneer ons runMario noem, ons nie net Mario bel direk. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Hierdie een se titel. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegeer. 714 00:46:23,700 --> 00:46:25,160 Dit is baie interessant. 715 00:46:25,160 --> 00:46:26,720 Wat is 'n afgevaardigde? 716 00:46:26,720 --> 00:46:28,950 Ek gaan self hier te plaas. 717 00:46:28,950 --> 00:46:31,038 En ons gaan om te sien wat dit beteken later. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 So hier het ons basies het 'n spesifieke geval bekend as 'n UI waarskuwing 720 00:46:51,120 --> 00:46:52,210 oog. 721 00:46:52,210 --> 00:46:54,440 A UI waarskuwing siening is basies wat jy wil 722 00:46:54,440 --> 00:46:58,940 sien elke keer as iets Pops en vra dat jy vir insette, 723 00:46:58,940 --> 00:47:03,080 soos wat sal gebeur wanneer jy probeer iets op 'n app store aan te koop. 724 00:47:03,080 --> 00:47:14,250 >> Behalwe dat, nadat jy skep dit, ons wys net die waarskuwing. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Alle reg, laat ons net vinnig toets sal die werk of nie. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Dit is baie cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Nou laat eintlik skep 'n invoer veld vir die UI waarskuwing. 731 00:47:59,120 --> 00:48:01,170 Dit is hoe ons dit doen. 732 00:48:01,170 --> 00:48:07,490 En ons moet 'n insette oog vir die waarskuwing. 733 00:48:07,490 --> 00:48:09,020 Baie cool. 734 00:48:09,020 --> 00:48:12,330 Laat ons net sê 10. 735 00:48:12,330 --> 00:48:14,900 >> Dit is nie om iets te doen reg nou, want die oproep eintlik 736 00:48:14,900 --> 00:48:17,770 het nie verander vir die uitvoering van Mario. 737 00:48:17,770 --> 00:48:23,470 So het dit 'n bietjie geword bietjie vreemd, want wanneer 738 00:48:23,470 --> 00:48:30,790 ons druk 'n knoppie af, wanneer ons druk 'n knoppie in die waarskuwing oog, 739 00:48:30,790 --> 00:48:35,560 iets moet gebeur, maar dit nie gebeur nie. 740 00:48:35,560 --> 00:48:37,220 Hoe vang ons dit doen? 741 00:48:37,220 --> 00:48:41,280 Hoe weet ons dat 'n gebruiker het die hand gewys 'n waarskuwing oog 742 00:48:41,280 --> 00:48:45,630 en reeds ingeskryf vir 'n groot aantal, omdat nou niks eintlik gebeur. 743 00:48:45,630 --> 00:48:50,450 >> Wel, jy kan raai dit reg, afvaardiging. 744 00:48:50,450 --> 00:48:55,440 So in Benewens al hierdie verklarings, 745 00:48:55,440 --> 00:49:03,190 ons moet 'n nuwe afvaardiging na te voeg dit genoem UI waarskuwing oog afgevaardigde. 746 00:49:03,190 --> 00:49:06,440 Sodat elke enkele interaksie of gebeurtenis 747 00:49:06,440 --> 00:49:10,190 dat ons gaan te hê met die UI waarskuwing oog 748 00:49:10,190 --> 00:49:14,100 gaan hanteer word deur ons klas as well. 749 00:49:14,100 --> 00:49:26,297 >> So in Behalwe dat, sal wees waarskuwing oog klik knoppie indeks. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Dit word bereik. 752 00:49:37,730 --> 00:49:42,020 So in daardie geval het ons already-- so ons het 753 00:49:42,020 --> 00:49:46,210 uitgevind 'n protokol wat sal die gebeurtenis toe te hanteer 754 00:49:46,210 --> 00:49:51,320 ons op die gebraai knoppie op die uitkyk oog. 755 00:49:51,320 --> 00:49:55,976 So elke keer as ons ignoreer die waarskuwing in gedagte, moet dit gebeur. 756 00:49:55,976 --> 00:49:57,350 Laat my net toets dit baie vinnig. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Wel wel, het ons hier bereik. 759 00:50:19,300 --> 00:50:22,210 >> So hier is, wat ons sal nie eintlik kry is eintlik 760 00:50:22,210 --> 00:50:43,120 kry the-- So ons wil uit te kry die teks wat ons het voorheen 761 00:50:43,120 --> 00:50:45,350 wat in die waarskuwing oog. 762 00:50:45,350 --> 00:50:48,505 En gebaseer op die teks, is ons gaan Mario te vertoon. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Dit blyk baie vinnig uit As dit eintlik werk of nie. 765 00:50:55,480 --> 00:50:59,476 So in daardie geval, as ons insette, kom ons sê, 10, moet ons sien 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Baie goed, ons het 'n aantal hier. 768 00:51:05,210 --> 00:51:06,470 Dit is redelik goed. 769 00:51:06,470 --> 00:51:16,840 Nou is die laaste stap sal dus die be-- laaste stap moet ons nou doen 770 00:51:16,840 --> 00:51:21,100 is net 'n Mario bel met vlak gebaseer op die insette 771 00:51:21,100 --> 00:51:23,270 sodat ons in waarskuwing oog gestel het. 772 00:51:23,270 --> 00:51:26,920 So het ons nodig het om te sit hierdie string in IOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Statiese oorloop is baie awesome. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 En dan het ons net self noem marioWithLevels waarde. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Kom ons kyk sal dit eintlik werk of nie. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Ons is reeds 'n piramide. 781 00:52:01,550 --> 00:52:04,785 Kom ons probeer om die hoogte te verander. 782 00:52:04,785 --> 00:52:06,530 Dit werk eintlik. 783 00:52:06,530 --> 00:52:07,610 Dit is pretty cool. 784 00:52:07,610 --> 00:52:10,420 Sodat nou kan jy net insette enige waarde wat jy wil. 785 00:52:10,420 --> 00:52:12,440 Laat ons net sê vier. 786 00:52:12,440 --> 00:52:14,260 Dit is pretty awesome. 787 00:52:14,260 --> 00:52:17,090 So, dit is basies 'n baie vinnige voorbeeld 788 00:52:17,090 --> 00:52:23,170 vir hoe om 'n projek in s-kode te skep en hoe om werklik te vinnig draad op 789 00:52:23,170 --> 00:52:26,220 'n paar baie eenvoudige gebeure en funksies. 790 00:52:26,220 --> 00:52:28,840 >> So het die bron gaan moet aanlyn later sit. 791 00:52:28,840 --> 00:52:33,400 So as jy belangstel in hoe IOS Mario werk, 792 00:52:33,400 --> 00:52:38,360 Ek gaan presies dieselfde stel projekte op die CS50 webwerf later. 793 00:52:38,360 --> 00:52:41,260 Ons is basies klaar met die somer, en voor ons klaar 794 00:52:41,260 --> 00:52:45,190 Ek wil net daarop wys julle ouens te sommige regtig awesome hulpbronne wat 795 00:52:45,190 --> 00:52:47,550 is aanlyn beskikbaar. 796 00:52:47,550 --> 00:52:52,270 >> Dit is duidelik dat die Apple dokumentasie gaan baie nuttig wees. 797 00:52:52,270 --> 00:52:57,630 Maar in Behalwe dat ek veral beveel vier bronne,-kode skool, 798 00:52:57,630 --> 00:53:02,120 boom huis, AppCoda en WWDC videos. 799 00:53:02,120 --> 00:53:07,270 Kode skool en boom huis is twee online opvoeding webwerwe, 800 00:53:07,270 --> 00:53:10,210 wat spesifiek fokus op sagteware-ingenieurswese. 801 00:53:10,210 --> 00:53:16,930 Veral vir die kode skool, het hulle het regtig 'n goeie handleiding oor IOS. 802 00:53:16,930 --> 00:53:19,550 >> Dit is 'n baie vinnige voorbeeld vir dit. 803 00:53:19,550 --> 00:53:22,980 Hulle het eintlik 'n baie cute-- kyk na daardie klein oulike iPhone 804 00:53:22,980 --> 00:53:24,920 dude daar, dit is pretty awesome. 805 00:53:24,920 --> 00:53:31,010 En die manier waarop hulle verduidelik Doelwit C sintaksis is baie duidelik. 806 00:53:31,010 --> 00:53:32,230 Tree huis is dieselfde. 807 00:53:32,230 --> 00:53:34,660 En AppCoda is 'n forum. 808 00:53:34,660 --> 00:53:38,130 Dit is eintlik 'n blog wat hardloop is deur 'n werklik ervaar doelstelling C 809 00:53:38,130 --> 00:53:39,120 programmeerder. 810 00:53:39,120 --> 00:53:43,950 En al daardie tutoriale in AppCoda is mooi kort en maklik om te implementeer, 811 00:53:43,950 --> 00:53:45,390 sterk aanbeveel. 812 00:53:45,390 --> 00:53:47,700 >> En as jy 'n ontwikkelaar, beslis gaan kyk 813 00:53:47,700 --> 00:53:55,660 hoe die WWDC videos waar jy kan leer oor die nuutste IOS programmering 814 00:53:55,660 --> 00:53:58,250 tegnieke, API's en biblioteke. 815 00:53:58,250 --> 00:54:02,850 So dit is pretty much dit vir die seminaar. 816 00:54:02,850 --> 00:54:03,820 Baie dankie. 817 00:54:03,820 --> 00:54:08,040 En ek hoop jy het baie pret skep jou eie IOS app. 818 00:54:08,040 --> 00:54:09,302