1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU LIU: Hey, ¿cómo es que va todo el mundo? 3 00:00:13,590 --> 00:00:20,250 Y esta es la aplicación para iOS programación del seminario objetivo c. 4 00:00:20,250 --> 00:00:21,520 Y mi nombre es Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Soy un joven de Lowell en este momento, concentrándose en la informática. 6 00:00:26,114 --> 00:00:28,030 Así que en este seminario que soy te va a enseñar a los chicos 7 00:00:28,030 --> 00:00:30,770 un poco acerca de cómo hacer una aplicación. 8 00:00:30,770 --> 00:00:33,030 Yay, emocionarse por ello. 9 00:00:33,030 --> 00:00:36,790 >> Así que antes de empezar siquiera buceo en el lado real de programación, 10 00:00:36,790 --> 00:00:41,840 vamos a simplemente muy rápidamente hablar ¿Por qué puede querer construir una aplicación para iOS? 11 00:00:41,840 --> 00:00:43,940 ¿Por qué es tan impresionante iOS? 12 00:00:43,940 --> 00:00:47,250 Así que el primer problema, el primer cosa que es bastante impresionante para nosotros, 13 00:00:47,250 --> 00:00:51,190 especialmente como CS50 estudiante, es que iOS 14 00:00:51,190 --> 00:00:55,860 utiliza Objective C. Bueno, hay un nuevo lenguaje llamado Swift, 15 00:00:55,860 --> 00:00:58,260 pero nosotros no vamos a el uso que en este seminario. 16 00:00:58,260 --> 00:01:01,540 Si usted está interesado en Swift, hay es un seminario independiente de eso. 17 00:01:01,540 --> 00:01:05,590 Pero Objective C es básicamente un superconjunto de C. Significado 18 00:01:05,590 --> 00:01:10,230 que todo lo que se utiliza en C puede traducirse en Objective C 19 00:01:10,230 --> 00:01:11,630 muy fácilmente. 20 00:01:11,630 --> 00:01:15,730 >> Como se puede ver más adelante, que, efectivamente, hay algunos sintaxis muy básica, son 21 00:01:15,730 --> 00:01:19,790 básicamente exactamente de la misma, C y Objective C. Así, 22 00:01:19,790 --> 00:01:22,860 habiéndoos CS50 hasta este momento, que ya 23 00:01:22,860 --> 00:01:26,500 Objetivo saber C, al menos 40%. 24 00:01:26,500 --> 00:01:30,720 Además, Apple tiene una realidad robusta API para iOS. 25 00:01:30,720 --> 00:01:33,750 Hay un montón de realmente loco cosas que pueden hacer con ella. 26 00:01:33,750 --> 00:01:36,760 Uno de los cuales es alguien en realidad creado una aplicación para iOS 27 00:01:36,760 --> 00:01:40,600 para los coches de control, la cual es bastante interesante. 28 00:01:40,600 --> 00:01:42,610 Probablemente un helicóptero es más emocionante. 29 00:01:42,610 --> 00:01:47,020 Pero eso es lo poderoso la API de iOS puede ser. 30 00:01:47,020 --> 00:01:49,340 >> Y como es posible que tenga descubierto en este momento, 31 00:01:49,340 --> 00:01:53,000 el desbordamiento de pila es probablemente uno de los recursos en línea más importantes 32 00:01:53,000 --> 00:01:54,250 disponible para usted. 33 00:01:54,250 --> 00:01:58,090 Y una buena noticia, por cada único problema, puede posiblemente 34 00:01:58,090 --> 00:02:01,840 pensar mientras que la construcción de su proyecto final en Objective C, 35 00:02:01,840 --> 00:02:05,910 es posible que haya una respuesta de desbordamiento de pila. 36 00:02:05,910 --> 00:02:07,420 Es simplemente impresionante. 37 00:02:07,420 --> 00:02:12,780 Además de eso, iOS es realmente una plataforma 38 00:02:12,780 --> 00:02:16,260 donde se puede llegar a un gran audiencia con poco esfuerzo. 39 00:02:16,260 --> 00:02:20,170 No es como Android, donde todo está muy fragmentado. 40 00:02:20,170 --> 00:02:22,540 >> Todo iOS es unificada. 41 00:02:22,540 --> 00:02:25,920 Y mientras se crea una aplicación para iPhone, 42 00:02:25,920 --> 00:02:31,260 usted puede muy fácilmente puerto que para iPad, iPad mini, o diferentes tamaños de iPhone. 43 00:02:31,260 --> 00:02:33,050 Estos son todos muy conveniente. 44 00:02:33,050 --> 00:02:36,430 Y es realmente bueno para impresionar a tus amigos. 45 00:02:36,430 --> 00:02:38,920 Usted sólo puede mantener un iPhone y dile a tu amigo bueno, 46 00:02:38,920 --> 00:02:40,250 esta es la aplicación que hago. 47 00:02:40,250 --> 00:02:43,860 Usted puede hacer que para cualquier aplicaciones de escritorio, lo cual es agradable. 48 00:02:43,860 --> 00:02:48,870 >> Muy bien, ahora vamos a conseguir realmente en el lenguaje Objective C. 49 00:02:48,870 --> 00:02:52,910 Entonces, ¿por qué no empezamos con una sintaxis muy básica. 50 00:02:52,910 --> 00:02:57,410 Como mencioné antes Objetivo C Es básicamente un superconjunto de C. 51 00:02:57,410 --> 00:03:01,860 Así que un montón de sintaxis básica son en realidad exactamente el mismo. 52 00:03:01,860 --> 00:03:06,150 Declarar una variable y la adición de dos variables juntas 53 00:03:06,150 --> 00:03:09,440 es exactamente lo que hemos hecho en Mario. 54 00:03:09,440 --> 00:03:11,140 Nada nuevo aquí. 55 00:03:11,140 --> 00:03:17,370 >> Del mismo modo, el inquilino por bucle y condición también es el mismo. 56 00:03:17,370 --> 00:03:22,370 Usted puede hacer un bucle tal como lo han hizo en un Mario [inaudible]. 57 00:03:22,370 --> 00:03:26,280 Y puede hacerlo condiciones al igual que lo que 58 00:03:26,280 --> 00:03:29,240 han estado haciendo en sus conjuntos p anteriores. 59 00:03:29,240 --> 00:03:33,400 Sin embargo, Objective C no es completamente C, 60 00:03:33,400 --> 00:03:36,640 y hay algo que es una especie de extraño en ello. 61 00:03:36,640 --> 00:03:42,340 >> La primera es que cuando estás haciendo de programación C, normalmente se llama 62 00:03:42,340 --> 00:03:46,310 incluir y luego un nombre de biblioteca. 63 00:03:46,310 --> 00:03:49,860 Pero en Objective C se llama esa importación. 64 00:03:49,860 --> 00:03:53,100 Diciendo Básicamente funcionalidad, sólo diferentes nombres. 65 00:03:53,100 --> 00:03:55,940 Y las cadenas son en realidad un poco raro. 66 00:03:55,940 --> 00:03:58,250 Se puede ver que la primera cosa que es un poco raro 67 00:03:58,250 --> 00:04:04,190 es que tienes una bonita weird-- sorry-- tienes unas NS bastante extraños 68 00:04:04,190 --> 00:04:04,960 firmar aquí. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Y la segunda cosa eso es un poco raro 71 00:04:09,160 --> 00:04:14,090 es que tienes una arroba antes de hecho declarando la cadena. 72 00:04:14,090 --> 00:04:19,209 Así que la arroba básicamente significa que una cadena es no sólo una cadena, 73 00:04:19,209 --> 00:04:20,880 en realidad es un objeto. 74 00:04:20,880 --> 00:04:22,780 Vamos a explicar que más tarde lo que no hacer 75 00:04:22,780 --> 00:04:25,800 pánico si no lo hace entienden lo que eso significa. 76 00:04:25,800 --> 00:04:29,980 Y la impresión de consola es un poco diferente porque en C que llamamos printf, 77 00:04:29,980 --> 00:04:33,350 pero en Objective C llamamos [inaudible]. 78 00:04:33,350 --> 00:04:35,640 >> Tal vez se pregunte qué es eso. 79 00:04:35,640 --> 00:04:38,070 Eso es básicamente printf, sólo un idioma diferente. 80 00:04:38,070 --> 00:04:41,370 Exactamente el mismo uso, exactamente la misma funcionalidad. 81 00:04:41,370 --> 00:04:44,060 Pues resulta que Objetivo C realidad 82 00:04:44,060 --> 00:04:50,040 tiene un ns prefijo en casi todo, cada tipo de datos básico, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 La razón es que ns en realidad significa Next Step, 85 00:04:56,340 --> 00:04:59,980 que es una empresa que Steve Jobs ha fundado, 86 00:04:59,980 --> 00:05:03,960 que es una empresa en la que el lenguaje Objective C nace. 87 00:05:03,960 --> 00:05:06,140 Así que esto es básicamente la tradición. 88 00:05:06,140 --> 00:05:09,010 Sé que es un poco raro, pero es Apple. 89 00:05:09,010 --> 00:05:16,840 >> Así que algo que es aún más extraño que es una declaración de la función. 90 00:05:16,840 --> 00:05:22,600 Esto es muy diferente de lo que ver en C, porque aquí lo que realmente 91 00:05:22,600 --> 00:05:25,190 no se parece a C más. 92 00:05:25,190 --> 00:05:28,810 Lo que tienes aquí-- por el forma en que este no es un punto de bala, 93 00:05:28,810 --> 00:05:30,690 este es un signo menos. 94 00:05:30,690 --> 00:05:36,440 Usted tiene un paréntesis signo menos vacío y después el nombre de la función. 95 00:05:36,440 --> 00:05:38,450 Digamos que si tener hola mundo, entonces 96 00:05:38,450 --> 00:05:42,820 el tipo de retorno sería nula porque volvemos nada. 97 00:05:42,820 --> 00:05:44,680 >> Lo que se pone muy raro es que cuando estás 98 00:05:44,680 --> 00:05:49,580 que tiene más de un parámetro pasar a una misma función que 99 00:05:49,580 --> 00:05:53,870 va a ser muy raro, como se muestra aquí. 100 00:05:53,870 --> 00:05:58,230 Tenemos un nombre de método, llamado addInt a [inaudible] 101 00:05:58,230 --> 00:06:00,370 y estamos pasando un parámetro. 102 00:06:00,370 --> 00:06:05,170 Pero después de eso, tenemos más llamada nombre de método con. 103 00:06:05,170 --> 00:06:08,500 Y después de que estamos pasando el segundo parámetro. 104 00:06:08,500 --> 00:06:11,940 Esto es en realidad un poco raro, pero todas estas declaraciones de funciones 105 00:06:11,940 --> 00:06:14,770 seguir el mismo patrón como este. 106 00:06:14,770 --> 00:06:17,450 >> Contamos con un signo menos para empezar. 107 00:06:17,450 --> 00:06:21,550 El signo menos podría ser un signo más a veces sobre la base de qué tipo de método 108 00:06:21,550 --> 00:06:22,340 es la misma. 109 00:06:22,340 --> 00:06:25,000 El método es básicamente otro nombre para la función. 110 00:06:25,000 --> 00:06:26,760 Y vamos a explicar que más tarde, cuando 111 00:06:26,760 --> 00:06:30,580 estamos hablando de objeto programación orientada. 112 00:06:30,580 --> 00:06:34,300 Primero se especifica el retorno escriba paréntesis en el interior, 113 00:06:34,300 --> 00:06:37,450 después de lo cual viene el nombre del método. 114 00:06:37,450 --> 00:06:40,310 Estás pasando un parámetro. 115 00:06:40,310 --> 00:06:44,750 Y si usted tiene más parámetros necesita extender el nombre del método 116 00:06:44,750 --> 00:06:46,770 y básicamente escribir algo más aquí. 117 00:06:46,770 --> 00:06:48,090 >> Podría ser cualquier cosa que quieras. 118 00:06:48,090 --> 00:06:50,140 En nuestro caso es con. 119 00:06:50,140 --> 00:06:56,160 Pero se podría decir final, o, o, o abc bar completo, lo que quieras. 120 00:06:56,160 --> 00:06:59,500 Y luego, después de que usted es pasando parámetro b. 121 00:06:59,500 --> 00:07:01,750 Este es un muy raro convención, pero somos 122 00:07:01,750 --> 00:07:05,800 vamos a ver por qué Apple quería hacerlo muy rápidamente. 123 00:07:05,800 --> 00:07:10,530 Entonces, ¿cómo se llama a la función? 124 00:07:10,530 --> 00:07:15,520 Llamar a una función en el objetivo C es también diferente de C. 125 00:07:15,520 --> 00:07:18,170 >> En realidad, llamar a un función en Objective C 126 00:07:18,170 --> 00:07:21,030 es más como si estuvieras hablando con alguien. 127 00:07:21,030 --> 00:07:27,030 Aquí tenemos uno mismo, lo que se llama un objeto. 128 00:07:27,030 --> 00:07:33,830 Básicamente, se está diciendo la objetar auto que decir "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Así es como se llama a la función. 130 00:07:36,830 --> 00:07:41,690 Un objeto y un nombre de método se combinan entre sí. 131 00:07:41,690 --> 00:07:49,600 Y aquí es donde la extensión extraño por nombre del método realmente entra en juego. 132 00:07:49,600 --> 00:07:52,150 >> Veamos el segundo ejemplo. 133 00:07:52,150 --> 00:07:56,780 Nos acabamos de definir un método llamado addInt con bla, bla, bla. 134 00:07:56,780 --> 00:08:00,066 Así que en este caso cuando usted está llamando que [específico? mensaje?] que va 135 00:08:00,066 --> 00:08:02,035 para parecerse a sí mismo addInt: 10 con: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Suena como Inglés. 138 00:08:08,070 --> 00:08:11,980 Aunque la función declaración de la función es raro, 139 00:08:11,980 --> 00:08:15,600 el punto del objetivo de C patrón de declaración de método, 140 00:08:15,600 --> 00:08:18,830 es que cuando usted está llamando la función o método 141 00:08:18,830 --> 00:08:21,980 sonará como real Inglés. 142 00:08:21,980 --> 00:08:25,270 Así que es muy intuitiva una vez llegue a él. 143 00:08:25,270 --> 00:08:28,740 >> Especialmente en este caso, donde se puede básicamente 144 00:08:28,740 --> 00:08:33,010 ver que el nombre de la función es tipo de documentación de sí mismo. 145 00:08:33,010 --> 00:08:35,390 Usted no necesita ninguna más explicación para ver 146 00:08:35,390 --> 00:08:42,770 qué es exactamente lo que está sucediendo, lo que exactamente un parámetro haciendo. 147 00:08:42,770 --> 00:08:48,470 Más allá de eso, vamos a hablar un poco poco acerca de la programación orientada a objetos. 148 00:08:48,470 --> 00:08:52,160 Programación orientada a objetos es uno de la programación fundamental 149 00:08:52,160 --> 00:08:57,110 técnicas o patrones que se utilizado por Objective C. Objective C 150 00:08:57,110 --> 00:09:03,110 se llama Objective C, no C, por una buena razón. 151 00:09:03,110 --> 00:09:07,560 >> Así que antes de entrar en Sintaxis de C Objetivo, 152 00:09:07,560 --> 00:09:11,670 Vamos realmente ver rápidamente ¿qué es exactamente un objeto. 153 00:09:11,670 --> 00:09:15,480 Probablemente hemos hecho algo como objeto antes de que 154 00:09:15,480 --> 00:09:19,780 se llama la estructura cuando se está la aplicación de un árbol o una lista enlazada 155 00:09:19,780 --> 00:09:25,730 o [? tratar. ?] Por lo tanto, es básicamente como una estructura, 156 00:09:25,730 --> 00:09:28,560 pero es mucho más potente que eso. 157 00:09:28,560 --> 00:09:33,150 Un objeto tiene métodos y propiedades. 158 00:09:33,150 --> 00:09:35,310 Los métodos son básicamente funciones. 159 00:09:35,310 --> 00:09:39,480 Básicamente funciones que un específico para un determinado objeto. 160 00:09:39,480 --> 00:09:45,440 >> Y propiedades son básicamente los campo se especifica en la estructura. 161 00:09:45,440 --> 00:09:48,500 Así que para todos los objetos tenemos alguna propiedad 162 00:09:48,500 --> 00:09:53,160 que tiene algunas variables que son específicos para el objeto. 163 00:09:53,160 --> 00:09:57,170 Y tenemos algunas funciones que también son específicos para el objeto. 164 00:09:57,170 --> 00:10:01,180 Y las funciones se llaman métodos y las variables se denominan propiedades. 165 00:10:01,180 --> 00:10:03,190 Es sólo un nombre de fantasía. 166 00:10:03,190 --> 00:10:10,440 Mientras hecho, cada vista individual ves mientras abre una aplicación para iOS, 167 00:10:10,440 --> 00:10:17,720 digamos que Twitter o Facebook, cada vista única que se ve es un objeto. 168 00:10:17,720 --> 00:10:22,110 Y aunque toda la aplicación es un objeto para empezar. 169 00:10:22,110 --> 00:10:25,340 Concepto muy interesante. 170 00:10:25,340 --> 00:10:28,480 >> Y ¿por qué queremos objeto La programación orientada a? 171 00:10:28,480 --> 00:10:33,530 Así que usted puede imaginar que cuando se programa que se pone bastante complicado. 172 00:10:33,530 --> 00:10:36,400 Digamos que cuando estás la implementación de tablero de ajedrez, 173 00:10:36,400 --> 00:10:40,020 la lógica va a ser realmente complicado. 174 00:10:40,020 --> 00:10:43,280 Usted tiene 36 diferentes piezas, por lo que si usted 175 00:10:43,280 --> 00:10:48,370 quiero escribir lógica para todos 36 piezas diferentes en ajedrez, 176 00:10:48,370 --> 00:10:52,150 que va a haber una gran cantidad de diferentes funciones y variables. 177 00:10:52,150 --> 00:10:54,070 Es un montón de problemas. 178 00:10:54,070 --> 00:10:58,980 Y, probablemente, usted va a escribir una diferente método o función diferente 179 00:10:58,980 --> 00:11:03,950 para cada uno de la pieza a exactamente controlan lo que hacen. 180 00:11:03,950 --> 00:11:08,830 >> Pero si lo hace orientado a objetos programación, todas estas piezas 181 00:11:08,830 --> 00:11:12,440 puede ser abstraído en un solo objeto. 182 00:11:12,440 --> 00:11:16,111 Y el objeto tendrá algunos comunes propiedades, como qué tipo de pieza 183 00:11:16,111 --> 00:11:16,610 es? 184 00:11:16,610 --> 00:11:17,740 ¿De qué color es? 185 00:11:17,740 --> 00:11:19,480 ¿Cómo se puede mover? 186 00:11:19,480 --> 00:11:24,660 Y de esa manera usted tiene mucho simplificada de la lógica de la misma. 187 00:11:24,660 --> 00:11:28,480 Así que es sólo una manera realmente buena para hacer programas complicados, 188 00:11:28,480 --> 00:11:33,700 y la relación jerárquica dentro del programa, muy simple. 189 00:11:33,700 --> 00:11:36,800 Como vamos a ver por eso muy rápidamente cuando 190 00:11:36,800 --> 00:11:39,660 en realidad estamos haciendo programming-- cuando en realidad estamos 191 00:11:39,660 --> 00:11:42,830 haciendo un código S programación sesión posterior. 192 00:11:42,830 --> 00:11:48,120 >> Bueno, además de que, programación orientada a objetos 193 00:11:48,120 --> 00:11:50,030 es sólo un montón de diversión. 194 00:11:50,030 --> 00:11:51,990 Tienes que diseñar su propio objeto. 195 00:11:51,990 --> 00:11:56,080 Tienes que diseñar lo que hace que se vea como usted mismo. 196 00:11:56,080 --> 00:11:58,250 No hay una respuesta correcta a la misma. 197 00:11:58,250 --> 00:12:02,940 Y es totalmente interesante. 198 00:12:02,940 --> 00:12:07,270 Así que en la programación orientada a objetos, dos conceptos fundamentales 199 00:12:07,270 --> 00:12:10,130 será de clase e instancia. 200 00:12:10,130 --> 00:12:13,570 Una clase es básicamente una plantilla para el objeto. 201 00:12:13,570 --> 00:12:18,070 Y una instancia es básicamente un objeto específico. 202 00:12:18,070 --> 00:12:21,090 >> Digamos que usted está haciendo una cookie. 203 00:12:21,090 --> 00:12:24,800 En este caso, todos los galleta que realmente termina con 204 00:12:24,800 --> 00:12:27,310 va a ser un objeto. 205 00:12:27,310 --> 00:12:35,830 Pero el plato de galletas que se utiliza para hornear todas las cookies serán una clase. 206 00:12:35,830 --> 00:12:37,880 Una clase es básicamente una plantilla. 207 00:12:37,880 --> 00:12:46,170 Y la instancia será uno específica objeto creado de esa clase. 208 00:12:46,170 --> 00:12:49,970 >> Y se creará una instancia basado en la declaración de clase, 209 00:12:49,970 --> 00:12:56,760 como veremos en diapositivas posteriores. 210 00:12:56,760 --> 00:13:00,010 Así que vamos a hacer realidad una muy ejemplo rápido [inaudible]. 211 00:13:00,010 --> 00:13:04,280 Digamos que estamos declarando un objeto para un gato. 212 00:13:04,280 --> 00:13:07,930 El objeto debe tener-- la clase de gatos deben 213 00:13:07,930 --> 00:13:11,260 tener algunas propiedades y métodos. 214 00:13:11,260 --> 00:13:17,300 ¿Qué tipo de propiedades deberían los clase tener-- debe tener al gato? 215 00:13:17,300 --> 00:13:20,580 >> Por ejemplo, color, edad y raza, los 216 00:13:20,580 --> 00:13:24,440 será variables que son específicos de cada gato. 217 00:13:24,440 --> 00:13:27,790 Y esas son algunas de las cosas que utilizamos para describir un gato. 218 00:13:27,790 --> 00:13:31,880 ¿Qué tipo de método, o ¿qué puede hacer un gato? 219 00:13:31,880 --> 00:13:37,160 Algunos ejemplos rápidos serían persecución ratón, comer pescado o simplemente maullar. 220 00:13:37,160 --> 00:13:40,900 Esta es una muy rápida ejemplo de la clase de gato. 221 00:13:40,900 --> 00:13:46,920 Y una muy específica objeto gato será un gato 222 00:13:46,920 --> 00:13:50,930 donde especificamos el color, la edad y la raza. 223 00:13:50,930 --> 00:13:53,790 >> En ese caso, nuestro objeto es ya una clase no más. 224 00:13:53,790 --> 00:14:00,010 Copiamos la plantilla de la clase y especificamos cada información específica 225 00:14:00,010 --> 00:14:04,510 a ese objeto específico para que sea independiente. 226 00:14:04,510 --> 00:14:09,350 Y cuando usted está llamando un método dentro de un objeto, 227 00:14:09,350 --> 00:14:16,640 que acaba de llamar maullido en el objeto, que es el gato que acaba de crear. 228 00:14:16,640 --> 00:14:19,020 >> Probablemente va a imprimir algo así como "¡Hola Mundo! 229 00:14:19,020 --> 00:14:20,000 Maullar. " 230 00:14:20,000 --> 00:14:22,110 Bastante lindo. 231 00:14:22,110 --> 00:14:24,500 Muy bien, vamos a entrar en algunos detalles 232 00:14:24,500 --> 00:14:30,650 y ver lo que hace exactamente eso traducir en ser la programación iOS. 233 00:14:30,650 --> 00:14:36,500 Así que en iOS programación cada clase se llevará a cabo en dos archivos. 234 00:14:36,500 --> 00:14:41,420 Un archivo está aquí, que se llama la interfaz. 235 00:14:41,420 --> 00:14:45,300 Otro archivo está aquí, que se llama aplicación. 236 00:14:45,300 --> 00:14:48,890 >> Normalmente la interfaz de tendrá extension.h 237 00:14:48,890 --> 00:14:51,740 como hemos visto en las bibliotecas C. 238 00:14:51,740 --> 00:14:56,340 Y archivo de implementación es va a tener extension.n. 239 00:14:56,340 --> 00:14:57,260 Es un poco raro. 240 00:14:57,260 --> 00:15:01,270 Pero .n significa en realidad .c, no hay diferencia fundamental entre los 241 00:15:01,270 --> 00:15:02,100 dos. 242 00:15:02,100 --> 00:15:06,650 Así que en este caso, podemos ver que estamos declarando interfaz, Cat: objeto. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Eso se llama herencia. 245 00:15:13,760 --> 00:15:19,170 Básicamente estamos heredando el clase gato de la clase de objeto. 246 00:15:19,170 --> 00:15:24,790 Así que cada propiedad y un método que fue definido previamente en la clase de objeto 247 00:15:24,790 --> 00:15:28,560 se definirá automáticamente en una clase de gato también. 248 00:15:28,560 --> 00:15:35,900 >> Además de eso, definimos color, raza y edad, tres variables. 249 00:15:35,900 --> 00:15:39,360 Que en realidad se parece algo que has hecho antes. 250 00:15:39,360 --> 00:15:41,770 Parece estructura. 251 00:15:41,770 --> 00:15:44,950 Eso es básicamente la sintaxis para la declaración struct, 252 00:15:44,950 --> 00:15:47,710 y que es totalmente correcto. 253 00:15:47,710 --> 00:15:51,825 Y como he mencionado antes, la diferencia una estructura 254 00:15:51,825 --> 00:15:53,960 y un objeto, una de las diferencias fundamentales 255 00:15:53,960 --> 00:15:59,080 es que un objeto tiene método, mientras que un struct sólo tiene variables. 256 00:15:59,080 --> 00:16:03,450 Así que además de las propiedades o las variables que hemos creado para el objeto, 257 00:16:03,450 --> 00:16:05,700 especificamos algún método. 258 00:16:05,700 --> 00:16:09,720 >> Digamos que tenemos aquí dos métodos, uno es el maullido, 259 00:16:09,720 --> 00:16:12,460 otra es ratón persecución. 260 00:16:12,460 --> 00:16:18,600 Probablemente Queremos estar pasando un parámetro basado en nuestro método anterior 261 00:16:18,600 --> 00:16:20,440 modelo de declaración. 262 00:16:20,440 --> 00:16:22,160 Es posible que desee estar pasando un ratón. 263 00:16:22,160 --> 00:16:25,180 Y es probable que desee para devolver un significante bool 264 00:16:25,180 --> 00:16:30,010 si su gato tiene éxito cogido el ratón o no. 265 00:16:30,010 --> 00:16:33,170 >> Esta es la interfaz, pero nosotros sí ver que la interfaz de realidad 266 00:16:33,170 --> 00:16:35,150 no hace nada. 267 00:16:35,150 --> 00:16:40,800 Simplemente le dice a un programa lo exists-- lo que existe en la clase de gato. 268 00:16:40,800 --> 00:16:43,640 Así que para que la programa para hacer algo, 269 00:16:43,640 --> 00:16:46,680 tenemos que tener los archivos de implementación. 270 00:16:46,680 --> 00:16:51,940 Así que aquí, lo primero que hacemos es obviamente, importamos la interfaz. 271 00:16:51,940 --> 00:16:56,470 Después de que importamos la interfaz, definimos el método. 272 00:16:56,470 --> 00:17:00,150 >> Digamos aquí miau sería simplemente imprimir 273 00:17:00,150 --> 00:17:01,740 "Hola Mundo!" a la consola. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Y después de la aplicación archivo, estamos más o menos hecho. 276 00:17:08,460 --> 00:17:14,530 Esto es básicamente una clase declaración de una clase. 277 00:17:14,530 --> 00:17:19,970 Así que ahora la pregunta es, ¿cómo se declara una variable? 278 00:17:19,970 --> 00:17:26,880 La forma de utilizar una clase para crear un objeto en Objective C está escrito aquí. 279 00:17:26,880 --> 00:17:30,730 >> Primero se especifica que Esto es un puntero gato, 280 00:17:30,730 --> 00:17:38,700 porque todos los objetos en Objective C finalmente se implementa como un puntero. 281 00:17:38,700 --> 00:17:46,210 Y se llama a la clase, llamarlos como alloc, que es básicamente malloc, 282 00:17:46,210 --> 00:17:51,220 diciendo al sistema operativo que necesita algo de espacio de memoria para este objeto. 283 00:17:51,220 --> 00:17:55,780 Después de que usted tiene un objeto ya y sólo inicialice. 284 00:17:55,780 --> 00:17:56,780 Esto es sólo convención. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Sé que es es un poco raro, pero esto es realmente cómo Apple hace cosas. 287 00:18:04,410 --> 00:18:07,130 >> Asignación de propiedades se en realidad bastante sencillo. 288 00:18:07,130 --> 00:18:09,250 Es muy similar a lo que está haciendo cuando 289 00:18:09,250 --> 00:18:13,780 estás asignando algunos específicos campo en el interior de la estructura. 290 00:18:13,780 --> 00:18:16,830 Sólo tienes la variable nombre, el nombre de la propiedad, 291 00:18:16,830 --> 00:18:20,140 y asignar un valor específico a la misma. 292 00:18:20,140 --> 00:18:24,120 Y llamar a un método es muy similar. 293 00:18:24,120 --> 00:18:29,080 El llamar a un método es básicamente lo que hablo 294 00:18:29,080 --> 00:18:32,390 para llamar a cualquier método en Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Estás pasando un objeto, en este caso va a ser Mycat, 296 00:18:36,660 --> 00:18:42,490 y estás pasando el nombre del método. 297 00:18:42,490 --> 00:18:47,130 Como si usted está hablando con el objeto, Mycat, que usted debe maullar. 298 00:18:47,130 --> 00:18:48,570 Es bastante interesante. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Después de eso, hay una patrón de diseño más esencial 301 00:18:55,680 --> 00:18:59,940 que tenemos que hablar antes de llegar al código real S. 302 00:18:59,940 --> 00:19:03,300 Ese patrón de diseño se llama evento impulsado programación. 303 00:19:03,300 --> 00:19:09,660 Esto es también, probablemente, uno de los más ideas fundamentales en la programación iOS. 304 00:19:09,660 --> 00:19:14,410 >> Así que probablemente no sabes qué es exactamente es la programación orientada a eventos, 305 00:19:14,410 --> 00:19:16,990 pero en realidad no es que da miedo. 306 00:19:16,990 --> 00:19:20,400 Pues en efecto, usted tiene ha hecho eso antes. 307 00:19:20,400 --> 00:19:24,894 Esta es una de las líneas de lo que has ya se ha escrito en los últimos [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 "Click", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Al llamar a esta línea son esencialmente diciendo la computadora 312 00:19:37,620 --> 00:19:42,650 que siempre que el evento llamado "Clic" que sucede en el marcador, 313 00:19:42,650 --> 00:19:43,630 utilizar dicha función. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Esto es muy diferente de lo que haces en mario.c. 316 00:19:50,950 --> 00:19:56,670 En mario.c que acaba de ejecutar el programa una vez, le da una salida, 317 00:19:56,670 --> 00:19:58,590 y ya está. 318 00:19:58,590 --> 00:20:02,590 Son algo así como uno los programas de tiro. 319 00:20:02,590 --> 00:20:05,830 Programas por eventos son muy, muy diferente. 320 00:20:05,830 --> 00:20:10,230 Imaginemos, si Facebook es un uno programa de tiro que no es muy bueno. 321 00:20:10,230 --> 00:20:13,750 Usted acaba de ir a Facebook una vez que se hace. 322 00:20:13,750 --> 00:20:16,700 Se le da una salida y nunca lo recuperó. 323 00:20:16,700 --> 00:20:19,380 Nunca tienes nada más. 324 00:20:19,380 --> 00:20:23,880 >> Así que aquí, sobre todo el patrón que utilizamos es 325 00:20:23,880 --> 00:20:26,940 evento impulsado, de manera que cada función 326 00:20:26,940 --> 00:20:31,480 ser atrapado en base a lo evento ha ocurrido. 327 00:20:31,480 --> 00:20:34,670 Por ejemplo, si tenemos un botón y especificamos 328 00:20:34,670 --> 00:20:39,870 que cada vez que se hace clic en ese botón, llame a la función llamada "Hello World!" 329 00:20:39,870 --> 00:20:47,810 De esa manera podemos realmente gestionar la lógica de funcionamiento 330 00:20:47,810 --> 00:20:50,560 fluir en una forma muy flexible. 331 00:20:50,560 --> 00:20:55,840 El usuario puede hacer o llamar a una función que ya ha sido llamado. 332 00:20:55,840 --> 00:20:59,900 Es completamente basado en lo que hacen los usuarios. 333 00:20:59,900 --> 00:21:04,080 >> Así que podemos ver que se trata de en realidad mucho mejor que mario.c. 334 00:21:04,080 --> 00:21:07,190 Y una buena noticia es que es en realidad no es un concepto nuevo. 335 00:21:07,190 --> 00:21:12,140 Ustedes ya lo han hecho que en el último conjunto de problemas. 336 00:21:12,140 --> 00:21:16,640 Así que en Objective C hay tres diagramas diferentes 337 00:21:16,640 --> 00:21:19,030 para la programación orientada a eventos. 338 00:21:19,030 --> 00:21:21,970 El primer diagrama es llamada acción de destino, 339 00:21:21,970 --> 00:21:26,990 donde se enlaza un botón de prensa con alguna función. 340 00:21:26,990 --> 00:21:31,590 Digamos que, al hacer clic en algún botón, llamar alguna función. 341 00:21:31,590 --> 00:21:33,620 Esta es la acción objetivo muy simple. 342 00:21:33,620 --> 00:21:35,580 >> El segundo es en realidad el más difícil, 343 00:21:35,580 --> 00:21:38,450 se llama delegación en el protocolo. 344 00:21:38,450 --> 00:21:41,800 Vamos a explicar que en gran detalle más adelante. 345 00:21:41,800 --> 00:21:44,420 Y la tercera forma es la notificación. 346 00:21:44,420 --> 00:21:46,770 En realidad, esto no es muy importante en la medida de 347 00:21:46,770 --> 00:21:50,920 que a nosotros respecta, porque la oportunidad que usted va a utilizar la notificación 348 00:21:50,920 --> 00:21:53,310 en su proyecto final es bastante bajo. 349 00:21:53,310 --> 00:21:56,440 Así que vamos a saltar esa parte. 350 00:21:56,440 --> 00:21:59,460 >> Y vamos a bucear en la delegación en el protocolo. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Entonces, ¿qué es exactamente un protocolo? 353 00:22:04,470 --> 00:22:06,450 O ¿qué es exactamente una delegación? 354 00:22:06,450 --> 00:22:09,670 Vamos a hablar de protocolo para empezar. 355 00:22:09,670 --> 00:22:13,360 Los protocolos son nada más que hechos. 356 00:22:13,360 --> 00:22:19,230 Pero estos eventos se dan a usted por Apple para empezar. 357 00:22:19,230 --> 00:22:22,640 Por ejemplo, yo no soy completamente seguro de cómo muchos de ustedes 358 00:22:22,640 --> 00:22:27,930 chicos uso original de Apple aplicación de correo o de contacto, 359 00:22:27,930 --> 00:22:32,180 pero cada vez que desplazarse por la mesa y pulsar la celda específica 360 00:22:32,180 --> 00:22:36,130 sobre la mesa, que es un evento. 361 00:22:36,130 --> 00:22:38,330 >> Y si usted quiere hacer ese evento por sí mismo, 362 00:22:38,330 --> 00:22:40,410 en realidad es un poco difícil. 363 00:22:40,410 --> 00:22:44,880 Así que Apple ha dado que, incluso a usted por lo que sólo puede usar directamente 364 00:22:44,880 --> 00:22:49,610 el evento para hacer algo por su cuenta. 365 00:22:49,610 --> 00:22:52,980 Los protocolos son en realidad muy, muy ampliamente utilizado 366 00:22:52,980 --> 00:22:58,320 en Objective C. Bueno en De hecho, cada aplicación individual 367 00:22:58,320 --> 00:23:00,870 tiene algo atrapado aplicación delegado. 368 00:23:00,870 --> 00:23:06,330 Dentro de delicada es la totalidad de la protocolos para la carga de la aplicación. 369 00:23:06,330 --> 00:23:12,470 >> Digamos que hay un evento de aplicación hizo carga. 370 00:23:12,470 --> 00:23:18,200 Así que lo que debe suceder después de haber creó una aplicación, después de abrir la aplicación, 371 00:23:18,200 --> 00:23:22,630 después de cerrar la aplicación, o después pones el iPhone a dormir. 372 00:23:22,630 --> 00:23:27,480 Estos son todos los eventos que tiene ya ha dado a usted. 373 00:23:27,480 --> 00:23:34,730 Y originalmente dentro de estas partículas no habrá aplicación. 374 00:23:34,730 --> 00:23:39,750 Apple acaba te dijo que esta función pasará cuando ocurre algún evento, 375 00:23:39,750 --> 00:23:44,380 sino lo que haces con eso función es totalmente suya. 376 00:23:44,380 --> 00:23:49,290 >> La delegación es básicamente diciendo la clase 377 00:23:49,290 --> 00:23:53,060 que usted debe manejar estos protocolos. 378 00:23:53,060 --> 00:23:55,340 Es un poco confuso, pero será 379 00:23:55,340 --> 00:23:59,380 mucho más clara cuando hacemos los códigos de s en la acción. 380 00:23:59,380 --> 00:24:04,760 Delegación en el protocolo es en realidad un mecanismo muy sólido en el sentido 381 00:24:04,760 --> 00:24:08,160 que si hacemos delegación a una clase específica, 382 00:24:08,160 --> 00:24:12,400 podemos manejar esencialmente todo tipo de eventos 383 00:24:12,400 --> 00:24:17,040 utilizando cualquier clase que tenemos, herramienta muy conveniente. 384 00:24:17,040 --> 00:24:21,530 >> Así que un ejemplo rápido para delegación en el protocolo 385 00:24:21,530 --> 00:24:24,120 será lo que acabo de hablar. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Este protocolo específicamente se llama tableview [inaudible] seleccionar papel 388 00:24:30,890 --> 00:24:35,480 en [? índice?] [? pasado. ?] Así que este una evento que se llamó cuando 389 00:24:35,480 --> 00:24:39,710 realmente toque en una específica célula en su tableview, 390 00:24:39,710 --> 00:24:43,570 vamos a decir en tu correo o en su aplicación de contactos. 391 00:24:43,570 --> 00:24:48,180 >> Dentro de una función no había originalmente no hacer nada. 392 00:24:48,180 --> 00:24:51,950 La función no hacer nada por defecto. 393 00:24:51,950 --> 00:24:55,540 Pero usted puede especificar lo que hace la función, 394 00:24:55,540 --> 00:24:59,610 teniendo en cuenta lo que quiere de su aplicación. 395 00:24:59,610 --> 00:25:01,610 Herramienta muy conveniente. 396 00:25:01,610 --> 00:25:06,840 Y con todo eso Dicho esto, yo, básicamente, 397 00:25:06,840 --> 00:25:11,430 cubrir una sintaxis muy básica y concepto fundamental para el objetivo C 398 00:25:11,430 --> 00:25:15,860 programación, y podemos hacer algo de código s. 399 00:25:15,860 --> 00:25:17,980 Mucho más emocionante. 400 00:25:17,980 --> 00:25:21,070 Así código s es en realidad un poco abrumador 401 00:25:21,070 --> 00:25:23,330 cuando se abre por primera vez. 402 00:25:23,330 --> 00:25:26,640 >> Una nota rápida, así que si usted querer hacer el desarrollo de iOS, 403 00:25:26,640 --> 00:25:29,630 Yo recomendaría altamente tienes un Mac. 404 00:25:29,630 --> 00:25:33,930 Porque hacer el desarrollo en iOS Windows es muy, muy difícil. 405 00:25:33,930 --> 00:25:37,560 Es factible, pero es muy difícil. 406 00:25:37,560 --> 00:25:40,610 Y definitivamente hace que no desea utilizar g de edición. 407 00:25:40,610 --> 00:25:47,950 Así que en el código de s que tenemos varias áreas diferentes. 408 00:25:47,950 --> 00:25:53,050 La primera vez que abras s código verá un área de navegación, 409 00:25:53,050 --> 00:25:57,470 que básicamente muestra que todo el los archivos que están en el proyecto actual. 410 00:25:57,470 --> 00:26:03,590 >> Tiene un área de la barra de herramientas, que es, básicamente, la gestión de puntos de vista, 411 00:26:03,590 --> 00:26:08,570 o alguna pequeña rápida herramientas sobre sí mismo código s. 412 00:26:08,570 --> 00:26:11,140 Y este es el área real editor. 413 00:26:11,140 --> 00:26:15,900 Esta zona es muy similar g editar, pero mucho mejor que g edición. 414 00:26:15,900 --> 00:26:21,150 Y en esta área de la derecha, es llamado el área de utilidad. 415 00:26:21,150 --> 00:26:27,170 El área se vuelve realmente útil cuando va a crear la interfaz o especificar 416 00:26:27,170 --> 00:26:30,070 algunas configuraciones rápidas para su aplicación. 417 00:26:30,070 --> 00:26:34,570 >> Y la zona final es la depuración. 418 00:26:34,570 --> 00:26:37,970 Esta área contiene la consola. 419 00:26:37,970 --> 00:26:43,170 Así que cuando usted dice printf, o NSLog en nuestro caso, 420 00:26:43,170 --> 00:26:47,330 todos los resultados son va a imprimir aquí. 421 00:26:47,330 --> 00:26:48,260 Bien? 422 00:26:48,260 --> 00:26:52,090 Supongo que podemos hacer muy rápido un ejemplo para la programación iOS. 423 00:26:52,090 --> 00:26:54,220 Y seamos realmente abren s código. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Así que cada vez que usted abre s código, es va a aparecer algo así. 426 00:27:01,346 --> 00:27:03,220 Se va a pedir que qué es lo que quieres hacer? 427 00:27:03,220 --> 00:27:06,830 ¿Quieres empezar algo aleatoria, un parque infantil, básicamente, que 428 00:27:06,830 --> 00:27:11,250 sólo puede probar código sin realmente comprometerse a cualquier aplicación. 429 00:27:11,250 --> 00:27:13,020 >> ¿Quieres crear un nuevo proyecto? 430 00:27:13,020 --> 00:27:16,660 ¿O es que quiere continuar trabajando en el proyecto existente? 431 00:27:16,660 --> 00:27:20,270 En nuestro caso vamos para crear un nuevo proyecto. 432 00:27:20,270 --> 00:27:22,980 Así que es muy agradable, s código de hecho ya tiene 433 00:27:22,980 --> 00:27:26,820 Ha dado algunas plantillas para la creación de objetos. 434 00:27:26,820 --> 00:27:32,680 Si usted quiere hacer un juego, el código S en realidad tiene una plantilla de juego para usted, 435 00:27:32,680 --> 00:27:36,890 tiene aplicaciones basados ​​en páginas, aplicación basada ficha. 436 00:27:36,890 --> 00:27:39,280 En este caso, vamos hacer algo muy simple, 437 00:27:39,280 --> 00:27:43,230 y vamos a utilizar un aplicación de vista individual. 438 00:27:43,230 --> 00:27:48,270 >> Después de eso, lo que usted quiere llamar su producto, y ¿cuál es su nombre, 439 00:27:48,270 --> 00:27:52,760 ¿cuál es su identificador, y ¿qué idioma que utilice. 440 00:27:52,760 --> 00:27:57,060 Aquí no queremos comprobar el uso de datos básicos. 441 00:27:57,060 --> 00:28:00,170 Datos Básicos es básicamente un databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Si lo hace de Datos Básicos, s código se va a definir 443 00:28:05,360 --> 00:28:07,710 mucho clases más complicadas para usted. 444 00:28:07,710 --> 00:28:12,740 Así que para mantener todo simple, estamos sólo va a prescindir de Datos Básicos 445 00:28:12,740 --> 00:28:15,290 ahora mismo. 446 00:28:15,290 --> 00:28:18,030 >> El problema que vamos a ser utilizando es que-- el problema 447 00:28:18,030 --> 00:28:23,770 vamos a estar creando es que nos básicamente desee importar Mario de C 448 00:28:23,770 --> 00:28:25,437 para una aplicación para iOS. 449 00:28:25,437 --> 00:28:26,645 Así que vamos a llamar a que Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Por supuesto que especifique lo que quiere poner en su proyecto. 452 00:28:34,880 --> 00:28:37,870 Y ahí vamos. 453 00:28:37,870 --> 00:28:41,390 >> Así que esto es un poco abrumadora, pero esto es en realidad 454 00:28:41,390 --> 00:28:43,540 lo que acabamos de ver en las diapositivas. 455 00:28:43,540 --> 00:28:49,710 Y la primera área que vemos en este momento es básicamente la configuración del proyecto. 456 00:28:49,710 --> 00:28:53,390 Así que todo lo que quieres hacer proyecto, ¿qué tipo de dispositivo, 457 00:28:53,390 --> 00:28:58,810 vamos a decir qué tipo de dispositivo ¿Quieres que tu aplicación para que aparezca en? 458 00:28:58,810 --> 00:29:01,280 ¿Es el iPhone, iPad o universal? 459 00:29:01,280 --> 00:29:04,660 Así que la orientación del dispositivo, todas estas cosas. 460 00:29:04,660 --> 00:29:08,490 No es muy importante, pero podría ser, pero esto 461 00:29:08,490 --> 00:29:11,050 es un lugar donde se configura su proyecto si en realidad 462 00:29:11,050 --> 00:29:15,180 desee implementar a la tienda de Apple. 463 00:29:15,180 --> 00:29:20,420 >> Muy bien, vamos a ver algo que está dentro de nuestro código. 464 00:29:20,420 --> 00:29:22,360 Vamos a pasar por el navegador de archivos. 465 00:29:22,360 --> 00:29:30,140 Y estos son todos los archivos que ya llegó con la plantilla, muy agradable. 466 00:29:30,140 --> 00:29:35,980 Así que cuando hacemos clic en uno de ellos esto es lo que parece. 467 00:29:35,980 --> 00:29:38,530 Muy similar a g edición. 468 00:29:38,530 --> 00:29:41,340 Pero usted puede ver que el resaltado de sintaxis es probablemente 469 00:29:41,340 --> 00:29:42,780 un poco más agradable. 470 00:29:42,780 --> 00:29:45,610 Y es en realidad mucho más poderoso que la edición g. 471 00:29:45,610 --> 00:29:49,970 Y usted puede completar auto un montón de cosas para ti, 472 00:29:49,970 --> 00:29:52,370 como veremos muy rápidamente. 473 00:29:52,370 --> 00:29:54,100 >> Vamos a abrir la zona de depuración también. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Muy bien, como podemos ver, la consola está aquí. 476 00:30:07,000 --> 00:30:13,840 Esto es lo que vas a ver dónde estás en printf o nsloging algo. 477 00:30:13,840 --> 00:30:17,155 Así que sin más preámbulos, vamos a realidad compilar la aplicación y ver qué pasa. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Una característica esencial para código de s, es que el código s 480 00:30:23,410 --> 00:30:25,850 viene con un simulador de iPhone. 481 00:30:25,850 --> 00:30:29,820 Así que usted no necesita tener un iPhone para tratar su proyecto, 482 00:30:29,820 --> 00:30:34,440 código de s puede simular que para que, como podemos ver en este momento. 483 00:30:34,440 --> 00:30:36,406 >> Es bastante agradable. 484 00:30:36,406 --> 00:30:38,640 Se trata de tomar un poco poco de tiempo para compilar 485 00:30:38,640 --> 00:30:43,040 y básicamente tenemos una aplicación vacía, 486 00:30:43,040 --> 00:30:44,640 que en realidad no hace nada. 487 00:30:44,640 --> 00:30:46,175 Pero compila. 488 00:30:46,175 --> 00:30:47,380 Es bastante impresionante. 489 00:30:47,380 --> 00:30:50,200 Es mucho mejor que C, ¿eh? 490 00:30:50,200 --> 00:30:52,130 Muy bien, entonces vamos a tratar de añadir algo. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Un archivo que es un poco raro aquí se llama storyboard. 493 00:31:02,650 --> 00:31:08,020 Esto es realmente un gran, característica impresionante para el código s. 494 00:31:08,020 --> 00:31:14,170 Debido a que en el código de s, en realidad se puede arrastrar y soltar elementos en la interfaz 495 00:31:14,170 --> 00:31:17,430 y se mostrará directamente hacia arriba. 496 00:31:17,430 --> 00:31:18,055 Vamos a intentarlo. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Dejamos caer una etiqueta aquí, "Hola Mundo !!!" 499 00:31:27,236 --> 00:31:29,740 Podemos centrar eso. 500 00:31:29,740 --> 00:31:30,970 Bastante fresco. 501 00:31:30,970 --> 00:31:33,915 Ahora vamos a correr esta simulación de parada. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Aquí tenemos "Hola Mundo !!!" 504 00:31:38,700 --> 00:31:40,810 Ni siquiera nos hacemos ningún tipo de codificación todavía. 505 00:31:40,810 --> 00:31:42,750 ¿Qué diablos está pasando? 506 00:31:42,750 --> 00:31:45,880 Esto es lo poderoso Interface Builder puede ser. 507 00:31:45,880 --> 00:31:48,030 Alguien llegó a decir que Probablemente usted puede apenas 508 00:31:48,030 --> 00:31:52,800 completar una aplicación sin escribir probablemente mil líneas de código 509 00:31:52,800 --> 00:31:54,820 apenas usando el Interface Builder. 510 00:31:54,820 --> 00:31:59,680 Pero es probable que no la mejor manera de hacerlo. 511 00:31:59,680 --> 00:32:01,670 >> Ahora vamos a realmente poner manos a la codificación. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Así que la estructura del archivo es realmente muy interesante 514 00:32:08,330 --> 00:32:15,610 porque, como usted puede ver, hay hay una función principal en cualquier lugar. 515 00:32:15,610 --> 00:32:17,466 ¿Ves? 516 00:32:17,466 --> 00:32:19,340 Como mencionamos antes, se puede ver que esta 517 00:32:19,340 --> 00:32:22,830 es un archivo de implementación para una clase específica. 518 00:32:22,830 --> 00:32:25,690 Pero no hay ninguna parte principal. 519 00:32:25,690 --> 00:32:27,490 Entonces, ¿dónde es el principal? 520 00:32:27,490 --> 00:32:31,970 En realidad, hay una principal, pero la principal es en realidad oculta de usted. 521 00:32:31,970 --> 00:32:34,560 La principal está aquí. 522 00:32:34,560 --> 00:32:37,120 Esto se ve muy familiar. 523 00:32:37,120 --> 00:32:41,000 >> Así que, básicamente, lo que iOS está haciendo dentro de main 524 00:32:41,000 --> 00:32:43,540 es que cada vez principal es llamada, que es básicamente 525 00:32:43,540 --> 00:32:49,000 cada vez que la aplicación se ejecuta, se crea un objeto llamado AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Como mencioné antes, la totalidad aplicación es en realidad un objeto por sí mismo. 528 00:32:57,350 --> 00:33:02,270 Así de esta manera, básicamente el iOS está diciendo al compilador 529 00:33:02,270 --> 00:33:05,540 que bien, yo voy a crear un producto llamado AppDelegate, 530 00:33:05,540 --> 00:33:07,620 y que va a ser mi aplicación. 531 00:33:07,620 --> 00:33:09,640 Así que hay que ir a través de ese AppDelegate 532 00:33:09,640 --> 00:33:12,040 y ver lo que está haciendo ese tipo. 533 00:33:12,040 --> 00:33:14,850 Mi trabajo está hecho para mí. 534 00:33:14,850 --> 00:33:22,070 >> Y en AppDelegate se puede ver que hay algunas funciones realmente extraños, 535 00:33:22,070 --> 00:33:25,290 bueno, en realidad métodos, que Apple ya le ha dado. 536 00:33:25,290 --> 00:33:27,464 Qué son éstos? 537 00:33:27,464 --> 00:33:31,010 Estas son en realidad sólo protocolos que yo estaba hablando. 538 00:33:31,010 --> 00:33:35,670 Así que estos son eventos que Apple te ha dado para empezar. 539 00:33:35,670 --> 00:33:38,050 No hay nada en algunos de las funciones en este momento, 540 00:33:38,050 --> 00:33:40,820 pero si queremos inicializar algo para nuestra aplicación 541 00:33:40,820 --> 00:33:46,140 antes de entrar en mostrar cualquier punto de vista, lo hacemos aquí. 542 00:33:46,140 --> 00:33:51,150 >> Usted sólo puede leer el nombre y supongo el evento es en realidad muy clara. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Así que ahora principal ha creado un objeto para AppDelegate. 545 00:33:58,350 --> 00:34:05,220 ¿Y qué AppDelegate va a hacer es en realidad también se oculta a usted. 546 00:34:05,220 --> 00:34:09,250 El AppDelegate va a empezar cargar el stock de ViewController. 547 00:34:09,250 --> 00:34:13,170 Así que básicamente va a empezar cargando todas las vistas que tienes 548 00:34:13,170 --> 00:34:17,500 y simplemente hacer la vista basado en la jerarquía. 549 00:34:17,500 --> 00:34:21,280 >> Así que en este caso sólo tenemos un punto de vista, que es aquí. 550 00:34:21,280 --> 00:34:25,060 Así que esa es la única vista eso va a ser llamado. 551 00:34:25,060 --> 00:34:28,159 La lógica ViewController está aquí. 552 00:34:28,159 --> 00:34:32,159 Este es el código que realmente controla la vista que acabamos de ver. 553 00:34:32,159 --> 00:34:33,679 Muy bien, vamos a hacer algo aquí. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Así viewDidLoad suena como un evento, cuando en realidad esto es también un delegado, 556 00:34:50,560 --> 00:34:52,500 esto también es un protocolo. 557 00:34:52,500 --> 00:34:56,350 >> Así que sea cual sea el punto de vista se ha cargado, todo dentro de la función 558 00:34:56,350 --> 00:34:57,920 será llamado. 559 00:34:57,920 --> 00:35:02,840 En este caso debemos ver "Hola Tianyu! "Si ejecuta el programa. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Se está haciendo un poco lento compilar archivos de storyboard. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Bueno de hecho, sí vemos una salida para él. 564 00:35:18,190 --> 00:35:20,720 Es una pasada. 565 00:35:20,720 --> 00:35:22,000 Ahora vamos a hacer realidad Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Voy a definir el funcionar muy rápidamente. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: resultados (int) de nivel. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Muy bien, esto es en realidad la increíble característica de autocompletado de código s. 572 00:36:06,410 --> 00:36:10,680 Así que cuando usted escribe para escribir y entrar, que ya ha renunciado a la plantilla 573 00:36:10,680 --> 00:36:12,325 para usted, que es bastante guay. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Eso debería mirar realmente familiar para ustedes. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Lo sentimos, esa es mi culpa. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Muy bien, fresco. 580 00:37:18,120 --> 00:37:22,710 Esa lógica debería ser muy familiar a ustedes, especialmente justo Mario. 581 00:37:22,710 --> 00:37:26,140 >> Pero ahora vamos a imprimir en la consola cada vez, 582 00:37:26,140 --> 00:37:29,280 porque queremos mantener de alguna manera pista de lo que estamos imprimiendo. 583 00:37:29,280 --> 00:37:31,810 Vamos a utilizar el los resultados de alguna manera más tarde, 584 00:37:31,810 --> 00:37:35,010 para mostrar la impresión fuera resultado al usuario. 585 00:37:35,010 --> 00:37:37,730 Así que en vez sólo somos nslogging todo, 586 00:37:37,730 --> 00:37:42,410 que estamos almacenando todo en consecuencia llamada a la función, 587 00:37:42,410 --> 00:37:44,070 pero la lógica es exactamente el mismo. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Después de que terminemos, nos sólo imprimir los resultados. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Y aquí en lugar de imprimir mi nombre, vamos a llamar a una función. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Vamos a ver qué pasa. 594 00:38:18,090 --> 00:38:21,240 Vaya, obviamente. 595 00:38:21,240 --> 00:38:24,320 Tenemos una bonita pequeña pirámide aquí. 596 00:38:24,320 --> 00:38:28,370 Esto es, básicamente, C, sólo somos manipulando donde se llama a una función 597 00:38:28,370 --> 00:38:30,010 y cómo no una función similar. 598 00:38:30,010 --> 00:38:31,560 No hay nada diferente. 599 00:38:31,560 --> 00:38:34,040 Pero esto es en realidad no muy emocionante aquí, 600 00:38:34,040 --> 00:38:37,500 porque no estamos viendo nada de la aplicación para el iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Así que si usted realmente tiene un iPhone app-- si usted realmente tiene Mario iOS derecho 602 00:38:42,120 --> 00:38:45,080 Ahora, usted no va para ver todo lo que 603 00:38:45,080 --> 00:38:49,450 tiene algo que ver con Mario porque todas esas salidas en una consola 604 00:38:49,450 --> 00:38:51,620 se ocultan de un usuario. 605 00:38:51,620 --> 00:38:53,850 Esto es lo que se ve, que es "Hola Mundo !!!" 606 00:38:53,850 --> 00:38:55,720 No es bueno. 607 00:38:55,720 --> 00:39:03,090 Ahora vamos a tratar de hacer que el usuario vea qué es exactamente lo que estamos imprimiendo. 608 00:39:03,090 --> 00:39:06,000 Así que no necesitamos para etiquetar más. 609 00:39:06,000 --> 00:39:09,800 Vamos a tratar de averiguar algo otra cosa que pueda ser útil. 610 00:39:09,800 --> 00:39:12,140 >> En realidad, hay una elemento que se llama 611 00:39:12,140 --> 00:39:16,460 campo de texto, lo que podría ser muy útil para nosotros. 612 00:39:16,460 --> 00:39:19,880 Básicamente muestra una región de texto que se pueden editar. 613 00:39:19,880 --> 00:39:22,320 Así que parece realmente útil. 614 00:39:22,320 --> 00:39:23,810 Ahora vamos a arrástrelo y suéltelo. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, tenemos una vista de texto en nuestra opinión, realmente de lujo. 617 00:39:32,670 --> 00:39:35,430 Eso es un poco demasiado grande. 618 00:39:35,430 --> 00:39:38,150 Vamos a hacerlo más pequeño. 619 00:39:38,150 --> 00:39:40,290 Póngalo en el centro. 620 00:39:40,290 --> 00:39:43,760 Hacerla más pequeña también. 621 00:39:43,760 --> 00:39:50,110 >> Ahora tenemos una vista de texto, que pudimos puede utilizar para mostrar nuestro resultado final. 622 00:39:50,110 --> 00:39:52,860 Pero en este momento es definitivamente no va a funcionar 623 00:39:52,860 --> 00:39:56,970 porque hay no-- la ViewController acabamos 624 00:39:56,970 --> 00:40:03,010 definido no sabe que hay una vista de texto que hay. 625 00:40:03,010 --> 00:40:06,550 Así que tenemos que de alguna manera vincular la vista de texto que acabamos de 626 00:40:06,550 --> 00:40:11,660 creado con la clase que ya ha venido con nosotros. 627 00:40:11,660 --> 00:40:14,860 >> La forma de hacerlo es realmente realmente mágico. 628 00:40:14,860 --> 00:40:18,190 Pues abre storyboard. 629 00:40:18,190 --> 00:40:22,220 Hay una especial [inaudible] llamado [? asistente?] [inaudible]. 630 00:40:22,220 --> 00:40:25,190 Al hacer clic en eso, es va a abrir dos archivos. 631 00:40:25,190 --> 00:40:29,425 Una de ellas es una clase y la otra es una vista correspondiente para ello. 632 00:40:29,425 --> 00:40:31,920 Es muy, muy útil. 633 00:40:31,920 --> 00:40:35,950 Y vamos a pasa por el archivo .h. 634 00:40:35,950 --> 00:40:39,110 De control, esto es [inaudible] lógica. 635 00:40:39,110 --> 00:40:47,280 Pulse Control y arrastre la vista de texto en la declaración. 636 00:40:47,280 --> 00:40:48,780 Vamos a llamar a ese outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Conecte. 639 00:40:53,670 --> 00:40:59,420 Así que aquí hemos declarado una nueva propiedad para nuestra clase ViewController. 640 00:40:59,420 --> 00:41:02,300 Y la nueva propiedad es sólo la vista de texto 641 00:41:02,300 --> 00:41:05,000 hemos creado en el edificio de la interfaz. 642 00:41:05,000 --> 00:41:07,990 Así que de esa manera pudiéramos el acceso de todos los datos 643 00:41:07,990 --> 00:41:13,630 y manipular todo lo que está en el interior la vista de salida, que es impresionante. 644 00:41:13,630 --> 00:41:19,260 >> Así que en nuestro código real, vamos a hacer algo con él. 645 00:41:19,260 --> 00:41:23,810 Así que esta vez cuando somos como impresión el resultado final de Mario, 646 00:41:23,810 --> 00:41:28,020 estamos en no registrar nada. 647 00:41:28,020 --> 00:41:30,080 Quiero decir que podíamos mantener la declaración de registro. 648 00:41:30,080 --> 00:41:41,490 Además de eso, enviar la lectura que acabamos de 649 00:41:41,490 --> 00:41:47,622 creado a la vista de salida, la cual es una interfaz de usuario TextView que acabamos de crear. 650 00:41:47,622 --> 00:41:48,746 Ahora vamos a ver qué pasa. 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 Tenemos una pirámide en la aplicación en este momento. 654 00:41:59,130 --> 00:42:06,720 >> Así el usuario puede ver nuestra producción porque hemos copiado la salida de nuestro código 655 00:42:06,720 --> 00:42:08,045 a nuestra interfaz. 656 00:42:08,045 --> 00:42:10,950 Es bastante bueno. 657 00:42:10,950 --> 00:42:14,990 En realidad no es que emocionante porque nos can-- 658 00:42:14,990 --> 00:42:18,250 Toda la aplicación está haciendo es mostrando una pirámide para usted, 659 00:42:18,250 --> 00:42:20,520 y no hay nada que puedas hacer al respecto. 660 00:42:20,520 --> 00:42:22,330 No es particularmente emocionante. 661 00:42:22,330 --> 00:42:27,840 Así que ahora vamos a hacer un botón que despejará las vistas. 662 00:42:27,840 --> 00:42:30,290 Parece que un botón será útil. 663 00:42:30,290 --> 00:42:33,270 Arrastre y suelte. 664 00:42:33,270 --> 00:42:33,900 Botón uno. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Botón dos. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Así que cuando hacemos clic en la izquierda botón, la vista debe desaparecer. 669 00:42:52,052 --> 00:42:53,635 No debe haber nada en la pantalla. 670 00:42:53,635 --> 00:42:56,970 Y cuando hacemos clic en el botón derecho, Mario, 671 00:42:56,970 --> 00:42:59,740 la vista se va a aparecer de nuevo. 672 00:42:59,740 --> 00:43:05,510 Así de esta manera también hacemos el cosas mágicas, control y arrastre 673 00:43:05,510 --> 00:43:08,740 a la declaración de la clase en el asistente La directora del 674 00:43:08,740 --> 00:43:11,600 en el asistente de espectador. 675 00:43:11,600 --> 00:43:18,620 En este caso estamos especificando que eso debería ser una acción. 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 >> Así que aquí ya hemos creado una acción llamada clearMario, 679 00:43:26,830 --> 00:43:34,210 que es el método que se llama cada vez que pulsamos el botón de borrado. 680 00:43:34,210 --> 00:43:41,030 Así que en nuestra realidad código, vamos a poner el texto de salida y la vista de salida 681 00:43:41,030 --> 00:43:44,620 en nada, y de esa manera se parece ser clara. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Además de eso, vamos a crear otro método llamado runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh, lo siento, eso no debe ser una propiedad. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Muy bien, que debería ser una acción así. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Y cuando esa función es llamada, simplemente corremos Mario diez. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Esperemos que va a estar bien. 692 00:44:39,780 --> 00:44:41,120 ¿Se compilar? 693 00:44:41,120 --> 00:44:43,920 Sí. 694 00:44:43,920 --> 00:44:45,090 Ahora tenemos una visión. 695 00:44:45,090 --> 00:44:46,560 Tenemos una salida. 696 00:44:46,560 --> 00:44:50,040 Y vamos a ver qué pasa. 697 00:44:50,040 --> 00:44:52,590 Que se ha ido. 698 00:44:52,590 --> 00:44:54,500 Es volver de nuevo. 699 00:44:54,500 --> 00:44:57,620 Así que aquí hemos especificado qué tipo de función 700 00:44:57,620 --> 00:45:00,400 será llamado cuando tecleamos en algo, 701 00:45:00,400 --> 00:45:03,160 cuando presionamos un botón específico. 702 00:45:03,160 --> 00:45:07,890 Esta es básicamente la esquema de acción de destino 703 00:45:07,890 --> 00:45:12,510 para el evento impulsado programación en Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Además de eso, que no es muy emocionante 705 00:45:15,030 --> 00:45:19,810 porque no podemos realmente cambiar qué tan alto será la pirámide, 706 00:45:19,810 --> 00:45:23,640 así que probablemente queremos de alguna manera obtener una entrada del usuario 707 00:45:23,640 --> 00:45:29,490 y cambiar la altura de la pirámide basa en lo que la salida. 708 00:45:29,490 --> 00:45:32,900 Así que vamos a hacer eso. 709 00:45:32,900 --> 00:45:38,720 Así que esta vez cuando llamamos runMario, no nos limitamos a un llamado Mario directamente. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 El título de este uno. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegado. 714 00:46:23,700 --> 00:46:25,160 Esto es muy interesante. 715 00:46:25,160 --> 00:46:26,720 ¿Qué es un delegado? 716 00:46:26,720 --> 00:46:28,950 Me voy a poner uno mismo aquí. 717 00:46:28,950 --> 00:46:31,038 Y vamos a ver lo que significa eso más tarde. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Así que aquí hemos creado básicamente un instancia específica llama una alerta de UI 720 00:46:51,120 --> 00:46:52,210 punto de vista. 721 00:46:52,210 --> 00:46:54,440 Una vista de alerta interfaz de usuario es básicamente lo que quieras 722 00:46:54,440 --> 00:46:58,940 ver cada vez que algo pops y le pregunta para la entrada, 723 00:46:58,940 --> 00:47:03,080 como lo que va a pasar cuando usted está tratando para comprar algo en una tienda de aplicaciones. 724 00:47:03,080 --> 00:47:14,250 >> Además de eso, después de crearlo, sólo mostramos la alerta. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Muy bien, vamos a rápidamente prueba de la voluntad de que el trabajo o no. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Eso es muy cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Ahora vamos a crear una realidad campo de entrada para la alerta de la interfaz de usuario. 731 00:47:59,120 --> 00:48:01,170 Así es como lo hacemos. 732 00:48:01,170 --> 00:48:07,490 Y debemos tener un vista de entrada para la alerta. 733 00:48:07,490 --> 00:48:09,020 Muy fresco. 734 00:48:09,020 --> 00:48:12,330 Digamos 10. 735 00:48:12,330 --> 00:48:14,900 >> No está haciendo nada bien ahora porque la llamada realidad 736 00:48:14,900 --> 00:48:17,770 no cambió para ejecutar mario. 737 00:48:17,770 --> 00:48:23,470 Así que esto se ha convertido en un poco poco raro porque siempre 738 00:48:23,470 --> 00:48:30,790 pulsamos un botón de abajo, cada vez que pulse un botón en la vista de alerta, 739 00:48:30,790 --> 00:48:35,560 algo sucede, pero no sucede. 740 00:48:35,560 --> 00:48:37,220 ¿Cómo nos atrapamos eso? 741 00:48:37,220 --> 00:48:41,280 ¿Cómo sabemos que un usuario ha desestimado una vista de alertas 742 00:48:41,280 --> 00:48:45,630 y ya entrado en un número, porque en este momento nada está sucediendo realmente. 743 00:48:45,630 --> 00:48:50,450 >> Bueno, puede haber adivinado bien, delegación. 744 00:48:50,450 --> 00:48:55,440 Así que además de todo estas declaraciones, 745 00:48:55,440 --> 00:49:03,190 tenemos que añadir una nueva delegación a se llama IU alerta de delegado. 746 00:49:03,190 --> 00:49:06,440 Así que cada interacción o evento 747 00:49:06,440 --> 00:49:10,190 que vamos a tener con la vista alerta UI 748 00:49:10,190 --> 00:49:14,100 va a ser manejado por nuestra clase también. 749 00:49:14,100 --> 00:49:26,297 >> Así que además de eso, será alerta botón Ver Haz click en el índice. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Esto se alcanza. 752 00:49:37,730 --> 00:49:42,020 Así que en ese caso tenemos ya-- así que tenemos 753 00:49:42,020 --> 00:49:46,210 encontrado a cabo un protocolo que controlará el evento cuando 754 00:49:46,210 --> 00:49:51,320 hacemos clic en el botón Hecho en la vista de alerta. 755 00:49:51,320 --> 00:49:55,976 Así que cada vez que desestime el vista alerta, esto debe suceder. 756 00:49:55,976 --> 00:49:57,350 Permítanme pruebo muy rápidamente. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Bien hecho, hemos llegado aquí. 759 00:50:19,300 --> 00:50:22,210 >> Así que aquí, lo que no lo hará conseguir realmente es en realidad 760 00:50:22,210 --> 00:50:43,120 obtenemos el-- Así que queremos salir el texto que tenemos previamente 761 00:50:43,120 --> 00:50:45,350 ingresó en la vista de alerta. 762 00:50:45,350 --> 00:50:48,505 Y basado en texto, estamos va a mostrar Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Esto resulta muy rápidamente si realmente funciona o no. 765 00:50:55,480 --> 00:50:59,476 Así que en ese caso, si de entrada, digamos, 10, deberíamos ver 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Muy bien, tenemos un número aquí. 768 00:51:05,210 --> 00:51:06,470 Es bastante bueno. 769 00:51:06,470 --> 00:51:16,840 Ahora el último paso será ser: Así que la último paso que tenemos que hacer en este momento 770 00:51:16,840 --> 00:51:21,100 es sólo una llamada de Mario con nivel basado en la entrada 771 00:51:21,100 --> 00:51:23,270 que hemos puesto a la vista de alerta. 772 00:51:23,270 --> 00:51:26,920 Así que tenemos que convertir esta cadena en iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Desbordamiento estática es muy impresionante. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Y luego pues sólo llamamos auto valor marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Vamos a ver que va a realmente funciona o no. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Ya estamos dieron una pirámide. 781 00:52:01,550 --> 00:52:04,785 Vamos a tratar de cambiar la altura. 782 00:52:04,785 --> 00:52:06,530 Que realmente funciona. 783 00:52:06,530 --> 00:52:07,610 Es una pasada. 784 00:52:07,610 --> 00:52:10,420 Así que ahora usted puede simplemente introducir cualquier valor que desee. 785 00:52:10,420 --> 00:52:12,440 Digamos cuatro. 786 00:52:12,440 --> 00:52:14,260 Eso es bastante impresionante. 787 00:52:14,260 --> 00:52:17,090 Así que esto es básicamente un ejemplo muy rápido 788 00:52:17,090 --> 00:52:23,170 de cómo crear un proyecto en código de s y cómo cablear muy rápidamente 789 00:52:23,170 --> 00:52:26,220 algunos eventos y funciones muy simples. 790 00:52:26,220 --> 00:52:28,840 >> Así la fuente va para ser puesto en línea más tarde. 791 00:52:28,840 --> 00:52:33,400 Así que si usted está interesado en cómo funciona iOS Mario, 792 00:52:33,400 --> 00:52:38,360 Voy a poner exactamente lo mismo proyectos en el sitio web CS50 tarde. 793 00:52:38,360 --> 00:52:41,260 Básicamente estamos terminado con la verano, y antes de terminar 794 00:52:41,260 --> 00:52:45,190 Sólo quiero señalar a ustedes a algunos recursos realmente impresionantes que 795 00:52:45,190 --> 00:52:47,550 están disponibles en línea. 796 00:52:47,550 --> 00:52:52,270 >> Obviamente, la documentación de Apple va a ser muy útil. 797 00:52:52,270 --> 00:52:57,630 Pero además de eso, especialmente recomendar cuatro fuentes, escuela de código, 798 00:52:57,630 --> 00:53:02,120 casa del árbol, AppCoda y WWDC vídeos. 799 00:53:02,120 --> 00:53:07,270 Código del colegio y de la casa del árbol son dos sitios web Educadoras en línea, 800 00:53:07,270 --> 00:53:10,210 que se centran específicamente en ingeniería de software. 801 00:53:10,210 --> 00:53:16,930 Especialmente para la escuela código, que tienen muy buen tutorial sobre iOS. 802 00:53:16,930 --> 00:53:19,550 >> Ese es un ejemplo muy rápido para él. 803 00:53:19,550 --> 00:53:22,980 Ellos en realidad crean una realidad cute-- mira que poco iPhone lindo 804 00:53:22,980 --> 00:53:24,920 amigo de allá, que es bastante impresionante. 805 00:53:24,920 --> 00:53:31,010 Y la forma en que explica Objetivo Sintaxis de C es perfectamente clara. 806 00:53:31,010 --> 00:53:32,230 La casa del árbol es el mismo. 807 00:53:32,230 --> 00:53:34,660 Y AppCoda es un foro. 808 00:53:34,660 --> 00:53:38,130 En realidad es un blog que se ejecutó por un objetivo muy experimentado C 809 00:53:38,130 --> 00:53:39,120 programador. 810 00:53:39,120 --> 00:53:43,950 Y todos esos tutoriales en AppCoda son bastante corto y fácil de implementar, 811 00:53:43,950 --> 00:53:45,390 muy recomendable. 812 00:53:45,390 --> 00:53:47,700 >> Y si usted es un desarrollador, Definitivamente ir a ver 813 00:53:47,700 --> 00:53:55,660 cómo los videos WWDC donde se puede aprender sobre la última programación iOS 814 00:53:55,660 --> 00:53:58,250 técnicas, APIs y bibliotecas. 815 00:53:58,250 --> 00:54:02,850 Así que es más o menos durante el seminario. 816 00:54:02,850 --> 00:54:03,820 Muchas gracias. 817 00:54:03,820 --> 00:54:08,040 Y yo espero que se diviertan la creación de su propia aplicación para iOS. 818 00:54:08,040 --> 00:54:09,302