1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU Liu: Hé, milyen Hogy megy mindenki? 3 00:00:13,590 --> 00:00:20,250 És ez az iOS App programozási objektív c szemináriumon. 4 00:00:20,250 --> 00:00:21,520 És a nevem Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Én egy Lowell junior most, koncentrálva a számítástechnikában. 6 00:00:26,114 --> 00:00:28,030 Tehát ezen a szemináriumon vagyok tanítani fog titeket 7 00:00:28,030 --> 00:00:30,770 egy kicsit arról, hogyan lehet egy app. 8 00:00:30,770 --> 00:00:33,030 Hurrá, izgatott érte. 9 00:00:33,030 --> 00:00:36,790 >> Szóval mielőtt még kezdetét búvárkodás a tényleges programozási oldalról, 10 00:00:36,790 --> 00:00:41,840 nézzük csak nagyon gyorsan beszélnek miért is szeretne építeni egy iOS app? 11 00:00:41,840 --> 00:00:43,940 Miért iOS olyan félelmetes? 12 00:00:43,940 --> 00:00:47,250 Így az első probléma, az első dolog, ami elég félelmetes számunkra, 13 00:00:47,250 --> 00:00:51,190 különösen a CS50 diák, hogy iOS 14 00:00:51,190 --> 00:00:55,860 használja Objective C Nos, van Az új nyelv az úgynevezett Swift, 15 00:00:55,860 --> 00:00:58,260 de mi nem fogunk használja, hogy ezen a szemináriumon. 16 00:00:58,260 --> 00:01:01,540 Ha érdekel a Swift, ott egy független szemináriumot erről. 17 00:01:01,540 --> 00:01:05,590 De Objective C alapvetően felülbírálja a C. Meaning 18 00:01:05,590 --> 00:01:10,230 hogy mindent, amit használni C lefordítják Objective C 19 00:01:10,230 --> 00:01:11,630 nagyon könnyen. 20 00:01:11,630 --> 00:01:15,730 >> Amint lehet látni fogjuk, hogy valóban van néhány nagyon alapvető szintaxis, a 21 00:01:15,730 --> 00:01:19,790 alapvetően pontosan ugyanaz, C és Objective C Szóval, 22 00:01:19,790 --> 00:01:22,860 hiszen szedett CS50 up idáig, akkor már 23 00:01:22,860 --> 00:01:26,500 tudják célkitűzés C, legalább 40%. 24 00:01:26,500 --> 00:01:30,720 Továbbá, az Apple egy nagyon robosztus API for iOS. 25 00:01:30,720 --> 00:01:33,750 Van egy csomó igazán őrült dolog, amit tehetünk vele. 26 00:01:33,750 --> 00:01:36,760 Amelyek közül az egyik, hogy valaki valóban létre egy iOS app 27 00:01:36,760 --> 00:01:40,600 vezérlésére autók, amelyek Ez elég érdekes. 28 00:01:40,600 --> 00:01:42,610 Valószínűleg egy helikopter sokkal izgalmasabb. 29 00:01:42,610 --> 00:01:47,020 De ez milyen erős Az iOS API lehet. 30 00:01:47,020 --> 00:01:49,340 >> És lehet, hogy kitalálta, most, 31 00:01:49,340 --> 00:01:53,000 A veremtúlcsordulás valószínűleg az egyik a legfontosabb online forrásokat 32 00:01:53,000 --> 00:01:54,250 áll az Ön rendelkezésére. 33 00:01:54,250 --> 00:01:58,090 És jó hír, hogy minden Egyetlen probléma akkor esetleg 34 00:01:58,090 --> 00:02:01,840 gondolni építése közben A projekt végső célkitűzés C, 35 00:02:01,840 --> 00:02:05,910 akkor nagy az esélye egy verem túlcsordulás választ. 36 00:02:05,910 --> 00:02:07,420 Ez egyszerűen fantasztikus. 37 00:02:07,420 --> 00:02:12,780 Ezen felül, iOS tényleg egy platform 38 00:02:12,780 --> 00:02:16,260 ahol elérheti a hatalmas közönséget kevés erőfeszítéssel. 39 00:02:16,260 --> 00:02:20,170 Ez nem olyan, Android, ahol mindent csinos töredezett. 40 00:02:20,170 --> 00:02:22,540 >> Minden iOS egységes. 41 00:02:22,540 --> 00:02:25,920 És mindaddig, amíg létre egy app iPhone, 42 00:02:25,920 --> 00:02:31,260 akkor nagyon könnyen port, hogy a iPad, iPad mini, vagy különböző iPhone méretben. 43 00:02:31,260 --> 00:02:33,050 Ezek mind nagyon kényelmes. 44 00:02:33,050 --> 00:02:36,430 És ez csak igazán jó A lenyűgöző barátaival. 45 00:02:36,430 --> 00:02:38,920 Akkor csak tartsa az iPhone és mondd el a barátja hé, 46 00:02:38,920 --> 00:02:40,250 ez az alkalmazás teszek. 47 00:02:40,250 --> 00:02:43,860 Meg tudod csinálni, hogy bármilyen desktop alkalmazásokat, ami szép és jó. 48 00:02:43,860 --> 00:02:48,870 >> Rendben, most nézzük valóban kap a nyelv Objective C 49 00:02:48,870 --> 00:02:52,910 Akkor miért nem kezdjük néhány igazán alapvető szintaxis. 50 00:02:52,910 --> 00:02:57,410 Ahogy korábban említettem Cél C Ez alapvetően egy részhalmaza C. 51 00:02:57,410 --> 00:03:01,860 Szóval egy csomó alapvető szintaxis tulajdonképpen pontosan ugyanaz. 52 00:03:01,860 --> 00:03:06,150 Nyilvánító változó, hozzátéve, két változó 53 00:03:06,150 --> 00:03:09,440 Pontosan ahogy tettük azt a Mario. 54 00:03:09,440 --> 00:03:11,140 Itt semmi új. 55 00:03:11,140 --> 00:03:17,370 >> Hasonlóképpen, az albérlő a hurok és feltétel is ugyanaz. 56 00:03:17,370 --> 00:03:22,370 Meg tudod csinálni egy ciklusban csak úgy, mint már volt egy Mario [hallhatatlan]. 57 00:03:22,370 --> 00:03:26,280 És meg tudod csinálni feltételek mint amit 58 00:03:26,280 --> 00:03:29,240 már ezzel a korábbi p készletek. 59 00:03:29,240 --> 00:03:33,400 Azonban Objective C nem teljesen C, 60 00:03:33,400 --> 00:03:36,640 és van valami, hogy a furcsa róla. 61 00:03:36,640 --> 00:03:42,340 >> Az első az, hogy ha Ennek C programozási, akkor általában hívni 62 00:03:42,340 --> 00:03:46,310 közé, majd a könyvtár nevét. 63 00:03:46,310 --> 00:03:49,860 De Objective C hívod, hogy import. 64 00:03:49,860 --> 00:03:53,100 Alapvetően mondván funkcionalitás, csak más nevek. 65 00:03:53,100 --> 00:03:55,940 És a húrok valójában egy kicsit furcsa. 66 00:03:55,940 --> 00:03:58,250 Láthatjuk, hogy az első dolog, ami furcsa 67 00:03:58,250 --> 00:04:04,190 az, hogy van egy szép weird-- sorry-- van egy elég furcsa NS 68 00:04:04,190 --> 00:04:04,960 aláírja ide. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 A másik dolog, ez furcsa 71 00:04:09,160 --> 00:04:14,090 van, hogy van egy jel előtt valóban kimondja a húr. 72 00:04:14,090 --> 00:04:19,209 Tehát a kukac alapvetően azt jelenti, Olyan karakterlánc nem csak a húr, 73 00:04:19,209 --> 00:04:20,880 ez valójában egy tárgy. 74 00:04:20,880 --> 00:04:22,780 Megyünk megmagyarázni hogy később, így nem 75 00:04:22,780 --> 00:04:25,800 pánik, ha nem megérteni, hogy mit jelent. 76 00:04:25,800 --> 00:04:29,980 És a nyomtatási konzol egy kicsit más, mert a C hívjuk printf, 77 00:04:29,980 --> 00:04:33,350 de Objective C nevezünk [hallhatatlan]. 78 00:04:33,350 --> 00:04:35,640 >> Lehet, hogy vajon mi az. 79 00:04:35,640 --> 00:04:38,070 Ez alapvetően printf, csak egy másik nyelven. 80 00:04:38,070 --> 00:04:41,370 Pontosan ugyanez használat, pontosan ugyanazt a funkcionalitást. 81 00:04:41,370 --> 00:04:44,060 Kiderült, hogy a Objective C ténylegesen 82 00:04:44,060 --> 00:04:50,040 van egy ns prefixre szinte mindent, minden alapadatok típusú, 83 00:04:50,040 --> 00:04:52,690 NSString, nsarray, nsdictionary. 84 00:04:52,690 --> 00:04:56,340 Az ok pedig az, hogy ns valóban kiemelkedik a következő lépés, 85 00:04:56,340 --> 00:04:59,980 ami olyan cég, amely Steve Jobs alapította, 86 00:04:59,980 --> 00:05:03,960 amely a társaság, ahol a nyelv Objective C születik. 87 00:05:03,960 --> 00:05:06,140 Tehát ez alapvetően hagyomány. 88 00:05:06,140 --> 00:05:09,010 Tudom, hogy ez egy kicsit Furcsa, de az Apple. 89 00:05:09,010 --> 00:05:16,840 >> Tehát valami, ami még furább mint egy olyan funkció nyilatkozatot. 90 00:05:16,840 --> 00:05:22,600 Ez nagyon különbözik attól, amit mi lásd a C, mert itt valójában 91 00:05:22,600 --> 00:05:25,190 nem úgy néz ki, mint a C többé. 92 00:05:25,190 --> 00:05:28,810 Mit kell here-- a út ez nem egy golyó pont, 93 00:05:28,810 --> 00:05:30,690 ez egy mínusz jelet. 94 00:05:30,690 --> 00:05:36,440 Van egy mínusz jelet zárójelben void majd a függvény neve. 95 00:05:36,440 --> 00:05:38,450 Mondjuk úgy, hogy ha Van hello world, majd 96 00:05:38,450 --> 00:05:42,820 A visszatérési típus semmis lenne, mert vissza semmit. 97 00:05:42,820 --> 00:05:44,680 >> Milyen lesz igazán fura az, hogy ha éppen 98 00:05:44,680 --> 00:05:49,580 egynél több paraméter halad egy azonos funkcióval, amely 99 00:05:49,580 --> 00:05:53,870 lesz igazán furcsa, mint az itt látható. 100 00:05:53,870 --> 00:05:58,230 Van egy metódus nevet, nevű addInt a [hallhatatlan] 101 00:05:58,230 --> 00:06:00,370 és mi megy egy paramétert. 102 00:06:00,370 --> 00:06:05,170 De azután, hogy van Több metódus neve hívást. 103 00:06:05,170 --> 00:06:08,500 És miután a mi halad A második paraméter. 104 00:06:08,500 --> 00:06:11,940 Ez valójában egy kicsit furcsa, De mindezek függvényében nyilatkozatok 105 00:06:11,940 --> 00:06:14,770 ugyanazt a mintát követik, mint ez. 106 00:06:14,770 --> 00:06:17,450 >> Van egy mínusz jel, hogy kezdődik. 107 00:06:17,450 --> 00:06:21,550 A mínusz jel lehet a plusz jel Néha alapján milyen módszerrel 108 00:06:21,550 --> 00:06:22,340 az. 109 00:06:22,340 --> 00:06:25,000 Módszer alapvetően másik neve funkciót. 110 00:06:25,000 --> 00:06:26,760 És mi lesz elmagyarázni, hogy később, amikor 111 00:06:26,760 --> 00:06:30,580 beszélünk objektumot orientált programozás. 112 00:06:30,580 --> 00:06:34,300 Először adja meg a visszatérés írja zárójelek, 113 00:06:34,300 --> 00:06:37,450 ami után jön a metódus nevét. 114 00:06:37,450 --> 00:06:40,310 Te halad egy paraméter. 115 00:06:40,310 --> 00:06:44,750 És ha több paramétert meg kell terjeszteni a metódus neve 116 00:06:44,750 --> 00:06:46,770 és alapvetően írni valamit bővebben itt. 117 00:06:46,770 --> 00:06:48,090 >> Ez lehet bármi, amit akar. 118 00:06:48,090 --> 00:06:50,140 A mi esetünkben ez a. 119 00:06:50,140 --> 00:06:56,160 De azt is mondhatnánk végén, vagy, vagy, vagy abc teljes sáv, amit akarsz. 120 00:06:56,160 --> 00:06:59,500 Majd azt követően, hogy te múló paramétert b. 121 00:06:59,500 --> 00:07:01,750 Ez egy nagyon furcsa egyezményt, de mi vagyunk 122 00:07:01,750 --> 00:07:05,800 fogja látni, hogy miért Apple akart tennie, hogy nagyon gyorsan. 123 00:07:05,800 --> 00:07:10,530 Szóval hogyan lehet hívni a funkciót? 124 00:07:10,530 --> 00:07:15,520 Calling egy funkciót célkitűzés C is eltér a C. 125 00:07:15,520 --> 00:07:18,170 >> Igazából, hívja a funkciót Objective C 126 00:07:18,170 --> 00:07:21,030 több mint te beszélsz valakivel. 127 00:07:21,030 --> 00:07:27,030 Itt van az önálló, amely nevezzük egy tárgy. 128 00:07:27,030 --> 00:07:33,830 Te alapvetően mond objektum önálló mondani, hogy "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Azaz hogyan kell hívni a funkciót. 130 00:07:36,830 --> 00:07:41,690 Egy objektumot, és egy metódus nevet kombinálva egymással. 131 00:07:41,690 --> 00:07:49,600 És ez az, ahol a furcsa kiterjesztése A módszer neve: tényleg jön szóba. 132 00:07:49,600 --> 00:07:52,150 >> Nézzük meg a második példa. 133 00:07:52,150 --> 00:07:56,780 Mi csak meghatározott módon, az ún addInt a bla-bla-bla. 134 00:07:56,780 --> 00:08:00,066 Tehát ebben az esetben, ha a hívott fél hogy specifikus [? üzenetet?] ez lesz 135 00:08:00,066 --> 00:08:02,035 úgy kinézni, mint önálló addInt: 10: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Úgy hangzik, mint az angol. 138 00:08:08,070 --> 00:08:11,980 Bár a funkciója függvény deklaráció furcsa, 139 00:08:11,980 --> 00:08:15,600 a lényeg az Objective C a metódus minta, 140 00:08:15,600 --> 00:08:18,830 az, hogy ha a hívott fél A függvény vagy módszer 141 00:08:18,830 --> 00:08:21,980 akkor úgy hangzik, mint a tényleges English. 142 00:08:21,980 --> 00:08:25,270 Szóval ez nagyon intuitív ha egyszer kap bele. 143 00:08:25,270 --> 00:08:28,740 >> Különösen ebben az esetben, ahol alapvetően 144 00:08:28,740 --> 00:08:33,010 A függvény neve egyfajta dokumentálása magát. 145 00:08:33,010 --> 00:08:35,390 Önnek nem kell semmilyen További magyarázat, hogy 146 00:08:35,390 --> 00:08:42,770 pontosan mi is történik, mi Pontosan egy paraméter csinál. 147 00:08:42,770 --> 00:08:48,470 Túlmutató, beszéljünk egy kicsit kicsit a objektumorientált programozás. 148 00:08:48,470 --> 00:08:52,160 Objektumorientált programozás egyik alapvető programozási 149 00:08:52,160 --> 00:08:57,110 technikák, minták, amely által használt Objective C Objective C 150 00:08:57,110 --> 00:09:03,110 az úgynevezett Objective C, nem C, egy igazán jó oka. 151 00:09:03,110 --> 00:09:07,560 >> Tehát mielőtt nekilátnánk Objective C szintaxis, 152 00:09:07,560 --> 00:09:11,670 Nézzük nagyon gyorsan nézd meg mi is valójában az objektum. 153 00:09:11,670 --> 00:09:15,480 Mi már valószínűleg tett valamit Mintha objektum előtt, ami 154 00:09:15,480 --> 00:09:19,780 az úgynevezett struct ha végrehajtási egy fa vagy egy láncolt lista 155 00:09:19,780 --> 00:09:25,730 vagy [? próbálni. ?] Szóval, ez alapvetően, mint egy struct, 156 00:09:25,730 --> 00:09:28,560 de sokkal erősebb annál. 157 00:09:28,560 --> 00:09:33,150 Egy objektum módszerek és tulajdonságok. 158 00:09:33,150 --> 00:09:35,310 Módszerek alapvetően funkciókat. 159 00:09:35,310 --> 00:09:39,480 A függvényeket, hogy a adott egy bizonyos tárgyat. 160 00:09:39,480 --> 00:09:45,440 >> És tulajdonságok alapvetően a lehet megadni a struct. 161 00:09:45,440 --> 00:09:48,500 Tehát minden egyes tárgy van néhány tulajdonság 162 00:09:48,500 --> 00:09:53,160 hogy van néhány változót, amely specifikusak az objektumot. 163 00:09:53,160 --> 00:09:57,170 És van néhány funkció is jellemző, hogy az objektum. 164 00:09:57,170 --> 00:10:01,180 Illetve a funkciók nevezett módszerek és a változók nevezik tulajdonságait. 165 00:10:01,180 --> 00:10:03,190 Ez csak egy fantázianév. 166 00:10:03,190 --> 00:10:10,440 Amíg a tény, minden egyes néző látod, amíg nyitni iOS app, 167 00:10:10,440 --> 00:10:17,720 mondjuk, a Twitter vagy a Facebook, minden egyes néző lát egy objektum. 168 00:10:17,720 --> 00:10:22,110 És még az egész app egy tárgy kezdeni. 169 00:10:22,110 --> 00:10:25,340 Nagyon érdekes koncepció. 170 00:10:25,340 --> 00:10:28,480 >> És miért akarjuk objektumot orientált programozás? 171 00:10:28,480 --> 00:10:33,530 Így el lehet képzelni, hogy ha programban ez lesz elég bonyolult. 172 00:10:33,530 --> 00:10:36,400 Mondjuk úgy, ha éppen végrehajtási sakktábla, 173 00:10:36,400 --> 00:10:40,020 A logika fog lehet nagyon bonyolult. 174 00:10:40,020 --> 00:10:43,280 Van 36 különböző darabokat, így ha 175 00:10:43,280 --> 00:10:48,370 akarok írni logika minden 36 különböző darab sakk, 176 00:10:48,370 --> 00:10:52,150 hogy lesz egy csomó különböző funkciók és tulajdonságok. 177 00:10:52,150 --> 00:10:54,070 Ez a sok bajt. 178 00:10:54,070 --> 00:10:58,980 És valószínűleg meg fogsz levelet más módszert, vagy más funkciót 179 00:10:58,980 --> 00:11:03,950 minden egyes darab, hogy pontosan beállítható, amit csinálnak. 180 00:11:03,950 --> 00:11:08,830 >> De ha nem objektum-orientált programozás, az összes ilyen darabok 181 00:11:08,830 --> 00:11:12,440 lehet kivett be egyetlen objektum. 182 00:11:12,440 --> 00:11:16,111 És az objektum lesz néhány közös tulajdonságok, mint a milyen darabot 183 00:11:16,111 --> 00:11:16,610 van ez? 184 00:11:16,610 --> 00:11:17,740 Milyen színű? 185 00:11:17,740 --> 00:11:19,480 Hogyan mozog? 186 00:11:19,480 --> 00:11:24,660 És ezen a módon van nagyban egyszerűsítette a logikája azt. 187 00:11:24,660 --> 00:11:28,480 Tehát ez csak egy nagyon jó módja hogy bonyolult programok, 188 00:11:28,480 --> 00:11:33,700 és fölérendeltségi viszony A program keretében, nagyon egyszerű. 189 00:11:33,700 --> 00:11:36,800 Ahogy megyünk lásd Ezért nagyon gyorsan 190 00:11:36,800 --> 00:11:39,660 vagyunk valójában csinál programming--, mikor vagyunk valójában 191 00:11:39,660 --> 00:11:42,830 csinál egy S-kód programozási lépésben később. 192 00:11:42,830 --> 00:11:48,120 >> Nos mellett, hogy, objektumorientált programozás 193 00:11:48,120 --> 00:11:50,030 csak egy nagyon szórakoztató. 194 00:11:50,030 --> 00:11:51,990 Van, hogy saját objektumot. 195 00:11:51,990 --> 00:11:56,080 Van, hogy tervezzen mit ez úgy néz ki, mint egyedül. 196 00:11:56,080 --> 00:11:58,250 Nincs jó válasz rá. 197 00:11:58,250 --> 00:12:02,940 És ez teljesen érdekes. 198 00:12:02,940 --> 00:12:07,270 Így az objektum orientált programozás, Két alapvető fogalmak 199 00:12:07,270 --> 00:12:10,130 lesz osztály és a példány. 200 00:12:10,130 --> 00:12:13,570 Egy osztály alapvetően egy sablont objektumot. 201 00:12:13,570 --> 00:12:18,070 És egy példány alapvetően Egy adott objektum. 202 00:12:18,070 --> 00:12:21,090 >> Mondjuk úgy, hogy még van egy sütit. 203 00:12:21,090 --> 00:12:24,800 Ebben az esetben, minden egyes süti, hogy tényleg a végén 204 00:12:24,800 --> 00:12:27,310 lesz egy tárgy. 205 00:12:27,310 --> 00:12:35,830 De a cookie-lemezt használ sütni összes cookie lesz egy osztályt. 206 00:12:35,830 --> 00:12:37,880 Egy osztály alapvetően egy sablon. 207 00:12:37,880 --> 00:12:46,170 És a példány lesz az egyik konkrét létrehozott objektum ki az osztályban. 208 00:12:46,170 --> 00:12:49,970 >> És egy példány jön létre alapuló osztály deklarációja, 209 00:12:49,970 --> 00:12:56,760 mint látni fogjuk, a későbbi diák. 210 00:12:56,760 --> 00:13:00,010 Szóval valójában nem egy igazán gyors példa [hallhatatlan]. 211 00:13:00,010 --> 00:13:04,280 Mondjuk mi nyilvánításáról Egy objektum egy macska. 212 00:13:04,280 --> 00:13:07,930 A tárgy legyen have-- A macska osztályt kell 213 00:13:07,930 --> 00:13:11,260 Van néhány tulajdonságok és módszerek. 214 00:13:11,260 --> 00:13:17,300 Miféle tulajdonságokat a osztály have-- kell a macska van? 215 00:13:17,300 --> 00:13:20,580 >> Például, szín, kor és fajta, azoknak 216 00:13:20,580 --> 00:13:24,440 lesz változók kifejezetten az egyes macska. 217 00:13:24,440 --> 00:13:27,790 És ezek olyan dolgok hogy az általunk használt leírására egy macska. 218 00:13:27,790 --> 00:13:31,880 Milyen módszerrel, vagy mi lehet a macskát csinálni? 219 00:13:31,880 --> 00:13:37,160 Néhány gyors példa lenne hajsza egér, eszik halat, vagy csak nyávog. 220 00:13:37,160 --> 00:13:40,900 Ez egy nagyon gyors Például a macska osztályban. 221 00:13:40,900 --> 00:13:46,920 És egy igazán egyedi cat tárgy lesz egy macska 222 00:13:46,920 --> 00:13:50,930 ahol meghatározzák a szín, a kor és a fajtát. 223 00:13:50,930 --> 00:13:53,790 >> Ebben az esetben, a mi objektum már nem egy osztály már. 224 00:13:53,790 --> 00:14:00,010 Mi másolja a sablont a class és megadjuk az egyes konkrét információk 225 00:14:00,010 --> 00:14:04,510 hogy az adott tárgyat hogy független. 226 00:14:04,510 --> 00:14:09,350 És ha van hívás Egy módszer egy tárgy belsejében, 227 00:14:09,350 --> 00:14:16,640 hívod miau az objektumra, amely a macska most létrehozott. 228 00:14:16,640 --> 00:14:19,020 >> Valószínűleg akkor nyomtassa ki valami ilyesmit "Hello World! 229 00:14:19,020 --> 00:14:20,000 Miau ". 230 00:14:20,000 --> 00:14:22,110 Nagyon aranyos. 231 00:14:22,110 --> 00:14:24,500 Rendben, nézzük csak bejutni néhány részletet 232 00:14:24,500 --> 00:14:30,650 és mit jelent pontosan, hogy lefordítani, hogy iOS programozás. 233 00:14:30,650 --> 00:14:36,500 Tehát iOS programozás minden egyes osztály bevezetése két fájlt. 234 00:14:36,500 --> 00:14:41,420 Az egyik fájl van, ami hívják a felület. 235 00:14:41,420 --> 00:14:45,300 Egy másik fájl van, ami nevezzük végrehajtása. 236 00:14:45,300 --> 00:14:48,890 >> Jellemzően a felület lesz extension.h 237 00:14:48,890 --> 00:14:51,740 mint láttuk a C könyvtárak. 238 00:14:51,740 --> 00:14:56,340 És végrehajtása fájl megy, hogy extension.n. 239 00:14:56,340 --> 00:14:57,260 Ez furcsa. 240 00:14:57,260 --> 00:15:01,270 De .N módon ténylegesen .c, nincs Alapvető különbség azok között, 241 00:15:01,270 --> 00:15:02,100 két. 242 00:15:02,100 --> 00:15:06,650 Tehát ebben az esetben, azt látjuk, hogy mi vagyunk nyilvánító interfész, Cat: tárgy. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Ez az úgynevezett örökséget. 245 00:15:13,760 --> 00:15:19,170 Mi alapvetően örökli a cat osztály az objektum osztály. 246 00:15:19,170 --> 00:15:24,790 Szóval minden tulajdon és a módszer volt korábban meghatározott objektum osztály 247 00:15:24,790 --> 00:15:28,560 automatikusan meghatározott Egy macska osztályban is. 248 00:15:28,560 --> 00:15:35,900 >> Ezen felül, definiálunk szín, fajta, és az életkor, a három változó. 249 00:15:35,900 --> 00:15:39,360 Hogy valóban úgy néz ki, mint a valamit, amit megtettél előtt. 250 00:15:39,360 --> 00:15:41,770 Úgy néz ki, mint struct. 251 00:15:41,770 --> 00:15:44,950 Ez alapvetően a szintaxis A struct nyilatkozatot, 252 00:15:44,950 --> 00:15:47,710 és ez teljesen korrekt. 253 00:15:47,710 --> 00:15:51,825 És mivel már említettem korábban, A különbség a struct 254 00:15:51,825 --> 00:15:53,960 és egy tárgy, az egyik a alapvető különbségek 255 00:15:53,960 --> 00:15:59,080 az, hogy egy objektum módszer, míg a struct csak változók. 256 00:15:59,080 --> 00:16:03,450 Tehát amellett, hogy a tulajdonságok vagy változók általunk létrehozott objektum, 257 00:16:03,450 --> 00:16:05,700 megadjuk néhány módszert. 258 00:16:05,700 --> 00:16:09,720 >> Mondjuk úgy, hogy a sor két módszer, az egyik miau, 259 00:16:09,720 --> 00:16:12,460 egy másik a hajsza az egeret. 260 00:16:12,460 --> 00:16:18,600 Azt érdemes halad a paraméter alapján a korábbi módszerrel 261 00:16:18,600 --> 00:16:20,440 nyilatkozat mintát. 262 00:16:20,440 --> 00:16:22,160 Talán szeretnénk lenni halad egy egeret. 263 00:16:22,160 --> 00:16:25,180 És akkor érdemes vissza a bool jelölő 264 00:16:25,180 --> 00:16:30,010 Ha macskád sikeresen fogott az egeret, vagy sem. 265 00:16:30,010 --> 00:16:33,170 >> Ez az interfész, de nem tudjuk láthatjuk, hogy a felület ténylegesen 266 00:16:33,170 --> 00:16:35,150 nem csinál semmit. 267 00:16:35,150 --> 00:16:40,800 Csak azt mondja egy programot, amit exists-- mi van a macska osztályban. 268 00:16:40,800 --> 00:16:43,640 Tehát annak érdekében, hogy a programot csinálni valamit, 269 00:16:43,640 --> 00:16:46,680 mi szükség van végrehajtási fájlokat. 270 00:16:46,680 --> 00:16:51,940 Tehát itt, az első dolog, amit tennie, Nyilvánvalóan importáljuk a felületet. 271 00:16:51,940 --> 00:16:56,470 Miután importáljuk a felületet, definiáljuk az módszer. 272 00:16:56,470 --> 00:17:00,150 >> Mondjuk úgy, hogy itt miau azt csak nyomtassa ki 273 00:17:00,150 --> 00:17:01,740 "Hello World!" a konzolra. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 És a végrehajtási fájl, mi elég sokat tenni. 276 00:17:08,460 --> 00:17:14,530 Ez tulajdonképpen egy osztály nyilatkozatot egy osztály. 277 00:17:14,530 --> 00:17:19,970 Tehát most a kérdés az, hogyan, hogy egy változót? 278 00:17:19,970 --> 00:17:26,880 A használat módja egy osztály létrehozására tárgy Objective C van írva itt. 279 00:17:26,880 --> 00:17:30,730 >> Először meghatározzák, hogy ez egy macska mutató, 280 00:17:30,730 --> 00:17:38,700 mert minden tárgy Objective C végül megvalósult a mutató. 281 00:17:38,700 --> 00:17:46,210 És akkor hívja az osztály, hívja őket mint alloc, ami alapvetően malloc, 282 00:17:46,210 --> 00:17:51,220 mondja a használt operációs rendszer Kell egy kis memóriát ehhez az objektumhoz. 283 00:17:51,220 --> 00:17:55,780 Ezután meg egy tárgyat és már csak inicializálás. 284 00:17:55,780 --> 00:17:56,780 Ez csak egyezmény. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Tudom, hogy ez egy kicsit furcsa, de tulajdonképpen így az Apple nem cucc. 287 00:18:04,410 --> 00:18:07,130 >> Hozzárendelése tulajdonságok valójában nagyon egyszerű. 288 00:18:07,130 --> 00:18:09,250 Ez nagyon hasonlít a mit csinálsz, ha 289 00:18:09,250 --> 00:18:13,780 te hozzárendelése néhány konkrét mező belsejében struct. 290 00:18:13,780 --> 00:18:16,830 Csak ki a változót megnevezni, a tulajdonság nevét, 291 00:18:16,830 --> 00:18:20,140 és hozzá adott értéket is. 292 00:18:20,140 --> 00:18:24,120 És felhívása a módszer nagyon hasonló. 293 00:18:24,120 --> 00:18:29,080 Az eljárás meghívásakor is Alapvetően, amit beszélnek 294 00:18:29,080 --> 00:18:32,390 hívását bármilyen módszerrel célkitűzés C. 295 00:18:32,390 --> 00:18:36,660 >> Te halad egy tárgy, Ebben az esetben ez lesz myCat, 296 00:18:36,660 --> 00:18:42,490 és te halad a metódus nevét. 297 00:18:42,490 --> 00:18:47,130 Mintha te beszélsz az objektumot, myCat, hogy meg kell nyávog. 298 00:18:47,130 --> 00:18:48,570 Ez elég érdekes. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Ezután, van egy További lényeges tervezési minta 301 00:18:55,680 --> 00:18:59,940 hogy meg kell beszélni mielőtt elindul a tényleges S kódot. 302 00:18:59,940 --> 00:19:03,300 Hogy a tervezési minták hívják eseményvezérelt programozás. 303 00:19:03,300 --> 00:19:09,660 Ez egyben talán az egyik alapgondolata az iOS programozás. 304 00:19:09,660 --> 00:19:14,410 >> Szóval akkor valószínűleg nem tudja, pontosan mi az eseményvezérelt programozás, 305 00:19:14,410 --> 00:19:16,990 de ez nem is olyan ijesztő. 306 00:19:16,990 --> 00:19:20,400 Nos valóban, van tette, hogy mielőtt. 307 00:19:20,400 --> 00:19:24,894 Ez az egyik sor, akkor már valószínűleg Már írt az elmúlt [hallhatatlan] 308 00:19:24,894 --> 00:19:26,810 A CS50, google.maps.event.addListener (marker, 309 00:19:26,810 --> 00:19:27,810 "Klikk", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Hívja ezt a sort Ön tulajdonképpen azt a számítógép 312 00:19:37,620 --> 00:19:42,650 hogy amikor a rendezvénnyel "Klikk" történik a marker, 313 00:19:42,650 --> 00:19:43,630 használni ezt a funkciót. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Ez nagyon különbözik a mit csinálsz mario.c. 316 00:19:50,950 --> 00:19:56,670 A mario.c csak a program futtatásához Egyszer, mert ad egy output, 317 00:19:56,670 --> 00:19:58,590 és kész. 318 00:19:58,590 --> 00:20:02,590 Ezek a fajta, mint egy lövés programok. 319 00:20:02,590 --> 00:20:05,830 Eseményvezérelt programok Nagyon, nagyon különböző. 320 00:20:05,830 --> 00:20:10,230 Képzeljük el, ha a Facebook egy lövés programot ez nem igazán jó. 321 00:20:10,230 --> 00:20:13,750 Te csak menj Facebook egyszer és kész. 322 00:20:13,750 --> 00:20:16,700 Ez ad neked egy kimenetet és soha nem kaptam vissza. 323 00:20:16,700 --> 00:20:19,380 Soha nem kaptam mást. 324 00:20:19,380 --> 00:20:23,880 >> Tehát itt, különösen, A mintát használtunk, 325 00:20:23,880 --> 00:20:26,940 eseményvezérelt, hogy Minden funkció 326 00:20:26,940 --> 00:20:31,480 fogott alapján, amit esemény történt. 327 00:20:31,480 --> 00:20:34,670 Például, ha van egy gombot, és adja meg 328 00:20:34,670 --> 00:20:39,870 hogy valahányszor hogy a gombra kattint, A funkciót a "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Ily módon tudjuk igazán kezeli a funkcionális logikát 330 00:20:47,810 --> 00:20:50,560 áramlás rendkívül rugalmas módon. 331 00:20:50,560 --> 00:20:55,840 A felhasználó tehet, vagy hívja a funkciót a már hívott. 332 00:20:55,840 --> 00:20:59,900 Teljesen alapján, amit a felhasználók nem. 333 00:20:59,900 --> 00:21:04,080 >> Tehát láthatjuk, hogy ez valóban sokkal jobb, mint mario.c. 334 00:21:04,080 --> 00:21:07,190 És a jó hír az, hogy ez az valójában nem egy új koncepció. 335 00:21:07,190 --> 00:21:12,140 Srácok már megtette hogy az utolsó probléma beállított. 336 00:21:12,140 --> 00:21:16,640 Tehát Objective C van Három különböző diagramok 337 00:21:16,640 --> 00:21:19,030 A eseményvezérelt programozás. 338 00:21:19,030 --> 00:21:21,970 Az első diagram úgynevezett target fellépés, 339 00:21:21,970 --> 00:21:26,990 ahol megkötik a gombot nyomja meg néhány funkciója. 340 00:21:26,990 --> 00:21:31,590 Mondjuk úgy, ha rákattint Néhány gomb, hívja néhány funkciója. 341 00:21:31,590 --> 00:21:33,620 Ez nagyon egyszerű célt fellépés. 342 00:21:33,620 --> 00:21:35,580 >> A második egy valójában a legnehezebb, 343 00:21:35,580 --> 00:21:38,450 ezt hívják delegáció protokollt. 344 00:21:38,450 --> 00:21:41,800 Megyünk megmagyarázni hogy részletesen később. 345 00:21:41,800 --> 00:21:44,420 És a harmadik út értesítést. 346 00:21:44,420 --> 00:21:46,770 Ez tulajdonképpen nem Nagyon fontos, amennyire 347 00:21:46,770 --> 00:21:50,920 mint mi érintett, mert az esélye hogy fogsz használni értesítés 348 00:21:50,920 --> 00:21:53,310 a projekt végső elég alacsony. 349 00:21:53,310 --> 00:21:56,440 Így fogunk ugrani, hogy részt. 350 00:21:56,440 --> 00:21:59,460 >> És megyünk merülni a delegáció protokollt. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 De pontosan mi is az a protokoll? 353 00:22:04,470 --> 00:22:06,450 Vagy mi is pontosan a küldöttség? 354 00:22:06,450 --> 00:22:09,670 Beszéljünk protokoll kezdeni. 355 00:22:09,670 --> 00:22:13,360 Protokollok, de semmi eseményeket. 356 00:22:13,360 --> 00:22:19,230 De ezek az események adott akkor az Apple kezdeni. 357 00:22:19,230 --> 00:22:22,640 Például, nem vagyok Teljesen biztos benne, hogy sokan közületek 358 00:22:22,640 --> 00:22:27,930 srácok használja az Apple eredeti app mail vagy kontakt, 359 00:22:27,930 --> 00:22:32,180 de minden alkalommal, amikor görgetni a asztal és nyomja meg az adott cellában 360 00:22:32,180 --> 00:22:36,130 az asztalra, hogy egy esemény. 361 00:22:36,130 --> 00:22:38,330 >> És ha akarod Ez esetben egyedül, 362 00:22:38,330 --> 00:22:40,410 ez valójában egy kicsit nehéz. 363 00:22:40,410 --> 00:22:44,880 Tehát az Apple adta, hogy még neked így csak közvetlenül használja 364 00:22:44,880 --> 00:22:49,610 Az esemény, hogy tegyen valamit a saját. 365 00:22:49,610 --> 00:22:52,980 Jegyzőkönyveit ténylegesen Nagyon, nagyon széles körben használt 366 00:22:52,980 --> 00:22:58,320 Célkitűzés C. Nos Tény, hogy minden egyes app 367 00:22:58,320 --> 00:23:00,870 van valami fogott app küldött. 368 00:23:00,870 --> 00:23:06,330 Belsejében kényes az összes protokollok betöltése app. 369 00:23:06,330 --> 00:23:12,470 >> Mondjuk úgy, hogy van egy esemény app tette terhelést. 370 00:23:12,470 --> 00:23:18,200 Mi legyen tehát Miután létrehozott egy app, miután megnyitjuk az alkalmazást, 371 00:23:18,200 --> 00:23:22,630 bezárása után az alkalmazás, vagy után teszel az iPhone aludni. 372 00:23:22,630 --> 00:23:27,480 Ezek mind olyan események, amelyek már már adott neked. 373 00:23:27,480 --> 00:23:34,730 És eredetileg benne ezek a részecskék nem lesz végrehajtás. 374 00:23:34,730 --> 00:23:39,750 Apple most mondtam, hogy ez a funkció fog történni, ha valamilyen esemény történik, 375 00:23:39,750 --> 00:23:44,380 de mit csinálsz azzal, hogy funkció teljesen rajtad múlik. 376 00:23:44,380 --> 00:23:49,290 >> Küldöttség alapvetően mondja az osztály 377 00:23:49,290 --> 00:23:53,060 hogy meg kell kezelni ezeket a protokollokat. 378 00:23:53,060 --> 00:23:55,340 Ez egy kicsit zavaró, de ez lesz 379 00:23:55,340 --> 00:23:59,380 sokkal tisztább, amikor mi Az ok kódok akcióban. 380 00:23:59,380 --> 00:24:04,760 Delegáció protokoll valójában egy Igen erős mechanizmus abban az értelemben, 381 00:24:04,760 --> 00:24:08,160 hogy ha nem teszünk küldöttsége hogy egy adott osztály, 382 00:24:08,160 --> 00:24:12,400 tudjuk lényegében kezelni mindenféle rendezvények 383 00:24:12,400 --> 00:24:17,040 bármilyen class van, Nagyon kényelmes eszköz. 384 00:24:17,040 --> 00:24:21,530 >> Tehát az egyik gyors példa delegáció protokoll 385 00:24:21,530 --> 00:24:24,120 lesz, amit az előbb beszéltem. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Ez a protokoll kifejezetten hívják Tableview [hallhatatlan] válassza szerepe 388 00:24:30,890 --> 00:24:35,480 A [? index?] [? múltban. ?] Tehát ez egy Amennyiben akkor ütközik, ha 389 00:24:35,480 --> 00:24:39,710 valóban megérint egy konkrét sejt a Tableview, 390 00:24:39,710 --> 00:24:43,570 mondjuk, a mail vagy a kapcsolatok app. 391 00:24:43,570 --> 00:24:48,180 >> Függvényen belül volt Eredetileg nem csinált semmit. 392 00:24:48,180 --> 00:24:51,950 Ez a funkció nem semmit alapból. 393 00:24:51,950 --> 00:24:55,540 De megadhatja amit a függvény, 394 00:24:55,540 --> 00:24:59,610 adott mit akarsz ki a app. 395 00:24:59,610 --> 00:25:01,610 Nagyon kényelmes eszköz. 396 00:25:01,610 --> 00:25:06,840 És minden, hogy azt mondta, én alapvetően 397 00:25:06,840 --> 00:25:11,430 fedezze néhány alapvető szintaktikai és az alapvető koncepció Objective C 398 00:25:11,430 --> 00:25:15,860 programozás, és tehetünk néhány s kódot. 399 00:25:15,860 --> 00:25:17,980 Sokkal izgalmasabb. 400 00:25:17,980 --> 00:25:21,070 Tehát s kód valójában egy kicsit nyomasztó 401 00:25:21,070 --> 00:25:23,330 amikor megnyitja az első alkalommal. 402 00:25:23,330 --> 00:25:26,640 >> Egy gyors megjegyzés, így ha akarok iOS fejlesztési, 403 00:25:26,640 --> 00:25:29,630 Azt ajánlom, hogy egy Mac. 404 00:25:29,630 --> 00:25:33,930 Azért, mert iOS fejlesztés A Windows is nagyon, nagyon nehéz. 405 00:25:33,930 --> 00:25:37,560 Ez megvalósítható, de ez nagyon nehéz. 406 00:25:37,560 --> 00:25:40,610 És akkor biztosan nem akarja használni g szerkesztés. 407 00:25:40,610 --> 00:25:47,950 Így s kód van Több különböző területeken. 408 00:25:47,950 --> 00:25:53,050 Amikor először nyit s kód akkor megjelenik egy navigációs területen, 409 00:25:53,050 --> 00:25:57,470 ami alapvetően megmutatja az összes fájlokat, amely szerepel a projektben. 410 00:25:57,470 --> 00:26:03,590 >> Van egy eszköztáron, amely alapvetően ügyvezető nézetek, 411 00:26:03,590 --> 00:26:08,570 vagy egy kis gyors Szerszám s kód is. 412 00:26:08,570 --> 00:26:11,140 És ez a tényleges szerkesztő területen. 413 00:26:11,140 --> 00:26:15,900 Ez a terület nagyon hasonlít g szerkesztés, de sokkal jobb, mint g szerkesztés. 414 00:26:15,900 --> 00:26:21,150 És ez a jog területén, a úgynevezett közüzemi területen. 415 00:26:21,150 --> 00:26:27,170 A terület akkor válik igazán hasznos, ha te létre interfész vagy megnevezze 416 00:26:27,170 --> 00:26:30,070 Néhány gyors beállítások a app. 417 00:26:30,070 --> 00:26:34,570 >> És az utolsó terület a hibakeresés. 418 00:26:34,570 --> 00:26:37,970 Ez a terület tartalmazza a konzol. 419 00:26:37,970 --> 00:26:43,170 Tehát, ha azt mondod printf, vagy NSLog a mi esetünkben, 420 00:26:43,170 --> 00:26:47,330 minden eredmény lesz itt nyomtatták. 421 00:26:47,330 --> 00:26:48,260 Rendben? 422 00:26:48,260 --> 00:26:52,090 Azt hiszem, tényleg gyorsan csinálni Példaként az iOS programozás. 423 00:26:52,090 --> 00:26:54,220 És legyünk valóban nyit s kódot. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Tehát minden alkalommal, amikor megnyitja s kódot, ez fog felbukkanni valami ilyesmi. 426 00:27:01,346 --> 00:27:03,220 Meg fog kérni, mit akarsz csinálni? 427 00:27:03,220 --> 00:27:06,830 Mit akar kezdeni valamit véletlenszerű, játszótér, alapvetően meg 428 00:27:06,830 --> 00:27:11,250 lehet csak teszt kód nélkül érvénybe, hogy minden app. 429 00:27:11,250 --> 00:27:13,020 >> Szeretné, hogy hozzon létre egy új projektet? 430 00:27:13,020 --> 00:27:16,660 Vagy azt szeretnénk folytatni dolgozik a jelenlegi projekt? 431 00:27:16,660 --> 00:27:20,270 A mi esetünkben megyünk hogy hozzon létre egy új projektet. 432 00:27:20,270 --> 00:27:22,980 Szóval ez tényleg szép, s kód valójában már 433 00:27:22,980 --> 00:27:26,820 adott neked néhány sablont objektumok létrehozásához. 434 00:27:26,820 --> 00:27:32,680 Ha azt szeretnénk, hogy egy játék, S-kódot valójában egy játék sablont az Ön számára, 435 00:27:32,680 --> 00:27:36,890 van az oldal alapú alkalmazások, fül alapú alkalmazás. 436 00:27:36,890 --> 00:27:39,280 Ebben az esetben, megyünk hogy tegyen valamit nagyon egyszerű, 437 00:27:39,280 --> 00:27:43,230 és fogunk használni egyetlen nézetben alkalmazást. 438 00:27:43,230 --> 00:27:48,270 >> Ezután csak mi szeretnénk felhívni a terméket, és mi a neved, 439 00:27:48,270 --> 00:27:52,760 mi a azonosítót, és mit nyelvet használ. 440 00:27:52,760 --> 00:27:57,060 Itt nem akarjuk, hogy ellenőrizze a Core adatok. 441 00:27:57,060 --> 00:28:00,170 Core adatokat tulajdonképpen egy databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Ha igen Core Data, s kód fogja meghatározni 443 00:28:05,360 --> 00:28:07,710 sokkal bonyolultabb osztályok az Ön számára. 444 00:28:07,710 --> 00:28:12,740 Tehát, hogy minden egyszerű, mi vagyunk csak csinálni anélkül Core adatok 445 00:28:12,740 --> 00:28:15,290 most. 446 00:28:15,290 --> 00:28:18,030 >> A probléma mi lesz segítségével az hogy-- a problémát 447 00:28:18,030 --> 00:28:23,770 fogunk, hogy létre, hogy mi Alapvetően az importálni kívánt Mario a C 448 00:28:23,770 --> 00:28:25,437 egy iOS app. 449 00:28:25,437 --> 00:28:26,645 Így hívjuk, hogy Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Hát persze, hogy adja meg az Ön kívánja helyezni a projektben. 452 00:28:34,880 --> 00:28:37,870 És ott is vagyunk. 453 00:28:37,870 --> 00:28:41,390 >> Szóval ez egy kicsit nyomasztó, de ez valójában 454 00:28:41,390 --> 00:28:43,540 amit most láttam a diák. 455 00:28:43,540 --> 00:28:49,710 És az első terület látjuk most alapvetően projekt konfiguráció. 456 00:28:49,710 --> 00:28:53,390 Tehát minden, amit akarok projekt, hogy milyen eszköz, 457 00:28:53,390 --> 00:28:58,810 maradjunk annyiban, hogy milyen eszköz Szeretnéd, ha a app jelenik meg? 458 00:28:58,810 --> 00:29:01,280 Vajon iPhone, iPad vagy univerzális? 459 00:29:01,280 --> 00:29:04,660 Szóval eszköz orientáció, ez az egész. 460 00:29:04,660 --> 00:29:08,490 Nem nagyon fontos, de lehet, de ez a 461 00:29:08,490 --> 00:29:11,050 az a hely, ahol létre a projekt, ha valóban 462 00:29:11,050 --> 00:29:15,180 szeretné telepíteni az Apple boltba. 463 00:29:15,180 --> 00:29:20,420 >> Rendben, nézzük meg valamit, ami belül van a kód. 464 00:29:20,420 --> 00:29:22,360 Menjünk át a fájl navigátor. 465 00:29:22,360 --> 00:29:30,140 És ezek azok a fájlok, amelyek már jött a sablont, nagyon szép. 466 00:29:30,140 --> 00:29:35,980 Így, amikor rákattintunk az egyikre ez az, amit úgy néz ki. 467 00:29:35,980 --> 00:29:38,530 Nagyon hasonló a g szerkesztés. 468 00:29:38,530 --> 00:29:41,340 De láthatjuk, hogy a szintaxiskiemeléshez, valószínűleg 469 00:29:41,340 --> 00:29:42,780 egy kicsit kedvesebb. 470 00:29:42,780 --> 00:29:45,610 És ez valójában sokkal erősebb, mint g szerkesztő. 471 00:29:45,610 --> 00:29:49,970 És akkor az automatikus teljes egy csomó dolog az Ön számára, 472 00:29:49,970 --> 00:29:52,370 mint látni fogjuk, nagyon gyorsan. 473 00:29:52,370 --> 00:29:54,100 >> Nyisd ki a hibakeresés területen is. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Rendben, amint látjuk, A konzol itt. 476 00:30:07,000 --> 00:30:13,840 Ez mit fogsz látni, ahol te vagy a printf vagy nsloging valamit. 477 00:30:13,840 --> 00:30:17,155 Tehát minden további nélkül, nézzük valóban fordítsd le a app, és meglátjuk, mi történik. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Az egyik alapvető jellemzője a s kódot, hogy s kód 480 00:30:23,410 --> 00:30:25,850 jön egy iPhone-szimulátor. 481 00:30:25,850 --> 00:30:29,820 Szóval nem kell egy iPhone próbálni a projekt, 482 00:30:29,820 --> 00:30:34,440 s kódot képes szimulálni, hogy az Ön, mint látjuk most. 483 00:30:34,440 --> 00:30:36,406 >> Ez nagyon szép. 484 00:30:36,406 --> 00:30:38,640 Ez vesz egy kicsit kis időt fordítani 485 00:30:38,640 --> 00:30:43,040 és alapvetően van egy üres alkalmazás, 486 00:30:43,040 --> 00:30:44,640 amely valójában nem csinál semmit. 487 00:30:44,640 --> 00:30:46,175 De lefordítja. 488 00:30:46,175 --> 00:30:47,380 Ez nagyszerű. 489 00:30:47,380 --> 00:30:50,200 Ez sokkal jobb, mint a C, mi? 490 00:30:50,200 --> 00:30:52,130 Rendben, akkor nézzük próbálja meg felvenni valamit. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Egy fájl, ami egy kicsit fura itt az úgynevezett storyboard. 493 00:31:02,650 --> 00:31:08,020 Ez tulajdonképpen egy nagy, félelmetes funkciót s kódot. 494 00:31:08,020 --> 00:31:14,170 Mert s kódot, akkor valóban drag és vidd elemeket rá a felületet 495 00:31:14,170 --> 00:31:17,430 és közvetlenül is megjelennek. 496 00:31:17,430 --> 00:31:18,055 Próbáljuk. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Mi csepp egy címke van, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Mi lehet a központ, amely. 500 00:31:29,740 --> 00:31:30,970 Elég jó. 501 00:31:30,970 --> 00:31:33,915 Most fussunk a stop szimuláció. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Itt van "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Mi nem is csinál semmi kódolás még. 505 00:31:40,810 --> 00:31:42,750 Mi a fene folyik itt? 506 00:31:42,750 --> 00:31:45,880 Ez milyen erős Interface Builder lehet. 507 00:31:45,880 --> 00:31:48,030 Valaki még azt is mondta, hogy Tudod talán most 508 00:31:48,030 --> 00:31:52,800 töltsön ki egy app írás nélkül Valószínűleg ezer sornyi kódot 509 00:31:52,800 --> 00:31:54,820 csak használja a Interface Builder. 510 00:31:54,820 --> 00:31:59,680 De ez valószínűleg nem A legjobb megoldás erre. 511 00:31:59,680 --> 00:32:01,670 >> Most tényleg csak le kódolás. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Így a szerkezet a fájl tényleg nagyon érdekes, 514 00:32:08,330 --> 00:32:15,610 mert, ahogy lehet látni, ott nincs fő funkciója bárhol. 515 00:32:15,610 --> 00:32:17,466 Látod? 516 00:32:17,466 --> 00:32:19,340 Mint már említettük, akkor láthatjuk, hogy ez a 517 00:32:19,340 --> 00:32:22,830 alapjaiban egy fájlt Egy adott osztályban. 518 00:32:22,830 --> 00:32:25,690 De nincs fő bárhol. 519 00:32:25,690 --> 00:32:27,490 Szóval hol van a fő? 520 00:32:27,490 --> 00:32:31,970 Valójában, van egy fő, de a Fő valójában rejtve van. 521 00:32:31,970 --> 00:32:34,560 A fő van itt. 522 00:32:34,560 --> 00:32:37,120 Úgy néz ki, ismerős. 523 00:32:37,120 --> 00:32:41,000 >> Tehát alapvetően mi iOS csinál belsejében fő 524 00:32:41,000 --> 00:32:43,540 az, hogy bármikor fő van nevű, ami alapvetően 525 00:32:43,540 --> 00:32:49,000 ha az alkalmazás futtatásakor a létrehoz egy objektum neve AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Ahogy már korábban említettem, a teljes app valójában egy tárgy önmagában. 528 00:32:57,350 --> 00:33:02,270 Tehát ily módon, alapvetően a iOS app mondja a fordító 529 00:33:02,270 --> 00:33:05,540 hogy OK, megyek létrehozni egy termék nevű AppDelegate, 530 00:33:05,540 --> 00:33:07,620 és ez lesz az app. 531 00:33:07,620 --> 00:33:09,640 Tehát el kell menni ezen keresztül AppDelegate 532 00:33:09,640 --> 00:33:12,040 és mi az a fickó csinál. 533 00:33:12,040 --> 00:33:14,850 Végeztem a számomra. 534 00:33:14,850 --> 00:33:22,070 >> És AppDelegate láthatod, hogy van néhány igazán furcsa funkciók, 535 00:33:22,070 --> 00:33:25,290 Nos valóban módszereket, amelyek Az Apple már adott Önnek. 536 00:33:25,290 --> 00:33:27,464 Mik ezek? 537 00:33:27,464 --> 00:33:31,010 Ezek valójában csak protokollok hogy én beszélek. 538 00:33:31,010 --> 00:33:35,670 Tehát ezek olyan események, amelyek az Apple adott Önnek kezdeni. 539 00:33:35,670 --> 00:33:38,050 Semmi sem bizonyos A funkciók most, 540 00:33:38,050 --> 00:33:40,820 de ha azt akarjuk inicializálni valamit a app 541 00:33:40,820 --> 00:33:46,140 mielőtt beült megjelenítésére Bármelyik nézetben tudnánk mi ezt itt. 542 00:33:46,140 --> 00:33:51,150 >> Akkor csak olvasd el a nevét és azt hiszem, Amennyiben valóban nagyon világos. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Tehát most fő teremtett egy tárgy AppDelegate. 545 00:33:58,350 --> 00:34:05,220 És mi AppDelegate fog csinálni valójában is rejtve van. 546 00:34:05,220 --> 00:34:09,250 A AppDelegate fog kezdeni betöltése ViewController állomány. 547 00:34:09,250 --> 00:34:13,170 Tehát alapvetően fog kezdeni rakodást a véleményét, hogy van 548 00:34:13,170 --> 00:34:17,500 és csak teszi a néző alapján a hierarchia. 549 00:34:17,500 --> 00:34:21,280 >> Tehát ebben az esetben már csak egy nézetet, ami itt van. 550 00:34:21,280 --> 00:34:25,060 Tehát ez az egyetlen nézetet hogy fog hívni. 551 00:34:25,060 --> 00:34:28,159 A ViewController logika itt. 552 00:34:28,159 --> 00:34:32,159 Ez a kód, amely ténylegesen vezérli a nézet láttunk. 553 00:34:32,159 --> 00:34:33,679 Rendben, csináljuk valamit. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Tehát viewDidLoad hangzik, mint egy esemény, amikor valójában ez is egy küldöttel, 556 00:34:50,560 --> 00:34:52,500 ez is egy protokollt. 557 00:34:52,500 --> 00:34:56,350 >> Így bármilyen céllal kerül betöltésre, mindent a függvény belsejében 558 00:34:56,350 --> 00:34:57,920 fogják hívni. 559 00:34:57,920 --> 00:35:02,840 Ebben az esetben meg kell látni "Hello Tianyu! ", Ha a program futtatásához. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Kezd egy kicsit lassú összeállítása storyboard fájlokat. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Nos valóban, tartjuk, hogy a kimeneti érte. 564 00:35:18,190 --> 00:35:20,720 Ez elég jó. 565 00:35:20,720 --> 00:35:22,000 Most valóban meg Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Megyek, hogy meghatározza a működik nagyon gyorsan. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: (int) szintű eredményeket. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Rendben, ez valójában a félelmetes jellemzője s kód automatikus kiegészítés. 572 00:36:06,410 --> 00:36:10,680 Tehát amikor írsz, és írja be, már feladta a sablon 573 00:36:10,680 --> 00:36:12,325 az Ön számára, ami elég jó. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Hogy kell nézni igazán ismerős srácok. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Bocsánat, de ez az én hibám. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Rendben, jó. 580 00:37:18,120 --> 00:37:22,710 Hogy a logikát kell nézni igazán ismerős a srácok, főleg közvetlenül Mario. 581 00:37:22,710 --> 00:37:26,140 >> De mi most kinyomtatni A konzol minden egyes alkalommal, 582 00:37:26,140 --> 00:37:29,280 mert azt akarjuk, hogy valahogy tartani követni, hogy mi vagyunk a nyomtatást. 583 00:37:29,280 --> 00:37:31,810 Megyünk használja a Eredmények valahogy később, 584 00:37:31,810 --> 00:37:35,010 hogy megjelenítse a nyomtatási ki eredményezi, hogy a felhasználó számára. 585 00:37:35,010 --> 00:37:37,730 Tehát ahelyett, hogy mi csak nslogging mindent, 586 00:37:37,730 --> 00:37:42,410 amelyet szeretnénk tárolására mindent egy függvényhívás eredménye, 587 00:37:42,410 --> 00:37:44,070 de a logika pontosan ugyanaz. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Miután befejezte, mi csak nyomtatni eredményeink. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> És itt van, nem nyomtatja én nevet, fogunk hívni függvényében. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Lássuk, mi történik. 594 00:38:18,090 --> 00:38:21,240 Hoppá, nyilván. 595 00:38:21,240 --> 00:38:24,320 Van egy szép piramist itt. 596 00:38:24,320 --> 00:38:28,370 Ez alapvetően C, mi csak manipulálni, ahol a tétet függvényében 597 00:38:28,370 --> 00:38:30,010 és hogyan függvényében kinézni. 598 00:38:30,010 --> 00:38:31,560 Nincs semmi más. 599 00:38:31,560 --> 00:38:34,040 De ez valójában Nem nagyon izgalmas itt, 600 00:38:34,040 --> 00:38:37,500 mert nem látunk semmit az iPhone app. 601 00:38:37,500 --> 00:38:42,120 >> Tehát, ha valóban van egy iPhone app-- Ha valóban van Mario iOS joga 602 00:38:42,120 --> 00:38:45,080 Most, hogy nem fogod látni semmit, hogy 603 00:38:45,080 --> 00:38:49,450 van valami köze Mario miatt minden kimenet egy konzolra 604 00:38:49,450 --> 00:38:51,620 el vannak rejtve a felhasználó. 605 00:38:51,620 --> 00:38:53,850 Ez az, amit látsz, amely "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 Nem jó. 607 00:38:55,720 --> 00:39:03,090 Most próbáljuk, hogy a felhasználó látni pontosan mi vagyunk a nyomtatást. 608 00:39:03,090 --> 00:39:06,000 Tehát nem kell címkézni többé. 609 00:39:06,000 --> 00:39:09,800 Próbáljuk kitalálni valamit más, ami hasznos lehet. 610 00:39:09,800 --> 00:39:12,140 >> Van valójában egy elem, hogy az úgynevezett 611 00:39:12,140 --> 00:39:16,460 szövegmezőbe, ami nagyon hasznos lehet számunkra. 612 00:39:16,460 --> 00:39:19,880 Ez alapvetően megjeleníti a régióban A szöveg szerkeszthető. 613 00:39:19,880 --> 00:39:22,320 Tehát úgy néz ki, igazán hasznos. 614 00:39:22,320 --> 00:39:23,810 Most húzd és dobd el. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, van egy szöveges nézethez Véleményünk szerint igazán divatos. 617 00:39:32,670 --> 00:39:35,430 Ez egy kicsit túl nagy. 618 00:39:35,430 --> 00:39:38,150 Legyünk kisebb. 619 00:39:38,150 --> 00:39:40,290 Tedd be center. 620 00:39:40,290 --> 00:39:43,760 Hogy kisebb is. 621 00:39:43,760 --> 00:39:50,110 >> Most van egy szöveges nézet, amit be tudtunk használható megjelenítéséhez a végeredményt. 622 00:39:50,110 --> 00:39:52,860 De most ez biztosan nem fog működni 623 00:39:52,860 --> 00:39:56,970 mert van no-- a ViewController mi csak 624 00:39:56,970 --> 00:40:03,010 meghatározott nem tudja, hogy van egy szöveges nézet odakint. 625 00:40:03,010 --> 00:40:06,550 Tehát meg kell valahogy összekapcsolják a szöveges nézet mi csak 626 00:40:06,550 --> 00:40:11,660 létrehozta az osztállyal, hogy már jött velünk. 627 00:40:11,660 --> 00:40:14,860 >> Mint ahogy mi tesszük, hogy az Igazából nagyon varázslatos. 628 00:40:14,860 --> 00:40:18,190 Így nyit storyboard. 629 00:40:18,190 --> 00:40:22,220 Van egy különleges [hallhatatlan] nevű [? asszisztens?] [hallhatatlan]. 630 00:40:22,220 --> 00:40:25,190 Ha rákattint, hogy ez fogja megnyitni két fájlt. 631 00:40:25,190 --> 00:40:29,425 Az egyik egy osztály és a másik egy egy megfelelő nézetet érte. 632 00:40:29,425 --> 00:40:31,920 Ez nagyon, nagyon hasznos. 633 00:40:31,920 --> 00:40:35,950 És nézzük csak átmegy a .h fájlt. 634 00:40:35,950 --> 00:40:39,110 Kontroll, ez [hallhatatlan] logikát. 635 00:40:39,110 --> 00:40:47,280 Nyomja meg a Ctrl és húzza a text kilátás a nyilatkozatot. 636 00:40:47,280 --> 00:40:48,780 Fogunk hívni, hogy outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Kösse. 639 00:40:53,670 --> 00:40:59,420 Tehát itt vagyunk kijelentették új ingatlan a ViewController osztályban. 640 00:40:59,420 --> 00:41:02,300 És az új ingatlan csak a szöveges nézet 641 00:41:02,300 --> 00:41:05,000 hoztuk létre a felületen épületben. 642 00:41:05,000 --> 00:41:07,990 Tehát ilyen módon tudnánk hozzáférést az összes adatot 643 00:41:07,990 --> 00:41:13,630 és manipulálni mindent, ami belül van A kimeneti nézet, ami félelmetes. 644 00:41:13,630 --> 00:41:19,260 >> Tehát a mi tényleges kódot, csináljuk valamit vele. 645 00:41:19,260 --> 00:41:23,810 Tehát ebben az időben, amikor olyanok vagyunk, mint a nyomtatás ki a végleges eredményt, Mario, 646 00:41:23,810 --> 00:41:28,020 mi vagyunk Nem lépsz semmit. 647 00:41:28,020 --> 00:41:30,080 Úgy értem tudtuk tartani A naplózás nyilatkozatot. 648 00:41:30,080 --> 00:41:41,490 Ezen felül, mi Levél a kiolvasás mi csak 649 00:41:41,490 --> 00:41:47,622 létre, hogy a kimeneti nézetet, amely egy UI TextView most létrehozott. 650 00:41:47,622 --> 00:41:48,746 Most lássuk, mi történik. 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 Van egy piramis a app most. 654 00:41:59,130 --> 00:42:06,720 >> Így a felhasználó láthatja a kimeneti miatt felmásoltuk kimenetét a kódot 655 00:42:06,720 --> 00:42:08,045 hogy a felület. 656 00:42:08,045 --> 00:42:10,950 Ez nagyon jó. 657 00:42:10,950 --> 00:42:14,990 Ez valójában nem az, hogy izgalmas, mert can-- 658 00:42:14,990 --> 00:42:18,250 Minden app tesz, bemutatva egy piramis úgy, 659 00:42:18,250 --> 00:42:20,520 és nincs semmi, amit tehetünk róla. 660 00:42:20,520 --> 00:42:22,330 Ez nem különösebben izgalmas. 661 00:42:22,330 --> 00:42:27,840 Tehát most tegyük egy gombot hogy törli a véleményét. 662 00:42:27,840 --> 00:42:30,290 Úgy tűnik, hogy egy gomb hasznos lesz. 663 00:42:30,290 --> 00:42:33,270 Drag and drop. 664 00:42:33,270 --> 00:42:33,900 Gombot egy. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Gombot kettő. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Tehát amikor kattintson a bal gombot, a néző meg kell szűnnie. 669 00:42:52,052 --> 00:42:53,635 Ott kell semmi a képernyőn. 670 00:42:53,635 --> 00:42:56,970 És amikor kattintson a jobb gomb, Mario, 671 00:42:56,970 --> 00:42:59,740 azt a nézetet fog megjelenni újra. 672 00:42:59,740 --> 00:43:05,510 Szóval így mi is ezt a magic cucc, ellenőrzési és drag 673 00:43:05,510 --> 00:43:08,740 Az osztály deklarációja az asszisztens director-- 674 00:43:08,740 --> 00:43:11,600 az asszisztens nézőt. 675 00:43:11,600 --> 00:43:18,620 Ebben az esetben azt meghatározva hogy hogy kell egy akció. 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 >> Tehát itt már létrehozott cselekvési nevű clearMario, 679 00:43:26,830 --> 00:43:34,210 amely a módszer, hogy a neveznénk amikor csak nyomja meg a gombot egyértelmű. 680 00:43:34,210 --> 00:43:41,030 Tehát a mi valóban kódot, nézzük csak tedd a kimeneti szöveg és a kimeneti nézet 681 00:43:41,030 --> 00:43:44,620 semmibe, és így úgy jelenik meg, egyértelmű. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Ezen felül, hozzunk létre Egy másik módszer az úgynevezett runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Ó, sajnálom, hogy nem kell egy ingatlant. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Rendben, hogy amennyiben hogy egy cselekvési is. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> És amikor ez a funkció nevű, csak futni Mario tíz. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Remélhetőleg, hogy minden rendben lesz. 692 00:44:39,780 --> 00:44:41,120 Vajon összeállítására? 693 00:44:41,120 --> 00:44:43,920 Igen. 694 00:44:43,920 --> 00:44:45,090 Most van kilátás. 695 00:44:45,090 --> 00:44:46,560 Van egy kimenetet. 696 00:44:46,560 --> 00:44:50,040 És nézzük meg, mi történik. 697 00:44:50,040 --> 00:44:52,590 Hogy elment. 698 00:44:52,590 --> 00:44:54,500 Most újra visszatér. 699 00:44:54,500 --> 00:44:57,620 Tehát itt megadott milyen funkciót 700 00:44:57,620 --> 00:45:00,400 fogják hívni, ha beírjuk valamit, 701 00:45:00,400 --> 00:45:03,160 amikor megnyomjuk adott gombot. 702 00:45:03,160 --> 00:45:07,890 Ez alapvetően target cselekvési program 703 00:45:07,890 --> 00:45:12,510 A eseményvezérelt Programozás Objective C 704 00:45:12,510 --> 00:45:15,030 >> Ezen felül, ez nem túl izgalmas 705 00:45:15,030 --> 00:45:19,810 mert nem tudjuk igazán változtatni milyen magas piramis lesz, 706 00:45:19,810 --> 00:45:23,640 ezért érdemes valahogy kap egy felhasználói bevitelt 707 00:45:23,640 --> 00:45:29,490 és a változás a magassága a piramis alapján, amit kimeneten. 708 00:45:29,490 --> 00:45:32,900 Így fogunk csinálni. 709 00:45:32,900 --> 00:45:38,720 Tehát ebben az időben, ha hívjuk runMario, mi nem csak hívja Mario közvetlenül. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Ez az ember címmel. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Küldöttet. 714 00:46:23,700 --> 00:46:25,160 Ez nagyon érdekes. 715 00:46:25,160 --> 00:46:26,720 Mi egy küldöttet? 716 00:46:26,720 --> 00:46:28,950 Azt fogom tenni én itt. 717 00:46:28,950 --> 00:46:31,038 És fogunk látni hogy ez mit jelent majd. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Itt van tehát alapvetően létre adott esetben úgynevezett UI figyelmeztetés 720 00:46:51,120 --> 00:46:52,210 kilátás. 721 00:46:52,210 --> 00:46:54,440 A UI figyelmeztető nézet Alapvetően mi lesz 722 00:46:54,440 --> 00:46:58,940 lásd minden alkalommal valami durran up és bevitelre vár,, 723 00:46:58,940 --> 00:47:03,080 mint mi fog történni, ha akarsz, vásárolni valamit egy app store. 724 00:47:03,080 --> 00:47:14,250 >> Ezen felül, miután Létrehozni, mi csak azt mutatják, a figyelmes. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Rendben, nézzük csak gyorsan teszt, hogy a munka vagy sem. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Ez nagyon klassz. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Most valóban létre beviteli mező a UI éber. 731 00:47:59,120 --> 00:48:01,170 Így tudjuk csinálni. 732 00:48:01,170 --> 00:48:07,490 És mi kell egy input kilátás a figyelmes. 733 00:48:07,490 --> 00:48:09,020 Nagyon klassz. 734 00:48:09,020 --> 00:48:12,330 Mondjuk úgy 10. 735 00:48:12,330 --> 00:48:14,900 >> Ez nem csinál semmi jót most, mert a hívás ténylegesen 736 00:48:14,900 --> 00:48:17,770 nem változott végrehajtásához Mario. 737 00:48:17,770 --> 00:48:23,470 Tehát ez lett egy kicsit kicsit furcsa, mert ha 738 00:48:23,470 --> 00:48:30,790 mi nyomja a gombot, amikor csak nyomja meg a gombot a riasztás szerint 739 00:48:30,790 --> 00:48:35,560 valami történne, de ez nem történik meg. 740 00:48:35,560 --> 00:48:37,220 Hogyan elkapni ezt? 741 00:48:37,220 --> 00:48:41,280 Honnan tudjuk, hogy a felhasználó elutasította egy figyelmeztető nézet 742 00:48:41,280 --> 00:48:45,630 és már belépett a szám, mert Most semmi sem történik valójában. 743 00:48:45,630 --> 00:48:50,450 >> Nos, lehet, hogy kitalálta ez jobb, küldöttségnek. 744 00:48:50,450 --> 00:48:55,440 Tehát amellett, hogy minden Ezek a nyilatkozatok, 745 00:48:55,440 --> 00:49:03,190 mi kell hozzá egy új küldöttsége ez az úgynevezett UI figyelmeztető céllal küldött. 746 00:49:03,190 --> 00:49:06,440 Hogy minden egyes interakció vagy esemény 747 00:49:06,440 --> 00:49:10,190 hogy mi lesz, hogy A UI figyelmeztető nézet 748 00:49:10,190 --> 00:49:14,100 lesz kezelni a mi osztályban is. 749 00:49:14,100 --> 00:49:26,297 >> Tehát amellett, hogy hogy, lesz figyelmeztető Nagyításhoz kattintson gombra index. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Ezt a nyomást elértük. 752 00:49:37,730 --> 00:49:42,020 Tehát ebben az esetben van already-- így van 753 00:49:42,020 --> 00:49:46,210 kiderült, a protokoll, kezeli az esemény, amikor 754 00:49:46,210 --> 00:49:51,320 kattintsunk a Kész gombot, A figyelmeztető kilátás. 755 00:49:51,320 --> 00:49:55,976 Tehát minden alkalommal, amikor utasítsa el a figyelmeztetés szerint ez történne. 756 00:49:55,976 --> 00:49:57,350 Hadd tesztelni, hogy nagyon gyorsan. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Nos valóban, idáig eljutottunk. 759 00:50:19,300 --> 00:50:22,210 >> Tehát itt, mi nem fogunk valójában kap tulajdonképpen 760 00:50:22,210 --> 00:50:43,120 hogy a-- Ezért szeretnénk kijutni a szöveg, hogy már korábban 761 00:50:43,120 --> 00:50:45,350 belépett a riasztási nézetet. 762 00:50:45,350 --> 00:50:48,505 És a szöveges vagyunk fog megjeleníteni Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Ez nagyon gyorsan kiderül, ha tényleg működik-e vagy sem. 765 00:50:55,480 --> 00:50:59,476 Tehát ebben az esetben, ha bemenet, mondjuk, 10, látnunk kell, 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Nagyon jó, nekünk van egy száma van. 768 00:51:05,210 --> 00:51:06,470 Ez nagyon jó. 769 00:51:06,470 --> 00:51:16,840 Most az utolsó lépés a be-- Tehát az Utolsó lépésként meg kell tennünk most 770 00:51:16,840 --> 00:51:21,100 csak egy hívás Mario szint alapján a bemeneti 771 00:51:21,100 --> 00:51:23,270 hogy mi tesz a figyelmeztető kilátás. 772 00:51:23,270 --> 00:51:26,920 Tehát meg kell átalakítani ezt a karaktersorozatot iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Statikus túlfolyó nagyon félelmetes. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 És akkor hívjuk self marioWithLevels értéket. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Lássuk lesz, hogy valóban működik-e vagy sem. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Mi már adott egy piramis. 781 00:52:01,550 --> 00:52:04,785 Próbáljuk változtatni a magasságot. 782 00:52:04,785 --> 00:52:06,530 Hogy tényleg működik. 783 00:52:06,530 --> 00:52:07,610 Ez elég jó. 784 00:52:07,610 --> 00:52:10,420 Úgy, hogy most már tudod, csak bemeneti értéket szeretne. 785 00:52:10,420 --> 00:52:12,440 Mondjuk úgy, hogy négy. 786 00:52:12,440 --> 00:52:14,260 Ez elég félelmetes. 787 00:52:14,260 --> 00:52:17,090 Tehát ez alapvetően egy igazán gyors példa 788 00:52:17,090 --> 00:52:23,170 hogyan lehet létrehozni egy projekt s kód és hogyan kell nagyon gyorsan vezetékre 789 00:52:23,170 --> 00:52:26,220 néhány igazán egyszerű események és funkciók. 790 00:52:26,220 --> 00:52:28,840 >> Tehát a forrás folyik kell fektetni online később. 791 00:52:28,840 --> 00:52:33,400 Tehát, ha érdekel hogyan iOS Mario működik, 792 00:52:33,400 --> 00:52:38,360 Azt fogom tenni, pontosan ugyanazt projektek rá a CS50 honlapján később. 793 00:52:38,360 --> 00:52:41,260 Mi alapvetően tenni a Nyáron, és mielőtt befejeznénk 794 00:52:41,260 --> 00:52:45,190 Én csak azt szeretném kiemelni srácok néhány igazán félelmetes erőforrások 795 00:52:45,190 --> 00:52:47,550 online elérhetők. 796 00:52:47,550 --> 00:52:52,270 >> Természetesen az Apple dokumentációt lesz nagyon hasznos. 797 00:52:52,270 --> 00:52:57,630 De amellett, hogy, hogy, én különösen Javasoljuk négy forrás kódot az iskola, 798 00:52:57,630 --> 00:53:02,120 faházba, AppCoda és WWDC videók. 799 00:53:02,120 --> 00:53:07,270 Kódot az iskola és a fa házban két online nevelő honlapok, 800 00:53:07,270 --> 00:53:10,210 amely kifejezetten összpontosítani a szoftverfejlesztés. 801 00:53:10,210 --> 00:53:16,930 Különösen a kódot iskolában, igazán jó tutorial iOS. 802 00:53:16,930 --> 00:53:19,550 >> Ez egy nagyon gyors példa rá. 803 00:53:19,550 --> 00:53:22,980 Ők valójában egy nagyon cute-- Nézd azt a kis aranyos iPhone 804 00:53:22,980 --> 00:53:24,920 haver ott, ez elég félelmetes. 805 00:53:24,920 --> 00:53:31,010 És ahogy magyarázza Cél C szintaxis teljesen világos. 806 00:53:31,010 --> 00:53:32,230 Fa ház ugyanaz. 807 00:53:32,230 --> 00:53:34,660 És AppCoda egy fórumot. 808 00:53:34,660 --> 00:53:38,130 Ez valójában egy blog futtatott egy nagyon tapasztalt Objective C 809 00:53:38,130 --> 00:53:39,120 programozó. 810 00:53:39,120 --> 00:53:43,950 És mindazok, oktatóanyagok AppCoda van elég rövid és könnyen megvalósítható, 811 00:53:43,950 --> 00:53:45,390 erősen ajánlott. 812 00:53:45,390 --> 00:53:47,700 >> És ha a fejlesztő, biztosan megnézem 813 00:53:47,700 --> 00:53:55,660 hogy a WWDC videókat, ahol csak lehet megismerhetik a legújabb iOS programozási 814 00:53:55,660 --> 00:53:58,250 technikák, API-k és könyvtárak. 815 00:53:58,250 --> 00:54:02,850 Szóval ez elég sokat ez a szeminárium. 816 00:54:02,850 --> 00:54:03,820 Köszönöm szépen. 817 00:54:03,820 --> 00:54:08,040 És remélem, jó szórakozást ami a saját iOS app. 818 00:54:08,040 --> 00:54:09,302