1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Hey, com és que va tot el món? 3 00:00:13,590 --> 00:00:20,250 I aquesta és l'aplicació per iOS programació del seminari objectiu c. 4 00:00:20,250 --> 00:00:21,520 I el meu nom és Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Sóc un jove de Lowell en aquest moment, concentrant-se en la informàtica. 6 00:00:26,114 --> 00:00:28,030 Així que en aquest seminari que sóc et va a ensenyar als nois 7 00:00:28,030 --> 00:00:30,770 una mica sobre com fer una aplicació. 8 00:00:30,770 --> 00:00:33,030 Yay, emocionar per això. 9 00:00:33,030 --> 00:00:36,790 >> Així que abans de començar si més no busseig al costat real de programació, 10 00:00:36,790 --> 00:00:41,840 anem a simplement molt ràpidament parlar Per què pot voler construir una aplicació per iOS? 11 00:00:41,840 --> 00:00:43,940 Per què és tan impressionant iOS? 12 00:00:43,940 --> 00:00:47,250 Així que el primer problema, el primer cosa que és bastant impressionant per a nosaltres, 13 00:00:47,250 --> 00:00:51,190 especialment com CS50 estudiant, és que iOS 14 00:00:51,190 --> 00:00:55,860 utilitza Objective C. Bé, hi ha un nou llenguatge anomenat Swift, 15 00:00:55,860 --> 00:00:58,260 però nosaltres no anem a l'ús que en aquest seminari. 16 00:00:58,260 --> 00:01:01,540 Si vostè està interessat en Swift, hi ha és un seminari independent d'això. 17 00:01:01,540 --> 00:01:05,590 Però Objective C és bàsicament un superconjunt de C. Significat 18 00:01:05,590 --> 00:01:10,230 que tot el que s'utilitza en C pot traduir-se en Objective C 19 00:01:10,230 --> 00:01:11,630 molt fàcilment. 20 00:01:11,630 --> 00:01:15,730 >> Com es pot veure més endavant, que, efectivament, hi ha alguns sintaxi molt bàsica, són 21 00:01:15,730 --> 00:01:19,790 bàsicament exactament de la mateixa, C i Objective C. Així, 22 00:01:19,790 --> 00:01:22,860 havent-vos CS50 fins ara, que ja 23 00:01:22,860 --> 00:01:26,500 Objectiu saber C, almenys 40%. 24 00:01:26,500 --> 00:01:30,720 A més, Apple té una realitat robusta API per iOS. 25 00:01:30,720 --> 00:01:33,750 Hi ha un munt de realment boig coses que poden fer amb ella. 26 00:01:33,750 --> 00:01:36,760 Un dels quals és algú en realitat creat una aplicació per iOS 27 00:01:36,760 --> 00:01:40,600 per als cotxes de control, la qual és força interessant. 28 00:01:40,600 --> 00:01:42,610 Probablement un helicòpter és més emocionant. 29 00:01:42,610 --> 00:01:47,020 Però això és el poderós l'API de iOS pot ser. 30 00:01:47,020 --> 00:01:49,340 >> I com és possible que tingui descobert en aquest moment, 31 00:01:49,340 --> 00:01:53,000 el desbordament de pila és probablement un els recursos en línia més importants 32 00:01:53,000 --> 00:01:54,250 disponible per a vostè. 33 00:01:54,250 --> 00:01:58,090 I una bona notícia, per cada únic problema, pot possiblement 34 00:01:58,090 --> 00:02:01,840 pensar mentre que la construcció de la seva projecte final en Objective C, 35 00:02:01,840 --> 00:02:05,910 és possible que hi hagi una resposta de desbordament de pila. 36 00:02:05,910 --> 00:02:07,420 És simplement impressionant. 37 00:02:07,420 --> 00:02:12,780 A més d'això, iOS és realment una plataforma 38 00:02:12,780 --> 00:02:16,260 on es pot arribar a un gran audiència amb poc esforç. 39 00:02:16,260 --> 00:02:20,170 No és com Android, on tot està molt fragmentat. 40 00:02:20,170 --> 00:02:22,540 >> Tot iOS és unificada. 41 00:02:22,540 --> 00:02:25,920 I mentre es crea una aplicació per a iPhone, 42 00:02:25,920 --> 00:02:31,260 vostè pot molt fàcilment port que per iPad, iPad mini, o diferents mides d'iPhone. 43 00:02:31,260 --> 00:02:33,050 Aquests són tots molt convenient. 44 00:02:33,050 --> 00:02:36,430 I és realment bo per impressionar als teus amics. 45 00:02:36,430 --> 00:02:38,920 Vostè només pot mantenir un iPhone i digues-li al teu amic bo, 46 00:02:38,920 --> 00:02:40,250 aquesta és l'aplicació que faig. 47 00:02:40,250 --> 00:02:43,860 Vostè pot fer que per a qualsevol aplicacions d'escriptori, la qual cosa és agradable. 48 00:02:43,860 --> 00:02:48,870 >> Molt bé, ara anem a aconseguir realment en el llenguatge Objective C. 49 00:02:48,870 --> 00:02:52,910 Llavors, ¿per què no comencem amb una sintaxi molt bàsica. 50 00:02:52,910 --> 00:02:57,410 Com vaig esmentar abans Objectiu C És bàsicament un superconjunt de C. 51 00:02:57,410 --> 00:03:01,860 Així que un munt de sintaxi bàsica són en realitat exactament el mateix. 52 00:03:01,860 --> 00:03:06,150 Declarar una variable i l'addició de dues variables juntes 53 00:03:06,150 --> 00:03:09,440 és exactament el que hem fet en Mario. 54 00:03:09,440 --> 00:03:11,140 Res de nou aquí. 55 00:03:11,140 --> 00:03:17,370 >> De la mateixa manera, l'inquilí per bucle i condició també és el mateix. 56 00:03:17,370 --> 00:03:22,370 Vostè pot fer un bucle tal com ho han va fer en un Mario [inaudible]. 57 00:03:22,370 --> 00:03:26,280 I pot fer-ho condicions de la mateixa manera que el que 58 00:03:26,280 --> 00:03:29,240 han estat fent en els seus conjunts p anteriors. 59 00:03:29,240 --> 00:03:33,400 No obstant això, Objective C no és completament C, 60 00:03:33,400 --> 00:03:36,640 i hi ha alguna cosa que és una espècie d'estrany en això. 61 00:03:36,640 --> 00:03:42,340 >> La primera és que quan estàs fent de programació C, normalment es diu 62 00:03:42,340 --> 00:03:46,310 incloure i després un nom de biblioteca. 63 00:03:46,310 --> 00:03:49,860 Però en Objective C es diu aquesta importació. 64 00:03:49,860 --> 00:03:53,100 Dient Bàsicament funcionalitat, només diferents noms. 65 00:03:53,100 --> 00:03:55,940 I les cadenes són en realitat una mica estrany. 66 00:03:55,940 --> 00:03:58,250 Es pot veure que la primera cosa que és una mica estrany 67 00:03:58,250 --> 00:04:04,190 és que tens una bonica weird-- sorry-- tens unes NS bastant estranys 68 00:04:04,190 --> 00:04:04,960 signar aquí. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 I la segona cosa això és una mica estrany 71 00:04:09,160 --> 00:04:14,090 és que tens una arrova abans de fet declarant la cadena. 72 00:04:14,090 --> 00:04:19,209 Així que l'arrova bàsicament vol dir que una cadena és no només una cadena, 73 00:04:19,209 --> 00:04:20,880 en realitat és un objecte. 74 00:04:20,880 --> 00:04:22,780 Anem a explicar que més tard el que no fer 75 00:04:22,780 --> 00:04:25,800 pànic si no ho fa entenen el que això significa. 76 00:04:25,800 --> 00:04:29,980 I la impressió de consola és una mica diferent perquè en C que anomenem printf, 77 00:04:29,980 --> 00:04:33,350 però en Objective C anomenem [inaudible]. 78 00:04:33,350 --> 00:04:35,640 >> Potser es pregunti què és això. 79 00:04:35,640 --> 00:04:38,070 Això és bàsicament printf, només un idioma diferent. 80 00:04:38,070 --> 00:04:41,370 Exactament el mateix ús, exactament la mateixa funcionalitat. 81 00:04:41,370 --> 00:04:44,060 Doncs resulta que Objectiu C realitat 82 00:04:44,060 --> 00:04:50,040 té un ns prefix en gairebé tot, cada tipus de dades bàsic, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 La raó és que ns en realitat significa Next Step, 85 00:04:56,340 --> 00:04:59,980 que és una empresa que Steve Jobs ha fundat, 86 00:04:59,980 --> 00:05:03,960 que és una empresa en la qual el llenguatge Objective C neix. 87 00:05:03,960 --> 00:05:06,140 Així que això és bàsicament la tradició. 88 00:05:06,140 --> 00:05:09,010 Sé que és una mica rar, però és Apple. 89 00:05:09,010 --> 00:05:16,840 >> Així que una cosa que és encara més estrany que és una declaració de la funció. 90 00:05:16,840 --> 00:05:22,600 Això és molt diferent del que veure en C, perquè aquí el que realment 91 00:05:22,600 --> 00:05:25,190 no s'assembla a C més. 92 00:05:25,190 --> 00:05:28,810 El que has aquí-- pel forma en què aquest no és un punt de bala, 93 00:05:28,810 --> 00:05:30,690 aquest és un signe menys. 94 00:05:30,690 --> 00:05:36,440 Vostè té un parèntesi signe menys buit i després el nom de la funció. 95 00:05:36,440 --> 00:05:38,450 Diguem que si tenir hola món, llavors 96 00:05:38,450 --> 00:05:42,820 el tipus de retorn seria nul·la perquè tornem res. 97 00:05:42,820 --> 00:05:44,680 >> El que es posa molt estrany és que quan estàs 98 00:05:44,680 --> 00:05:49,580 que té més d'un paràmetre passar a una mateixa funció que 99 00:05:49,580 --> 00:05:53,870 serà molt rar, com es mostra aquí. 100 00:05:53,870 --> 00:05:58,230 Tenim un nom de mètode, anomenat addInt a [inaudible] 101 00:05:58,230 --> 00:06:00,370 i estem passant un paràmetre. 102 00:06:00,370 --> 00:06:05,170 Però després d'això, tenim més anomenada nom de mètode amb. 103 00:06:05,170 --> 00:06:08,500 I després que estem passant el segon paràmetre. 104 00:06:08,500 --> 00:06:11,940 Això és en realitat una mica estrany, però totes aquestes declaracions de funcions 105 00:06:11,940 --> 00:06:14,770 seguir el mateix patró com aquest. 106 00:06:14,770 --> 00:06:17,450 >> Comptem amb un signe menys per començar. 107 00:06:17,450 --> 00:06:21,550 El signe menys podria ser un signe més de vegades sobre la base de quin tipus de mètode 108 00:06:21,550 --> 00:06:22,340 és la mateixa. 109 00:06:22,340 --> 00:06:25,000 El mètode és bàsicament un altre nom per a la funció. 110 00:06:25,000 --> 00:06:26,760 I anem a explicar que més tard, quan 111 00:06:26,760 --> 00:06:30,580 estem parlant d'objecte programació orientada. 112 00:06:30,580 --> 00:06:34,300 Primer s'especifica el retorn escrigui parèntesi a l'interior, 113 00:06:34,300 --> 00:06:37,450 després de la qual cosa ve el nom del mètode. 114 00:06:37,450 --> 00:06:40,310 Estàs passant un paràmetre. 115 00:06:40,310 --> 00:06:44,750 I si vostè té més paràmetres necessita estendre el nom del mètode 116 00:06:44,750 --> 00:06:46,770 i bàsicament escriure alguna cosa més aquí. 117 00:06:46,770 --> 00:06:48,090 >> Podria ser qualsevol cosa que vulguis. 118 00:06:48,090 --> 00:06:50,140 En el nostre cas és amb. 119 00:06:50,140 --> 00:06:56,160 Però es podria dir final, o, o, o abc bar complet, el que vulguis. 120 00:06:56,160 --> 00:06:59,500 I després, després que vostè és passant paràmetre b. 121 00:06:59,500 --> 00:07:01,750 Aquest és un molt rar convenció, però som 122 00:07:01,750 --> 00:07:05,800 anem a veure per què Apple volia fer-ho molt ràpidament. 123 00:07:05,800 --> 00:07:10,530 Llavors, ¿com es diu a la funció? 124 00:07:10,530 --> 00:07:15,520 Trucar a una funció en l'objectiu C és també diferent de C. 125 00:07:15,520 --> 00:07:18,170 >> En realitat, trucar a un funció en Objective C 126 00:07:18,170 --> 00:07:21,030 és més com si estiguessis parlant amb algú. 127 00:07:21,030 --> 00:07:27,030 Aquí tenim un mateix, el que es diu un objecte. 128 00:07:27,030 --> 00:07:33,830 Bàsicament, s'està dient la objectar acte a dir "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Així és com es diu a la funció. 130 00:07:36,830 --> 00:07:41,690 Un objecte i un nom de mètode es combinen entre si. 131 00:07:41,690 --> 00:07:49,600 I aquí és on l'extensió estrany per nom del mètode realment entra en joc. 132 00:07:49,600 --> 00:07:52,150 >> Vegem el segon exemple. 133 00:07:52,150 --> 00:07:56,780 Ens acabem de definir un mètode anomenat addInt amb bla, bla, bla. 134 00:07:56,780 --> 00:08:00,066 Així que en aquest cas quan vostè està trucant que [específic? missatge?] que va 135 00:08:00,066 --> 00:08:02,035 per semblar-se a si mateix addInt: 10 amb: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Sona com anglès. 138 00:08:08,070 --> 00:08:11,980 Encara que la funció declaració de la funció és estrany, 139 00:08:11,980 --> 00:08:15,600 el punt de l'objectiu de C patró de declaració de mètode, 140 00:08:15,600 --> 00:08:18,830 és que quan vostè està trucant la funció o mètode 141 00:08:18,830 --> 00:08:21,980 sonarà com a real anglès. 142 00:08:21,980 --> 00:08:25,270 Així que és molt intuïtiva un cop arribi a ell. 143 00:08:25,270 --> 00:08:28,740 >> Especialment en aquest cas, on es pot bàsicament 144 00:08:28,740 --> 00:08:33,010 veure que el nom de la funció és tipus de documentació de si mateix. 145 00:08:33,010 --> 00:08:35,390 Vostè no necessita cap més explicació per veure 146 00:08:35,390 --> 00:08:42,770 què és exactament el que està succeint, el que exactament un paràmetre fent. 147 00:08:42,770 --> 00:08:48,470 Més enllà d'això, anem a parlar una mica poc sobre la programació orientada a objectes. 148 00:08:48,470 --> 00:08:52,160 Programació orientada a objectes és un de la programació fonamental 149 00:08:52,160 --> 00:08:57,110 tècniques o patrons que es utilitzat per Objective C. Objective C 150 00:08:57,110 --> 00:09:03,110 es diu Objective C, no C, per una bona raó. 151 00:09:03,110 --> 00:09:07,560 >> Així que abans d'entrar en Sintaxi de C Objectiu, 152 00:09:07,560 --> 00:09:11,670 Anem realment veure ràpidament ¿Què és exactament un objecte. 153 00:09:11,670 --> 00:09:15,480 Probablement hem fet alguna cosa com a objecte abans que 154 00:09:15,480 --> 00:09:19,780 es diu l'estructura quan s'està l'aplicació d'un arbre o una llista enllaçada 155 00:09:19,780 --> 00:09:25,730 o [? tractar. ?] Per tant, és bàsicament com una estructura, 156 00:09:25,730 --> 00:09:28,560 però és molt més potent que això. 157 00:09:28,560 --> 00:09:33,150 Un objecte té mètodes i propietats. 158 00:09:33,150 --> 00:09:35,310 Els mètodes són bàsicament funcions. 159 00:09:35,310 --> 00:09:39,480 Bàsicament funcions que un específic per a un determinat objecte. 160 00:09:39,480 --> 00:09:45,440 >> I propietats són bàsicament els camp s'especifica en l'estructura. 161 00:09:45,440 --> 00:09:48,500 Així que per a tots els objectes tenim alguna propietat 162 00:09:48,500 --> 00:09:53,160 que té algunes variables que són específics per a l'objecte. 163 00:09:53,160 --> 00:09:57,170 I tenim algunes funcions que també són específics per a l'objecte. 164 00:09:57,170 --> 00:10:01,180 I les funcions s'anomenen mètodes i les variables s'anomenen propietats. 165 00:10:01,180 --> 00:10:03,190 És només un nom de fantasia. 166 00:10:03,190 --> 00:10:10,440 Mentre fet, cada vista individual veus mentre obre una aplicació per iOS, 167 00:10:10,440 --> 00:10:17,720 diguem que Twitter o Facebook, cada vista única que es veu és un objecte. 168 00:10:17,720 --> 00:10:22,110 I encara que tota l'aplicació és un objecte per començar. 169 00:10:22,110 --> 00:10:25,340 Concepte molt interessant. 170 00:10:25,340 --> 00:10:28,480 >> I per què volem objecte La programació orientada a? 171 00:10:28,480 --> 00:10:33,530 Així que vostè pot imaginar que quan es programa que es posa bastant complicat. 172 00:10:33,530 --> 00:10:36,400 Diguem que quan estàs la implementació de tauler d'escacs, 173 00:10:36,400 --> 00:10:40,020 la lògica va a ser realment complicat. 174 00:10:40,020 --> 00:10:43,280 Vostè té 36 diferents peces, de manera que si vostè 175 00:10:43,280 --> 00:10:48,370 vull escriure lògica per a tots 36 peces diferents en escacs, 176 00:10:48,370 --> 00:10:52,150 que hi haurà una gran quantitat de diferents funcions i variables. 177 00:10:52,150 --> 00:10:54,070 És un munt de problemes. 178 00:10:54,070 --> 00:10:58,980 I, probablement, vostè va a escriure una diferent mètode o funció diferent 179 00:10:58,980 --> 00:11:03,950 per a cada un de la peça a exactament controlen el que fan. 180 00:11:03,950 --> 00:11:08,830 >> Però si ho fa orientat a objectes programació, totes aquestes peces 181 00:11:08,830 --> 00:11:12,440 pot ser abstret en un sol objecte. 182 00:11:12,440 --> 00:11:16,111 I l'objecte tindrà alguns comuns propietats, com quin tipus de peça 183 00:11:16,111 --> 00:11:16,610 és? 184 00:11:16,610 --> 00:11:17,740 De quin color és? 185 00:11:17,740 --> 00:11:19,480 Com es pot moure? 186 00:11:19,480 --> 00:11:24,660 I d'aquesta manera vostè té molt simplificada de la lògica de la mateixa. 187 00:11:24,660 --> 00:11:28,480 Així que és només una manera realment bona per fer programes complicats, 188 00:11:28,480 --> 00:11:33,700 i la relació jeràrquica dins del programa, molt simple. 189 00:11:33,700 --> 00:11:36,800 Com veurem per això molt ràpidament quan 190 00:11:36,800 --> 00:11:39,660 en realitat estem fent programming-- quan en realitat estem 191 00:11:39,660 --> 00:11:42,830 fent un codi S programació sessió posterior. 192 00:11:42,830 --> 00:11:48,120 >> Bé, a més que, programació orientada a objectes 193 00:11:48,120 --> 00:11:50,030 és només un munt de diversió. 194 00:11:50,030 --> 00:11:51,990 Has de dissenyar el seu propi objecte. 195 00:11:51,990 --> 00:11:56,080 Has de dissenyar el que fa que es vegi com vostè mateix. 196 00:11:56,080 --> 00:11:58,250 No hi ha una resposta correcta a aquesta. 197 00:11:58,250 --> 00:12:02,940 I és totalment interessant. 198 00:12:02,940 --> 00:12:07,270 Així que en la programació orientada a objectes, dos conceptes fonamentals 199 00:12:07,270 --> 00:12:10,130 serà de classe i instància. 200 00:12:10,130 --> 00:12:13,570 Una classe és bàsicament una plantilla per a l'objecte. 201 00:12:13,570 --> 00:12:18,070 I una instància és bàsicament un objecte específic. 202 00:12:18,070 --> 00:12:21,090 >> Diguem que vostè està fent una galeta. 203 00:12:21,090 --> 00:12:24,800 En aquest cas, tots els galeta que realment acaba amb 204 00:12:24,800 --> 00:12:27,310 serà un objecte. 205 00:12:27,310 --> 00:12:35,830 Però el plat de galetes que s'utilitza per coure totes les galetes seran una classe. 206 00:12:35,830 --> 00:12:37,880 Una classe és bàsicament una plantilla. 207 00:12:37,880 --> 00:12:46,170 I la instància serà un específica objecte creat d'aquesta classe. 208 00:12:46,170 --> 00:12:49,970 >> I es crearà una instància basat en la declaració de classe, 209 00:12:49,970 --> 00:12:56,760 com veurem en diapositives posteriors. 210 00:12:56,760 --> 00:13:00,010 Així que farem realitat una molt exemple ràpid [inaudible]. 211 00:13:00,010 --> 00:13:04,280 Diguem que estem declarant un objecte per a un gat. 212 00:13:04,280 --> 00:13:07,930 L'objecte ha de tener-- la classe de gats han 213 00:13:07,930 --> 00:13:11,260 tenir algunes propietats i mètodes. 214 00:13:11,260 --> 00:13:17,300 Quin tipus de propietats haurien dels classe tener-- ha de tenir gat? 215 00:13:17,300 --> 00:13:20,580 >> Per exemple, color, edat i raça, els 216 00:13:20,580 --> 00:13:24,440 serà variables que són específics de cada gat. 217 00:13:24,440 --> 00:13:27,790 I aquestes són algunes de les coses que utilitzem per descriure un gat. 218 00:13:27,790 --> 00:13:31,880 Quin tipus de mètode, o què pot fer un gat? 219 00:13:31,880 --> 00:13:37,160 Alguns exemples ràpids serien persecució ratolí, menjar peix o simplement miolar. 220 00:13:37,160 --> 00:13:40,900 Aquesta és una molt ràpida exemple de la classe de gat. 221 00:13:40,900 --> 00:13:46,920 I un molt específica objecte gat serà un gat 222 00:13:46,920 --> 00:13:50,930 on especifiquem el color, l'edat i la raça. 223 00:13:50,930 --> 00:13:53,790 >> En aquest cas, el nostre objecte és ia una classe no més. 224 00:13:53,790 --> 00:14:00,010 Copiem la plantilla de la classe i especifiquem cada informació específica 225 00:14:00,010 --> 00:14:04,510 a aquest objecte específic perquè sigui independent. 226 00:14:04,510 --> 00:14:09,350 I quan vostè està trucant un mètode dins d'un objecte, 227 00:14:09,350 --> 00:14:16,640 que acaba de cridar miol en l'objecte, que és el gat que acaba de crear. 228 00:14:16,640 --> 00:14:19,020 >> Probablement va a imprimir alguna cosa així com "Hola Món! 229 00:14:19,020 --> 00:14:20,000 Miolar. " 230 00:14:20,000 --> 00:14:22,110 Bastant valent. 231 00:14:22,110 --> 00:14:24,500 Molt bé, anem a entrar en alguns detalls 232 00:14:24,500 --> 00:14:30,650 i veure el que fa exactament això traduir en ser la programació iOS. 233 00:14:30,650 --> 00:14:36,500 Així que en iOS programació cada classe es durà a terme en dos arxius. 234 00:14:36,500 --> 00:14:41,420 Un arxiu és aquí, que s'anomena la interfície. 235 00:14:41,420 --> 00:14:45,300 Un altre arxiu és aquí, que es diu aplicació. 236 00:14:45,300 --> 00:14:48,890 >> Normalment la interfície de tindrà extension.h 237 00:14:48,890 --> 00:14:51,740 com hem vist a les biblioteques C. 238 00:14:51,740 --> 00:14:56,340 I fitxer d'implementació és tindrà extension.n. 239 00:14:56,340 --> 00:14:57,260 És una mica estrany. 240 00:14:57,260 --> 00:15:01,270 Però .n significa en realitat .c, no hi ha diferència fonamental entre els 241 00:15:01,270 --> 00:15:02,100 2. 242 00:15:02,100 --> 00:15:06,650 Així que en aquest cas, podem veure que estem declarant interfície, Cat: objecte. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Això es diu herència. 245 00:15:13,760 --> 00:15:19,170 Bàsicament estem heretant el classe gat de la classe d'objecte. 246 00:15:19,170 --> 00:15:24,790 Així que cada propietat i un mètode que va ser definit prèviament a la classe d'objecte 247 00:15:24,790 --> 00:15:28,560 es definirà automàticament en una classe de gat també. 248 00:15:28,560 --> 00:15:35,900 >> A més d'això, definim color, raça i edat, 3 variables. 249 00:15:35,900 --> 00:15:39,360 Que en realitat s'assembla cosa que has fet abans. 250 00:15:39,360 --> 00:15:41,770 Sembla estructura. 251 00:15:41,770 --> 00:15:44,950 Això és bàsicament la sintaxi per a la declaració struct, 252 00:15:44,950 --> 00:15:47,710 i que és totalment correcte. 253 00:15:47,710 --> 00:15:51,825 I com he esmentat abans, la diferència una estructura 254 00:15:51,825 --> 00:15:53,960 i un objecte, una de les diferències fonamentals 255 00:15:53,960 --> 00:15:59,080 és que un objecte té mètode, mentre que un struct només té variables. 256 00:15:59,080 --> 00:16:03,450 Així que a més de les propietats o les variables que hem creat per a l'objecte, 257 00:16:03,450 --> 00:16:05,700 especifiquem algun mètode. 258 00:16:05,700 --> 00:16:09,720 >> Diguem que tenim aquí dos mètodes, un és el miol, 259 00:16:09,720 --> 00:16:12,460 altra és ratolí persecució. 260 00:16:12,460 --> 00:16:18,600 Probablement Volem estar passant una paràmetre basat en el nostre mètode anterior 261 00:16:18,600 --> 00:16:20,440 model de declaració. 262 00:16:20,440 --> 00:16:22,160 És possible que vulgueu estar passant un ratolí. 263 00:16:22,160 --> 00:16:25,180 I és probable que desitgi per tornar un significant bool 264 00:16:25,180 --> 00:16:30,010 si el seu gat té èxit agafat el ratolí o no. 265 00:16:30,010 --> 00:16:33,170 >> Aquesta és la interfície, però nosaltres sí veure que la interfície de realitat 266 00:16:33,170 --> 00:16:35,150 no fa res. 267 00:16:35,150 --> 00:16:40,800 Simplement li diu a un programa el exists-- el que existeix en la classe de gat. 268 00:16:40,800 --> 00:16:43,640 Així que perquè la programa per fer alguna cosa, 269 00:16:43,640 --> 00:16:46,680 hem de tenir els arxius d'implementació. 270 00:16:46,680 --> 00:16:51,940 Així que aquí, el primer que fem és òbviament, importem la interfície. 271 00:16:51,940 --> 00:16:56,470 Després que importem la interfície, definim el mètode. 272 00:16:56,470 --> 00:17:00,150 >> Diguem aquí miau seria simplement imprimir 273 00:17:00,150 --> 00:17:01,740 "Hola Món!" a la consola. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 I després de l'aplicació arxiu, estem més o menys fet. 276 00:17:08,460 --> 00:17:14,530 Això és bàsicament una classe declaració d'una classe. 277 00:17:14,530 --> 00:17:19,970 Així que ara la pregunta és, Com es declara una variable? 278 00:17:19,970 --> 00:17:26,880 La forma d'utilitzar una classe per crear un objecte en Objective C està escrit aquí. 279 00:17:26,880 --> 00:17:30,730 >> Primer s'especifica que Això és un punter gat, 280 00:17:30,730 --> 00:17:38,700 perquè tots els objectes en Objective C finalment s'implementa com un punter. 281 00:17:38,700 --> 00:17:46,210 I es diu a la classe, cridar com alloc, que és bàsicament malloc, 282 00:17:46,210 --> 00:17:51,220 dient al sistema operatiu que necessita una mica d'espai de memòria per a aquest objecte. 283 00:17:51,220 --> 00:17:55,780 Després que vostè té un objecte ja i només s'inicialitzi. 284 00:17:55,780 --> 00:17:56,780 Això és només convenció. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Sé que és és una mica estrany, però això és realment com Apple fa coses. 287 00:18:04,410 --> 00:18:07,130 >> Assignació de propietats es en realitat bastant senzill. 288 00:18:07,130 --> 00:18:09,250 És molt similar a el que està fent quan 289 00:18:09,250 --> 00:18:13,780 estàs assignant alguns específics camp a l'interior de l'estructura. 290 00:18:13,780 --> 00:18:16,830 Només tens la variable nom, el nom de la propietat, 291 00:18:16,830 --> 00:18:20,140 i assignar un valor específic a la mateixa. 292 00:18:20,140 --> 00:18:24,120 I cridar a un mètode és molt similar. 293 00:18:24,120 --> 00:18:29,080 El cridar a un mètode és bàsicament el que parlo 294 00:18:29,080 --> 00:18:32,390 per trucar a qualsevol mètode en Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Estàs passant un objecte, en aquest cas serà Mycat, 296 00:18:36,660 --> 00:18:42,490 i estàs passant el nom del mètode. 297 00:18:42,490 --> 00:18:47,130 Com si vostè està parlant amb l'objecte, Mycat, que vostè ha miolar. 298 00:18:47,130 --> 00:18:48,570 És bastant interessant. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Després d'això, hi ha una patró de disseny més essencial 301 00:18:55,680 --> 00:18:59,940 que hem de parlar abans d'arribar al codi real S. 302 00:18:59,940 --> 00:19:03,300 Aquest patró de disseny es diu esdeveniment impulsat programació. 303 00:19:03,300 --> 00:19:09,660 Això és també, probablement, un dels més idees fonamentals en la programació iOS. 304 00:19:09,660 --> 00:19:14,410 >> Així que probablement no saps què és exactament és la programació orientada a esdeveniments, 305 00:19:14,410 --> 00:19:16,990 però en realitat no és que fa por. 306 00:19:16,990 --> 00:19:20,400 Doncs en efecte, vostè té ha fet això abans. 307 00:19:20,400 --> 00:19:24,894 Aquesta és una de les línies del que has ja s'ha escrit en els últims [inaudible] 308 00:19:24,894 --> 00:19:26,810 de CS50, google.maps.event.addListener (marcador, 309 00:19:26,810 --> 00:19:27,810 "Clic", function () {}):. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 En trucar a aquesta línia són essencialment dient l'ordinador 312 00:19:37,620 --> 00:19:42,650 que sempre que l'esdeveniment anomenat "Clic" que passa en el marcador, 313 00:19:42,650 --> 00:19:43,630 utilitzar aquesta funció. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Això és molt diferent de el que fas en mario.c. 316 00:19:50,950 --> 00:19:56,670 En mario.c que acaba d'executar el programa una vegada, li dóna una sortida, 317 00:19:56,670 --> 00:19:58,590 i ja està. 318 00:19:58,590 --> 00:20:02,590 Són una mena un els programes de tir. 319 00:20:02,590 --> 00:20:05,830 Programes per esdeveniments són molt, molt diferent. 320 00:20:05,830 --> 00:20:10,230 Imaginem, si Facebook és un un programa de tir que no és molt bo. 321 00:20:10,230 --> 00:20:13,750 Vostè acaba d'anar a Facebook una vegada que es fa. 322 00:20:13,750 --> 00:20:16,700 Se li dóna una sortida i mai el va recuperar. 323 00:20:16,700 --> 00:20:19,380 Mai tens res més. 324 00:20:19,380 --> 00:20:23,880 >> Així que aquí, sobretot el patró que utilitzem és 325 00:20:23,880 --> 00:20:26,940 esdeveniment impulsat, de manera que cada funció 326 00:20:26,940 --> 00:20:31,480 ser atrapat en base al que esdeveniment ha passat. 327 00:20:31,480 --> 00:20:34,670 Per exemple, si tenim un botó i especifiquem 328 00:20:34,670 --> 00:20:39,870 que cada vegada que es fa clic en aquest botó, truqui a la funció anomenada "Hello World!" 329 00:20:39,870 --> 00:20:47,810 D'aquesta manera podem realment gestionar la lògica de funcionament 330 00:20:47,810 --> 00:20:50,560 fluir en una forma molt flexible. 331 00:20:50,560 --> 00:20:55,840 L'usuari pot fer o trucar a una funció que ja ha estat cridat. 332 00:20:55,840 --> 00:20:59,900 És completament basat en el que fan els usuaris. 333 00:20:59,900 --> 00:21:04,080 >> Així que podem veure que es tracta de en realitat molt millor que mario.c. 334 00:21:04,080 --> 00:21:07,190 I una bona notícia és que és en realitat no és un concepte nou. 335 00:21:07,190 --> 00:21:12,140 Vostès ja ho han fet que en l'últim conjunt de problemes. 336 00:21:12,140 --> 00:21:16,640 Així que en Objective C hi 3 diagrames diferents 337 00:21:16,640 --> 00:21:19,030 per a la programació orientada a esdeveniments. 338 00:21:19,030 --> 00:21:21,970 El primer diagrama és anomenada acció de destinació, 339 00:21:21,970 --> 00:21:26,990 on s'enllaça un botó de premsa amb alguna funció. 340 00:21:26,990 --> 00:21:31,590 Diguem que, en fer clic a algun botó, cridar alguna funció. 341 00:21:31,590 --> 00:21:33,620 Aquesta és l'acció objectiu molt simple. 342 00:21:33,620 --> 00:21:35,580 >> El segon és en realitat el més difícil, 343 00:21:35,580 --> 00:21:38,450 es diu delegació en el protocol. 344 00:21:38,450 --> 00:21:41,800 Anem a explicar que en gran detall més endavant. 345 00:21:41,800 --> 00:21:44,420 I la tercera forma és la notificació. 346 00:21:44,420 --> 00:21:46,770 En realitat, això no és molt important en la mesura 347 00:21:46,770 --> 00:21:50,920 que a nosaltres respecta, perquè l'oportunitat que vostè va a utilitzar la notificació 348 00:21:50,920 --> 00:21:53,310 en el seu projecte final és força baix. 349 00:21:53,310 --> 00:21:56,440 Així que anem a saltar aquesta part. 350 00:21:56,440 --> 00:21:59,460 >> I anem a bussejar a la delegació en el protocol. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Llavors, què és exactament un protocol? 353 00:22:04,470 --> 00:22:06,450 O què és exactament una delegació? 354 00:22:06,450 --> 00:22:09,670 Anem a parlar de protocol per començar. 355 00:22:09,670 --> 00:22:13,360 Els protocols són res més que fets. 356 00:22:13,360 --> 00:22:19,230 Però aquests esdeveniments es donen a vostè per Apple per començar. 357 00:22:19,230 --> 00:22:22,640 Per exemple, jo no sóc completament segur de com molts de vostès 358 00:22:22,640 --> 00:22:27,930 nois ús original d'Apple aplicació de correu o de contacte, 359 00:22:27,930 --> 00:22:32,180 però cada vegada que desplaçar-se per la taula i prémer la cel·la específica 360 00:22:32,180 --> 00:22:36,130 sobre la taula, que és un esdeveniment. 361 00:22:36,130 --> 00:22:38,330 >> I si vostè vol fer aquest esdeveniment per si mateix, 362 00:22:38,330 --> 00:22:40,410 en realitat és una mica difícil. 363 00:22:40,410 --> 00:22:44,880 Així que Apple ha donat que, fins i tot a vostè de manera que només pot usar directament 364 00:22:44,880 --> 00:22:49,610 l'esdeveniment per fer alguna cosa pel seu compte. 365 00:22:49,610 --> 00:22:52,980 Els protocols són en realitat molt, molt àmpliament utilitzat 366 00:22:52,980 --> 00:22:58,320 en Objective C. Bé en De fet, cada aplicació individual 367 00:22:58,320 --> 00:23:00,870 té alguna cosa atrapat aplicació delegat. 368 00:23:00,870 --> 00:23:06,330 Dins delicada és la totalitat de la protocols per a la càrrega de l'aplicació. 369 00:23:06,330 --> 00:23:12,470 >> Diguem que hi ha un esdeveniment d'aplicació va fer càrrega. 370 00:23:12,470 --> 00:23:18,200 Així que el que ha de succeir després d'haver va crear una aplicació, després d'obrir l'aplicació, 371 00:23:18,200 --> 00:23:22,630 després de tancar l'aplicació, o després poses l'iPhone a dormir. 372 00:23:22,630 --> 00:23:27,480 Aquests són tots els esdeveniments que té ja ha donat a vostè. 373 00:23:27,480 --> 00:23:34,730 I originalment dins d'aquestes partícules no hi haurà aplicació. 374 00:23:34,730 --> 00:23:39,750 Apple acaba et va dir que aquesta funció passarà quan ocorre algun esdeveniment, 375 00:23:39,750 --> 00:23:44,380 sinó el que fas amb això funció és totalment seva. 376 00:23:44,380 --> 00:23:49,290 >> La delegació és bàsicament dient la classe 377 00:23:49,290 --> 00:23:53,060 que vostè ha de manejar aquests protocols. 378 00:23:53,060 --> 00:23:55,340 És una mica confús, però serà 379 00:23:55,340 --> 00:23:59,380 molt més clara quan fem els codis de s en l'acció. 380 00:23:59,380 --> 00:24:04,760 Delegació en el protocol és en realitat un mecanisme molt sòlid en el sentit 381 00:24:04,760 --> 00:24:08,160 que si fem delegació a una classe específica, 382 00:24:08,160 --> 00:24:12,400 podem gestionar essencialment tot tipus d'esdeveniments 383 00:24:12,400 --> 00:24:17,040 utilitzant qualsevol classe que tenim, eina molt convenient. 384 00:24:17,040 --> 00:24:21,530 >> Així que un exemple ràpid per delegació en el protocol 385 00:24:21,530 --> 00:24:24,120 serà el que acabo de parlar. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Aquest protocol específicament es diu tableview [inaudible] seleccionar paper 388 00:24:30,890 --> 00:24:35,480 a [? índex?] [? passat. ?] Així que aquest 1 esdeveniment que es va cridar quan 389 00:24:35,480 --> 00:24:39,710 realment toc en una específica cèl·lula en el seu tableview, 390 00:24:39,710 --> 00:24:43,570 direm al teu correu o en la seva aplicació de contactes. 391 00:24:43,570 --> 00:24:48,180 >> Dins d'una funció no havia originalment no fer res. 392 00:24:48,180 --> 00:24:51,950 La funció no fer res per defecte. 393 00:24:51,950 --> 00:24:55,540 Però vostè pot especificar el que fa la funció, 394 00:24:55,540 --> 00:24:59,610 tenint en compte el que vol de la seva aplicació. 395 00:24:59,610 --> 00:25:01,610 Eina molt convenient. 396 00:25:01,610 --> 00:25:06,840 I amb tot això Dit això, jo, bàsicament, 397 00:25:06,840 --> 00:25:11,430 cobrir una sintaxi molt bàsica i concepte fonamental per a l'objectiu C 398 00:25:11,430 --> 00:25:15,860 programació, i podem fer una mica de codi s. 399 00:25:15,860 --> 00:25:17,980 Molt més emocionant. 400 00:25:17,980 --> 00:25:21,070 Així codi s és en realitat un mica aclaparador 401 00:25:21,070 --> 00:25:23,330 quan s'obre per primer cop. 402 00:25:23,330 --> 00:25:26,640 >> Una nota ràpida, així que si vostè voler fer el desenvolupament de iOS, 403 00:25:26,640 --> 00:25:29,630 Jo recomanaria altament tens un Mac. 404 00:25:29,630 --> 00:25:33,930 Perquè fer el desenvolupament en iOS Windows és molt, molt difícil. 405 00:25:33,930 --> 00:25:37,560 És factible, però és molt difícil. 406 00:25:37,560 --> 00:25:40,610 I definitivament fa que no desitja utilitzar g d'edició. 407 00:25:40,610 --> 00:25:47,950 Així que en el codi de s que tenim diverses àrees diferents. 408 00:25:47,950 --> 00:25:53,050 La primera vegada que obris s codi veurà una àrea de navegació, 409 00:25:53,050 --> 00:25:57,470 que bàsicament mostra que tot el els arxius que estan en el projecte actual. 410 00:25:57,470 --> 00:26:03,590 >> Té un àrea de la barra d'eines, que és, bàsicament, la gestió de punts de vista, 411 00:26:03,590 --> 00:26:08,570 o alguna petita ràpida eines sobre si mateix codi s. 412 00:26:08,570 --> 00:26:11,140 I aquest és l'àrea real editor. 413 00:26:11,140 --> 00:26:15,900 Aquesta zona és molt similar g editar, però molt millor que g edició. 414 00:26:15,900 --> 00:26:21,150 I en aquesta àrea de la dreta, és anomenat l'àrea d'utilitat. 415 00:26:21,150 --> 00:26:27,170 L'àrea es torna realment útil quan crearà la interfície o especificar 416 00:26:27,170 --> 00:26:30,070 algunes configuracions ràpides per a la seva aplicació. 417 00:26:30,070 --> 00:26:34,570 >> I la zona final és la depuració. 418 00:26:34,570 --> 00:26:37,970 Aquesta àrea conté la consola. 419 00:26:37,970 --> 00:26:43,170 Així que quan vostè diu printf, o NSLog en el nostre cas, 420 00:26:43,170 --> 00:26:47,330 tots els resultats són va a imprimir aquí. 421 00:26:47,330 --> 00:26:48,260 Bé? 422 00:26:48,260 --> 00:26:52,090 Suposo que podem fer molt ràpid un exemple per a la programació iOS. 423 00:26:52,090 --> 00:26:54,220 I siguem realment obren s codi. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Així que cada vegada que obre s codi, és apareixerà una cosa així. 426 00:27:01,346 --> 00:27:03,220 Es va a demanar que què és el que vols fer? 427 00:27:03,220 --> 00:27:06,830 Vols començar alguna cosa aleatòria, un parc infantil, bàsicament, que 428 00:27:06,830 --> 00:27:11,250 només pot provar codi sense realment comprometre a qualsevol aplicació. 429 00:27:11,250 --> 00:27:13,020 >> Vols crear un nou projecte? 430 00:27:13,020 --> 00:27:16,660 O és que vol continuar treballant en el projecte existent? 431 00:27:16,660 --> 00:27:20,270 En el nostre cas anem per crear un nou projecte. 432 00:27:20,270 --> 00:27:22,980 Així que és molt agradable, s codi de fet ja té 433 00:27:22,980 --> 00:27:26,820 Ha donat algunes plantilles per a la creació d'objectes. 434 00:27:26,820 --> 00:27:32,680 Si vostè vol fer un joc, el codi S en realitat té una plantilla de joc per a vostè, 435 00:27:32,680 --> 00:27:36,890 té aplicacions basats en pàgines, aplicació basada fitxa. 436 00:27:36,890 --> 00:27:39,280 En aquest cas, anem fer alguna cosa molt simple, 437 00:27:39,280 --> 00:27:43,230 i anem a utilitzar un aplicació de vista individual. 438 00:27:43,230 --> 00:27:48,270 >> Després d'això, el que vostè vol cridar el seu producte, i quin és el seu nom, 439 00:27:48,270 --> 00:27:52,760 Quin és el seu identificador, i ¿Quin idioma que utilitzi. 440 00:27:52,760 --> 00:27:57,060 Aquí no volem comprovar l'ús de dades bàsiques. 441 00:27:57,060 --> 00:28:00,170 Dades Bàsiques és bàsicament un databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Si ho fa de Dades Bàsiques, s codi es definirà 443 00:28:05,360 --> 00:28:07,710 molt classes més complicades per a vostè. 444 00:28:07,710 --> 00:28:12,740 Així que per mantenir tot simple, estem només va a prescindir de Dades Bàsiques 445 00:28:12,740 --> 00:28:15,290 ara mateix. 446 00:28:15,290 --> 00:28:18,030 >> El problema que serem utilitzant és que-- el problema 447 00:28:18,030 --> 00:28:23,770 estarem creant és que ens bàsicament desitgi importar Mario de C 448 00:28:23,770 --> 00:28:25,437 per a una aplicació per iOS. 449 00:28:25,437 --> 00:28:26,645 Així que anem a trucar a que Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Per descomptat que especifiqui el que vol posar en el seu projecte. 452 00:28:34,880 --> 00:28:37,870 I aquí anem. 453 00:28:37,870 --> 00:28:41,390 >> Així que això és una mica aclaparadora, però això és en realitat 454 00:28:41,390 --> 00:28:43,540 el que acabem de veure en les diapositives. 455 00:28:43,540 --> 00:28:49,710 I la primera àrea que veiem en aquest moment és bàsicament la configuració del projecte. 456 00:28:49,710 --> 00:28:53,390 Així que tot el que vols fer projecte, quin tipus de dispositiu, 457 00:28:53,390 --> 00:28:58,810 direm quin tipus de dispositiu Vols que la teva aplicació perquè aparegui a? 458 00:28:58,810 --> 00:29:01,280 És l'iPhone, iPad o universal? 459 00:29:01,280 --> 00:29:04,660 Així que l'orientació del dispositiu, totes aquestes coses. 460 00:29:04,660 --> 00:29:08,490 No és molt important, però podria ser, però això 461 00:29:08,490 --> 00:29:11,050 és un lloc on es configura el seu projecte si en realitat 462 00:29:11,050 --> 00:29:15,180 desitgi implementar a la botiga d'Apple. 463 00:29:15,180 --> 00:29:20,420 >> Molt bé, anem a veure cosa que està dins del nostre codi. 464 00:29:20,420 --> 00:29:22,360 Anem a passar pel navegador de fitxers. 465 00:29:22,360 --> 00:29:30,140 I aquests són tots els arxius que ja va arribar amb la plantilla, molt agradable. 466 00:29:30,140 --> 00:29:35,980 Així que quan fem clic en un d'ells això és el que sembla. 467 00:29:35,980 --> 00:29:38,530 Molt similar a g edició. 468 00:29:38,530 --> 00:29:41,340 Però vostè pot veure que el ressaltat de sintaxi és probablement 469 00:29:41,340 --> 00:29:42,780 una mica més agradable. 470 00:29:42,780 --> 00:29:45,610 I és en realitat molt més poderós que l'edició g. 471 00:29:45,610 --> 00:29:49,970 I vostè pot completar acte un munt de coses per a tu, 472 00:29:49,970 --> 00:29:52,370 com veurem molt ràpidament. 473 00:29:52,370 --> 00:29:54,100 >> Anem a obrir la zona de depuració també. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Molt bé, com podem veure, la consola és aquí. 476 00:30:07,000 --> 00:30:13,840 Això és el que vas a veure on estàs en printf o nsloging alguna cosa. 477 00:30:13,840 --> 00:30:17,155 Així que sense més preàmbuls, anem a realitat compilar l'aplicació i veure què passa. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Una característica essencial per codi de s, és que el codi s 480 00:30:23,410 --> 00:30:25,850 ve amb un simulador d'iPhone. 481 00:30:25,850 --> 00:30:29,820 Així que vostè no necessita tenir un iPhone per tractar el seu projecte, 482 00:30:29,820 --> 00:30:34,440 codi de s pot fer veure que per que, com podem veure en aquest moment. 483 00:30:34,440 --> 00:30:36,406 >> És bastant agradable. 484 00:30:36,406 --> 00:30:38,640 Es tracta de prendre una mica poc de temps per compilar 485 00:30:38,640 --> 00:30:43,040 i bàsicament tenim una aplicació buida, 486 00:30:43,040 --> 00:30:44,640 que en realitat no fa res. 487 00:30:44,640 --> 00:30:46,175 Però compila. 488 00:30:46,175 --> 00:30:47,380 És bastant impressionant. 489 00:30:47,380 --> 00:30:50,200 És molt millor que C, eh? 490 00:30:50,200 --> 00:30:52,130 Molt bé, llavors anem a tractar d'afegir alguna cosa. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Un arxiu que és una mica rar aquí es diu storyboard. 493 00:31:02,650 --> 00:31:08,020 Això és realment un gran, característica impressionant per al codi s. 494 00:31:08,020 --> 00:31:14,170 A causa de que en el codi de s, en realitat es pot arrossegar i deixar anar elements en la interfície 495 00:31:14,170 --> 00:31:17,430 i es mostrarà directament cap amunt. 496 00:31:17,430 --> 00:31:18,055 Anem a intentar-ho. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Deixem caure una etiqueta aquí, "Hola Món !!!" 499 00:31:27,236 --> 00:31:29,740 Podem centrar això. 500 00:31:29,740 --> 00:31:30,970 Bastant fresc. 501 00:31:30,970 --> 00:31:33,915 Ara anem a córrer aquesta simulació de parada. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Aquí tenim "Hola Món !!!" 504 00:31:38,700 --> 00:31:40,810 Ni tan sols ens fem cap tipus de codificació encara. 505 00:31:40,810 --> 00:31:42,750 Què diables està passant? 506 00:31:42,750 --> 00:31:45,880 Això és el poderós Interface Builder pot ser. 507 00:31:45,880 --> 00:31:48,030 Algú va arribar a dir que Probablement vostè pot tot just 508 00:31:48,030 --> 00:31:52,800 completar una aplicació sense escriure probablement mil línies de codi 509 00:31:52,800 --> 00:31:54,820 tot just usant el Interface Builder. 510 00:31:54,820 --> 00:31:59,680 Però és probable que no la millor manera de fer-ho. 511 00:31:59,680 --> 00:32:01,670 >> Ara anem a realment posar fil a l'codificació. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Així que l'estructura de l'arxiu és realment molt interessant 514 00:32:08,330 --> 00:32:15,610 perquè, com vostè pot veure, hi ha hi ha una funció principal en qualsevol lloc. 515 00:32:15,610 --> 00:32:17,466 Veus? 516 00:32:17,466 --> 00:32:19,340 Com esmentem abans, es pot veure que aquesta 517 00:32:19,340 --> 00:32:22,830 és un arxiu d'implementació per a una classe específica. 518 00:32:22,830 --> 00:32:25,690 Però no hi ha cap part principal. 519 00:32:25,690 --> 00:32:27,490 Llavors, on és el principal? 520 00:32:27,490 --> 00:32:31,970 En realitat, hi ha una principal, però la principal és en realitat oculta de vostè. 521 00:32:31,970 --> 00:32:34,560 La principal és aquí. 522 00:32:34,560 --> 00:32:37,120 Això es veu molt familiar. 523 00:32:37,120 --> 00:32:41,000 >> Així que, bàsicament, el que iOS està fent dins de main 524 00:32:41,000 --> 00:32:43,540 és que cada vegada principal és trucada, que és bàsicament 525 00:32:43,540 --> 00:32:49,000 cada vegada que l'aplicació s'executa, es crea un objecte anomenat AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Com vaig esmentar abans, la totalitat aplicació és en realitat un objecte per si mateix. 528 00:32:57,350 --> 00:33:02,270 Així d'aquesta manera, bàsicament el iOS està dient al compilador 529 00:33:02,270 --> 00:33:05,540 que bé, jo vaig a crear un producte anomenat AppDelegate, 530 00:33:05,540 --> 00:33:07,620 i que serà la meva aplicació. 531 00:33:07,620 --> 00:33:09,640 Així que cal anar a través d'aquest AppDelegate 532 00:33:09,640 --> 00:33:12,040 i veure el que està fent aquest tipus. 533 00:33:12,040 --> 00:33:14,850 El meu treball està fet per a mi. 534 00:33:14,850 --> 00:33:22,070 >> I en AppDelegate es pot veure que hi ha algunes funcions realment estranys, 535 00:33:22,070 --> 00:33:25,290 bé, en realitat mètodes, que Apple ja li ha donat. 536 00:33:25,290 --> 00:33:27,464 Què són aquests? 537 00:33:27,464 --> 00:33:31,010 Aquestes són en realitat només protocols que jo estava parlant. 538 00:33:31,010 --> 00:33:35,670 Així que aquests són esdeveniments que Apple t'ha donat per començar. 539 00:33:35,670 --> 00:33:38,050 No hi ha res en alguns de les funcions en aquest moment, 540 00:33:38,050 --> 00:33:40,820 però si volem inicialitzar alguna cosa per a la nostra aplicació 541 00:33:40,820 --> 00:33:46,140 abans d'entrar a mostrar qualsevol punt de vista, ho fem aquí. 542 00:33:46,140 --> 00:33:51,150 >> Vostè només pot llegir el nom i suposo l'esdeveniment és en realitat molt clara. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Així que ara principal ha creat un objecte per AppDelegate. 545 00:33:58,350 --> 00:34:05,220 I què AppDelegate farà és en realitat també s'oculta a vostè. 546 00:34:05,220 --> 00:34:09,250 El AppDelegate va a començar carregar l'estoc de ViewController. 547 00:34:09,250 --> 00:34:13,170 Així que bàsicament va a començar carregant totes les vistes que tens 548 00:34:13,170 --> 00:34:17,500 i simplement fer els ulls basat en la jerarquia. 549 00:34:17,500 --> 00:34:21,280 >> Així que en aquest cas només tenim un punt de vista, que és aquí. 550 00:34:21,280 --> 00:34:25,060 Així que aquesta és l'única vista això serà anomenat. 551 00:34:25,060 --> 00:34:28,159 La lògica ViewController és aquí. 552 00:34:28,159 --> 00:34:32,159 Aquest és el codi que realment controla la vista que acabem de veure. 553 00:34:32,159 --> 00:34:33,679 Molt bé, farem alguna cosa aquí. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Així viewDidLoad sona com un esdeveniment, quan en realitat això és també un delegat, 556 00:34:50,560 --> 00:34:52,500 això també és un protocol. 557 00:34:52,500 --> 00:34:56,350 >> Així que sigui quin sigui el punt de vista s'ha carregat, tot dins de la funció 558 00:34:56,350 --> 00:34:57,920 serà cridat. 559 00:34:57,920 --> 00:35:02,840 En aquest cas hem de veure "Hola Tianyu! "Si executeu el programa. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 S'està fent una mica lent compilar arxius de storyboard. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Bé de fet, si veiem una sortida per a ell. 564 00:35:18,190 --> 00:35:20,720 És una passada. 565 00:35:20,720 --> 00:35:22,000 Ara anem a fer realitat Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Vaig a definir el funcionar molt ràpidament. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: resultats (int) de nivell. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Molt bé, això és en realitat la increïble característica d'autocompletat de codi s. 572 00:36:06,410 --> 00:36:10,680 Així que quan vostè escriu per escriure i entrar, que ja ha renunciat a la plantilla 573 00:36:10,680 --> 00:36:12,325 per a vostè, que és bastant guai. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Això hauria de mirar realment familiar per a vostès. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Ho sentim, aquesta és la meva culpa. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Molt bé, fresc. 580 00:37:18,120 --> 00:37:22,710 Aquesta lògica hauria de ser molt familiar a vostès, especialment just Mario. 581 00:37:22,710 --> 00:37:26,140 >> Però ara anem a imprimir en la consola cada vegada, 582 00:37:26,140 --> 00:37:29,280 perquè volem mantenir d'alguna manera pista del que estem imprimint. 583 00:37:29,280 --> 00:37:31,810 Anem a utilitzar el els resultats d'alguna manera més tard, 584 00:37:31,810 --> 00:37:35,010 per mostrar la impressió fora resultat a l'usuari. 585 00:37:35,010 --> 00:37:37,730 Així que en comptes només som nslogging tot, 586 00:37:37,730 --> 00:37:42,410 que estem emmagatzemant tot en conseqüència crida a la funció, 587 00:37:42,410 --> 00:37:44,070 però la lògica és exactament el mateix. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Després que acabem, ens només imprimir els resultats. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> I aquí en lloc d'imprimir el meu nom, anem a cridar a una funció. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Anem a veure què passa. 594 00:38:18,090 --> 00:38:21,240 Vaja, òbviament. 595 00:38:21,240 --> 00:38:24,320 Tenim una bonica petita piràmide aquí. 596 00:38:24,320 --> 00:38:28,370 Això és, bàsicament, C, només som manipulant on es crida a una funció 597 00:38:28,370 --> 00:38:30,010 i com no una funció similar. 598 00:38:30,010 --> 00:38:31,560 No hi ha res diferent. 599 00:38:31,560 --> 00:38:34,040 Però això és en realitat no molt emocionant aquí, 600 00:38:34,040 --> 00:38:37,500 perquè no estem veient res de l'aplicació per l'iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Així que si vostè realment té un iPhone app-- si vostè realment té Mario iOS dret 602 00:38:42,120 --> 00:38:45,080 Ara, vostè no va per veure tot el que 603 00:38:45,080 --> 00:38:49,450 té alguna cosa a veure amb Mario perquè totes aquestes sortides en la consola 604 00:38:49,450 --> 00:38:51,620 s'oculten d'un usuari. 605 00:38:51,620 --> 00:38:53,850 Això és el que es veu, que és "Hola Món !!!" 606 00:38:53,850 --> 00:38:55,720 No és bo. 607 00:38:55,720 --> 00:39:03,090 Ara anem a tractar de fer que l'usuari vegi què és exactament el que estem imprimint. 608 00:39:03,090 --> 00:39:06,000 Així que no necessitem per etiquetar més. 609 00:39:06,000 --> 00:39:09,800 Anem a tractar d'esbrinar alguna cosa una altra cosa que pugui ser útil. 610 00:39:09,800 --> 00:39:12,140 >> En realitat, hi ha una element que es diu 611 00:39:12,140 --> 00:39:16,460 camp de text, el que podria ser molt útil per a nosaltres. 612 00:39:16,460 --> 00:39:19,880 Bàsicament mostra una regió de text que es poden editar. 613 00:39:19,880 --> 00:39:22,320 Així que sembla realment útil. 614 00:39:22,320 --> 00:39:23,810 Ara anem a arrossegueu i deixeu-lo anar. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, tenim una vista de text en la nostra opinió, realment de luxe. 617 00:39:32,670 --> 00:39:35,430 Això és una mica massa gran. 618 00:39:35,430 --> 00:39:38,150 Anem a fer-lo més petit. 619 00:39:38,150 --> 00:39:40,290 Poseu al centre. 620 00:39:40,290 --> 00:39:43,760 Fer-la més petita també. 621 00:39:43,760 --> 00:39:50,110 >> Ara tenim una vista de text, que vam poder pot utilitzar per mostrar el nostre resultat final. 622 00:39:50,110 --> 00:39:52,860 Però en aquest moment és definitivament no funcionarà 623 00:39:52,860 --> 00:39:56,970 perquè hi ha no-- la ViewController acabem 624 00:39:56,970 --> 00:40:03,010 definit no sap que hi ha una vista de text que hi ha. 625 00:40:03,010 --> 00:40:06,550 Així que tenim que d'alguna manera vincular la vista de text que acabem de 626 00:40:06,550 --> 00:40:11,660 creat amb la classe que ja ha vingut amb nosaltres. 627 00:40:11,660 --> 00:40:14,860 >> La forma de fer-ho és realment realment màgic. 628 00:40:14,860 --> 00:40:18,190 Doncs obre storyboard. 629 00:40:18,190 --> 00:40:22,220 Hi ha una especial [inaudible] anomenat [? assistent?] [inaudible]. 630 00:40:22,220 --> 00:40:25,190 En fer clic en això, és va a obrir dos arxius. 631 00:40:25,190 --> 00:40:29,425 Una d'elles és una classe i l'altra és una vista corresponent per a això. 632 00:40:29,425 --> 00:40:31,920 És molt, molt útil. 633 00:40:31,920 --> 00:40:35,950 I anem a passa per l'arxiu .h. 634 00:40:35,950 --> 00:40:39,110 De control, això és [inaudible] lògica. 635 00:40:39,110 --> 00:40:47,280 Premi Control i arrossegament la vista de text en la declaració. 636 00:40:47,280 --> 00:40:48,780 Anem a trucar a aquest outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Connecteu. 639 00:40:53,670 --> 00:40:59,420 Així que aquí hem declarat una nova propietat per a la nostra classe ViewController. 640 00:40:59,420 --> 00:41:02,300 I la nova propietat és només la vista de text 641 00:41:02,300 --> 00:41:05,000 hem creat a l'edifici de la interfície. 642 00:41:05,000 --> 00:41:07,990 Així que d'aquesta manera poguéssim l'accés de totes les dades 643 00:41:07,990 --> 00:41:13,630 i manipular tot el que està a l'interior la vista de sortida, que és impressionant. 644 00:41:13,630 --> 00:41:19,260 >> Així que en el nostre codi real, farem alguna cosa amb ell. 645 00:41:19,260 --> 00:41:23,810 Així que aquesta vegada quan som com impressió el resultat final de Mario, 646 00:41:23,810 --> 00:41:28,020 estem en no registrar res. 647 00:41:28,020 --> 00:41:30,080 Vull dir que podíem mantenir la declaració de registre. 648 00:41:30,080 --> 00:41:41,490 A més d'això, enviar la lectura que acabem de 649 00:41:41,490 --> 00:41:47,622 creat a la vista de sortida, la qual és una interfície d'usuari TextView que acabem de crear. 650 00:41:47,622 --> 00:41:48,746 Ara anem a veure què passa. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Guauu. 653 00:41:56,620 --> 00:41:59,130 Tenim una piràmide en l'aplicació en aquest moment. 654 00:41:59,130 --> 00:42:06,720 >> Així l'usuari pot veure la nostra producció perquè hem copiat la sortida del nostre codi 655 00:42:06,720 --> 00:42:08,045 a la nostra interfície. 656 00:42:08,045 --> 00:42:10,950 És bastant bo. 657 00:42:10,950 --> 00:42:14,990 En realitat no és que emocionant perquè ens can-- 658 00:42:14,990 --> 00:42:18,250 Tota l'aplicació està fent és mostrant una piràmide per a vostè, 659 00:42:18,250 --> 00:42:20,520 i no hi ha res que puguis fer al respecte. 660 00:42:20,520 --> 00:42:22,330 No és particularment emocionant. 661 00:42:22,330 --> 00:42:27,840 Així que ara farem un botó que aclarirà les vistes. 662 00:42:27,840 --> 00:42:30,290 Sembla que un botó serà útil. 663 00:42:30,290 --> 00:42:33,270 Arrossegueu i deixeu anar. 664 00:42:33,270 --> 00:42:33,900 Botó un. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Botó 02:00. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Així que quan fem clic a l'esquerra botó, la vista ha de desaparèixer. 669 00:42:52,052 --> 00:42:53,635 No ha d'haver res a la pantalla. 670 00:42:53,635 --> 00:42:56,970 I quan fem clic al botó dret, Mario, 671 00:42:56,970 --> 00:42:59,740 la vista es va a aparèixer de nou. 672 00:42:59,740 --> 00:43:05,510 Així d'aquesta manera també fem el coses màgiques, control i arrossegament 673 00:43:05,510 --> 00:43:08,740 a la declaració de la classe en l'assistent La directora del 674 00:43:08,740 --> 00:43:11,600 en l'assistent d'espectador. 675 00:43:11,600 --> 00:43:18,620 En aquest cas estem especificant que això hauria de ser una acció. 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 >> Així que aquí ja hem creat una acció anomenada clearMario, 679 00:43:26,830 --> 00:43:34,210 que és el mètode que es diu cada vegada que premem el botó d'esborrat. 680 00:43:34,210 --> 00:43:41,030 Així que en la nostra realitat codi, anem a posar el text de sortida i la vista de sortida 681 00:43:41,030 --> 00:43:44,620 en res, i d'aquesta manera s'assembla ser clara. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 A més d'això, crearem altre mètode anomenat runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh, ho sento, això no ha de ser una propietat. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Molt bé, que hauria ser una acció així. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> I quan aquesta funció és trucada, simplement correm Mario deu. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Esperem que estarà bé. 692 00:44:39,780 --> 00:44:41,120 Es compilar? 693 00:44:41,120 --> 00:44:43,920 Sí. 694 00:44:43,920 --> 00:44:45,090 Ara tenim una visió. 695 00:44:45,090 --> 00:44:46,560 Tenim una sortida. 696 00:44:46,560 --> 00:44:50,040 I anem a veure què passa. 697 00:44:50,040 --> 00:44:52,590 Que s'ha anat. 698 00:44:52,590 --> 00:44:54,500 És tornar de nou. 699 00:44:54,500 --> 00:44:57,620 Així que aquí hem especificat quin tipus de funció 700 00:44:57,620 --> 00:45:00,400 serà cridat quan teclegem en alguna cosa, 701 00:45:00,400 --> 00:45:03,160 quan pressionem un botó específic. 702 00:45:03,160 --> 00:45:07,890 Aquesta és bàsicament la esquema d'acció de destinació 703 00:45:07,890 --> 00:45:12,510 per a l'esdeveniment impulsat programació en Objective C. 704 00:45:12,510 --> 00:45:15,030 >> A més d'això, que no és molt emocionant 705 00:45:15,030 --> 00:45:19,810 perquè no podem realment canviar què tan alt serà la piràmide, 706 00:45:19,810 --> 00:45:23,640 així que probablement volem d'alguna manera obtenir una entrada de l'usuari 707 00:45:23,640 --> 00:45:29,490 i canviar l'alçada de la piràmide basa en el que la sortida. 708 00:45:29,490 --> 00:45:32,900 Així que farem això. 709 00:45:32,900 --> 00:45:38,720 Així que aquesta vegada quan diem runMario, no ens limitem a una crida Mario directament. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 El títol d'aquest un. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegat. 714 00:46:23,700 --> 00:46:25,160 Això és molt interessant. 715 00:46:25,160 --> 00:46:26,720 Què és un delegat? 716 00:46:26,720 --> 00:46:28,950 Em vaig a posar un mateix aquí. 717 00:46:28,950 --> 00:46:31,038 I anem a veure el que significa això més tard. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Així que aquí hem creat bàsicament un instància específica crida un avís d'UI 720 00:46:51,120 --> 00:46:52,210 punt de vista. 721 00:46:52,210 --> 00:46:54,440 Una vista d'alerta interfície d'usuari és bàsicament el que vulguis 722 00:46:54,440 --> 00:46:58,940 veure cada vegada que alguna cosa pops i li pregunta per a l'entrada, 723 00:46:58,940 --> 00:47:03,080 com el que passarà quan vostè està tractant per comprar alguna cosa en una botiga d'aplicacions. 724 00:47:03,080 --> 00:47:14,250 >> A més d'això, després de crear-lo, només mostrem l'alerta. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Molt bé, anem a ràpidament prova de la voluntat que el treball o no. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Això és molt cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Ara crearem una realitat camp d'entrada per alerta de la interfície d'usuari. 731 00:47:59,120 --> 00:48:01,170 Així és com ho fem. 732 00:48:01,170 --> 00:48:07,490 I hem de tenir un vista d'entrada per l'alerta. 733 00:48:07,490 --> 00:48:09,020 Molt fresc. 734 00:48:09,020 --> 00:48:12,330 Diguem 10. 735 00:48:12,330 --> 00:48:14,900 >> No està fent res bé ara perquè l'anomenada realitat 736 00:48:14,900 --> 00:48:17,770 no va canviar per executar Mario. 737 00:48:17,770 --> 00:48:23,470 Així que això s'ha convertit en una mica mica estrany perquè sempre 738 00:48:23,470 --> 00:48:30,790 premem un botó de sota, cada vegada que premi un botó a la vista d'alerta, 739 00:48:30,790 --> 00:48:35,560 alguna cosa passa, però no succeeix. 740 00:48:35,560 --> 00:48:37,220 Com ens atrapem això? 741 00:48:37,220 --> 00:48:41,280 Com sabem que un usuari ha desestimat una vista d'alertes 742 00:48:41,280 --> 00:48:45,630 i ja entrat en un nombre, perquè en aquest moment res està succeint realment. 743 00:48:45,630 --> 00:48:50,450 >> Bé, pot haver endevinat bé, delegació. 744 00:48:50,450 --> 00:48:55,440 Així que a més de tot aquestes declaracions, 745 00:48:55,440 --> 00:49:03,190 hem d'afegir una nova delegació a es diu IU alerta de delegat. 746 00:49:03,190 --> 00:49:06,440 Així que cada interacció o esdeveniment 747 00:49:06,440 --> 00:49:10,190 que tindrem amb la vista alerta UI 748 00:49:10,190 --> 00:49:14,100 serà manejat per la nostra classe també. 749 00:49:14,100 --> 00:49:26,297 >> Així que a més d'això, serà alerta botó Veure Fes click en l'índex. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Això s'aconsegueix. 752 00:49:37,730 --> 00:49:42,020 Així que en aquest cas tenim ya-- així que tenim 753 00:49:42,020 --> 00:49:46,210 trobat a terme un protocol que controlarà l'esdeveniment quan 754 00:49:46,210 --> 00:49:51,320 fem clic al botó Fet a la vista d'alerta. 755 00:49:51,320 --> 00:49:55,976 Així que cada vegada que desestimi el vista alerta, això ha de succeir. 756 00:49:55,976 --> 00:49:57,350 Permetin-me provo molt ràpidament. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Ben fet, hem arribat aquí. 759 00:50:19,300 --> 00:50:22,210 >> Així que aquí, el que no ho farà aconseguir realment és en realitat 760 00:50:22,210 --> 00:50:43,120 obtenim ell-- Així que volem sortir el text que tenim prèviament 761 00:50:43,120 --> 00:50:45,350 va ingressar a la vista d'alerta. 762 00:50:45,350 --> 00:50:48,505 I basat en text, estem va a mostrar Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Això resulta molt ràpidament si realment funciona o no. 765 00:50:55,480 --> 00:50:59,476 Així que en aquest cas, si d'entrada, diguem, 10, hauríem veure 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Molt bé, tenim un nombre aquí. 768 00:51:05,210 --> 00:51:06,470 És bastant bo. 769 00:51:06,470 --> 00:51:16,840 Ara l'últim pas serà ser: Així que la últim pas que hem de fer en aquest moment 770 00:51:16,840 --> 00:51:21,100 és només una trucada de Mario amb nivell basat a l'entrada 771 00:51:21,100 --> 00:51:23,270 que hem posat a la vista d'alerta. 772 00:51:23,270 --> 00:51:26,920 Així que hem de convertir aquesta cadena en iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Desbordament estàtica és molt impressionant. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 I després ja només en diem acte valor marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Anem a veure que va a realment funciona o no. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Ja estem van donar una piràmide. 781 00:52:01,550 --> 00:52:04,785 Anem a tractar de canviar l'altura. 782 00:52:04,785 --> 00:52:06,530 Que realment funciona. 783 00:52:06,530 --> 00:52:07,610 És una passada. 784 00:52:07,610 --> 00:52:10,420 Així que ara vostè pot simplement introduir qualsevol valor que vulgueu. 785 00:52:10,420 --> 00:52:12,440 Diguem 04:00. 786 00:52:12,440 --> 00:52:14,260 Això és bastant impressionant. 787 00:52:14,260 --> 00:52:17,090 Així que això és bàsicament un exemple molt ràpid 788 00:52:17,090 --> 00:52:23,170 com crear un projecte en codi de s i com cablejar molt ràpidament 789 00:52:23,170 --> 00:52:26,220 alguns esdeveniments i funcions molt simples. 790 00:52:26,220 --> 00:52:28,840 >> Així la font va per ser posat en línia més tard. 791 00:52:28,840 --> 00:52:33,400 Així que si vostè està interessat en com funciona iOS Mario, 792 00:52:33,400 --> 00:52:38,360 Vaig a posar exactament el mateix projectes en el lloc web CS50 tard. 793 00:52:38,360 --> 00:52:41,260 Bàsicament estem acabat amb la estiu, i abans d'acabar 794 00:52:41,260 --> 00:52:45,190 Només vull assenyalar a vostès a alguns recursos realment impressionants que 795 00:52:45,190 --> 00:52:47,550 estan disponibles en línia. 796 00:52:47,550 --> 00:52:52,270 >> Òbviament, la documentació d'Apple serà molt útil. 797 00:52:52,270 --> 00:52:57,630 Però a més d'això, especialment recomanar quatre fonts, escola de codi, 798 00:52:57,630 --> 00:53:02,120 casa de l'arbre, AppCoda i WWDC vídeos. 799 00:53:02,120 --> 00:53:07,270 Codi del col·legi i de la casa de l'arbre són dos llocs web Educadores en línia, 800 00:53:07,270 --> 00:53:10,210 que se centren específicament en enginyeria de programari. 801 00:53:10,210 --> 00:53:16,930 Especialment per a l'escola codi, que tenen molt bon tutorial sobre iOS. 802 00:53:16,930 --> 00:53:19,550 >> Aquest és un exemple molt ràpid per a ell. 803 00:53:19,550 --> 00:53:22,980 Ells en realitat creen una realitat cute-- mira que poc iPhone valent 804 00:53:22,980 --> 00:53:24,920 amic d'allà, que és bastant impressionant. 805 00:53:24,920 --> 00:53:31,010 I la forma en què explica Objectiu Sintaxi de C és perfectament clara. 806 00:53:31,010 --> 00:53:32,230 La casa de l'arbre és el mateix. 807 00:53:32,230 --> 00:53:34,660 I AppCoda és un fòrum. 808 00:53:34,660 --> 00:53:38,130 En realitat és un bloc que es va executar per un objectiu molt experimentat C 809 00:53:38,130 --> 00:53:39,120 programador. 810 00:53:39,120 --> 00:53:43,950 I tots aquests tutorials en AppCoda són bastant curt i fàcil d'implementar, 811 00:53:43,950 --> 00:53:45,390 molt recomanable. 812 00:53:45,390 --> 00:53:47,700 >> I si vostè és un desenvolupador, Definitivament anar a veure 813 00:53:47,700 --> 00:53:55,660 com els vídeos WWDC on es pot aprendre sobre l'última programació iOS 814 00:53:55,660 --> 00:53:58,250 tècniques, APIs i biblioteques. 815 00:53:58,250 --> 00:54:02,850 Així que és més o menys durant el seminari. 816 00:54:02,850 --> 00:54:03,820 Moltes gràcies. 817 00:54:03,820 --> 00:54:08,040 I jo espero que es diverteixin la creació de la seva pròpia aplicació per iOS. 818 00:54:08,040 --> 00:54:09,302