1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Bienvenido a ver seminario CS50 - 3 00:00:09,800 --> 00:00:11,630 Introducción a iOS. 4 00:00:11,630 --> 00:00:13,290 Gracias a todos por venir. 5 00:00:13,290 --> 00:00:16,610 Espero que estés tan emocionado como yo por iOS. 6 00:00:16,610 --> 00:00:22,300 El año pasado, tomé CS50 en su segundo año, y básicamente aprendí iOS para mi 7 00:00:22,300 --> 00:00:23,490 proyecto final. 8 00:00:23,490 --> 00:00:26,350 Y era bastante - 9 00:00:26,350 --> 00:00:30,530 así, no fue fácil, pero hay un montón de tutoriales de apoyo en línea. 10 00:00:30,530 --> 00:00:33,760 Y realmente espero que con esta seminario, te voy a dar ustedes una cabeza 11 00:00:33,760 --> 00:00:36,750 comenzará el desarrollo iOS 12 00:00:36,750 --> 00:00:40,490 >> Por lo tanto, en términos de desarrollo de iOS, hay dos cosas principales que 13 00:00:40,490 --> 00:00:42,090 querer cubrir hoy. 14 00:00:42,090 --> 00:00:43,290 En primer lugar, el idioma - 15 00:00:43,290 --> 00:00:46,650 el idioma se va a estar en Objective-C. Realidad Oiremos 16 00:00:46,650 --> 00:00:47,750 algo realmente emocionante. 17 00:00:47,750 --> 00:00:51,500 Por lo tanto, usted puede unirse a toda la manzana comunidad de desarrolladores y crear un poco de 18 00:00:51,500 --> 00:00:52,940 aplicaciones realmente impresionantes. 19 00:00:52,940 --> 00:00:58,670 >> Además, iOS 7 es hermoso, es de esperar, para algunos de ustedes. 20 00:00:58,670 --> 00:01:01,130 Pero es controversial, ya lo sé. 21 00:01:01,130 --> 00:01:05,349 Y sobre todo, lo que yo quiero hacer es guía a través de Objective-C, y también 22 00:01:05,349 --> 00:01:10,650 Xcode, que es el integrado entorno de desarrollo que podrás 23 00:01:10,650 --> 00:01:13,460 trabajando en para iOS. 24 00:01:13,460 --> 00:01:19,140 >> Y así, sólo una palabra en Objective-C. Básicamente, es exactamente lo mismo que C, 25 00:01:19,140 --> 00:01:22,790 pero con un montón de otras cosas. 26 00:01:22,790 --> 00:01:27,710 Y así, de manera más estricta, en realidad es un super-conjunto de C. Así que cualquier cosa que usted 27 00:01:27,710 --> 00:01:32,280 puede hacer en C en este momento, que es desea básicamente pset 0 a 6, 28 00:01:32,280 --> 00:01:34,170 puede hacer en Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Así, no se siente miedo de esta nueva lenguaje que vas a aprender. 30 00:01:38,620 --> 00:01:42,120 Usted ya ha cubierto una gran cantidad de la misma, porque todos lo han hecho C el pasado 31 00:01:42,120 --> 00:01:45,880 semestre, excepto que ahora te vas tener mucho más para trabajar. 32 00:01:45,880 --> 00:01:49,270 Y yo sólo voy a conducir a través de un par de ejemplos para poner de relieve algunas 33 00:01:49,270 --> 00:01:53,920 de las principales diferencias que encontré fueron cuando realmente importante que aprendí 34 00:01:53,920 --> 00:01:57,180 Objective-C el año pasado. 35 00:01:57,180 --> 00:02:00,910 >> Bueno, en realidad, por lo que, el otro punto es, Objective-C es, obviamente, 36 00:02:00,910 --> 00:02:02,200 Orientado a Objetos. 37 00:02:02,200 --> 00:02:06,340 Y vamos a discutir un poco acerca de lo que significa eso más tarde. 38 00:02:06,340 --> 00:02:11,340 Básicamente, es como la forma en que trabajó con estructuras de este conjunto de procesadores pasado, con 39 00:02:11,340 --> 00:02:13,360 linfáticos y otros similares cosas así. 40 00:02:13,360 --> 00:02:17,110 Excepto, en Objective-C, todo es un objeto, y que va a ser 41 00:02:17,110 --> 00:02:20,720 que pasa alrededor de los punteros a los objetos en lugar de los propios valores. 42 00:02:20,720 --> 00:02:25,050 Por lo tanto, es sólo algo importante a tener en cuenta. 43 00:02:25,050 --> 00:02:29,140 >> Así que, ¿por qué no empezamos con algunos las diferencias en la sintaxis entre C y 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Quiero resaltar el # include, que saber, io.h estándar en C y C + +, con 46 00:02:38,310 --> 00:02:44,030 la versión de Objective-C de eso, lo que es # import, y luego una especie de 47 00:02:44,030 --> 00:02:44,790 archivo de cabecera. 48 00:02:44,790 --> 00:02:48,165 En este caso, sería UIKit, ya sabes, recortar UIKit.h. 49 00:02:48,165 --> 00:02:53,560 También podría ser, ya sabes, MKMapView a usted slash MKMapview.h si quieres 50 00:02:53,560 --> 00:02:56,370 que hacer, como, un mapa dentro de su aplicación. 51 00:02:56,370 --> 00:02:57,110 Cosas similares por el estilo. 52 00:02:57,110 --> 00:03:01,250 >> Por lo tanto, lo importante es incluir ahora ha cambiado a importar. 53 00:03:01,250 --> 00:03:04,340 Pero la idea sigue siendo. 54 00:03:04,340 --> 00:03:10,460 Vas a ser una especie de importar de archivo de cabecera en su programa. 55 00:03:10,460 --> 00:03:14,550 >> También quiero resaltar la diferencia entre printf y NSLog. 56 00:03:14,550 --> 00:03:19,760 Sin embargo, como hemos dicho antes, Objective-C es una estricta super-conjunto de 57 00:03:19,760 --> 00:03:22,800 C, lo que significa que existe printf en Objective-C, también. 58 00:03:22,800 --> 00:03:24,340 Pero, la mayoría de la gente no utiliza eso. 59 00:03:24,340 --> 00:03:28,245 La mayoría de la gente usa este NSLog porque te da una indicación de la hora, y ya veremos 60 00:03:28,245 --> 00:03:29,780 en acción más tarde. 61 00:03:29,780 --> 00:03:33,560 Pero, por lo general es una mayor utilidad manera de imprimir variables. 62 00:03:33,560 --> 00:03:38,220 >> Y también quiero destacar que NSLog toma exactamente de la misma 63 00:03:38,220 --> 00:03:41,650 valores de marcador como printf hace - 64 00:03:41,650 --> 00:03:45,900 así que% d es para un int, % F está para un flotador. 65 00:03:45,900 --> 00:03:49,750 Sin embargo, sí quiero resaltar este último de ellos - 66 00:03:49,750 --> 00:03:52,960 NSLog% en señal - 67 00:03:52,960 --> 00:03:55,390 que es un marcador de posición para un objeto. 68 00:03:55,390 --> 00:04:01,160 Y como he dicho antes, ofertas de Objective-C más o menos en su mayoría en los objetos, 69 00:04:01,160 --> 00:04:05,020 por lo que este vendrá en uso cuando desee imprimir, tal vez, tal vez una 70 00:04:05,020 --> 00:04:08,390 NSArray o NSDictionary, o un NSString. 71 00:04:08,390 --> 00:04:13,750 >> Así, también, notar que, en nuestra NSLog declaración, tenemos una arroba delante 72 00:04:13,750 --> 00:04:15,380 de la cita - 73 00:04:15,380 --> 00:04:20,769 que es para significar que las cadenas, ahora, en Objective-C son objetos. 74 00:04:20,769 --> 00:04:23,310 Ya no son simplemente carac estrellas. 75 00:04:23,310 --> 00:04:25,530 Son objetos y son tratados como tales. 76 00:04:25,530 --> 00:04:28,690 >> Por lo tanto, es muy importante que cuando utiliza NSLog se necesita en un NS 77 00:04:28,690 --> 00:04:32,580 cadena, lo que significa que usted tendrá para incluir una en frente de su 78 00:04:32,580 --> 00:04:34,270 comillas. 79 00:04:34,270 --> 00:04:38,290 Y es por eso que se ve, aquí, en todas mi función llama a este NSLog, I 80 00:04:38,290 --> 00:04:42,400 tener al frente de las citas, incluso aunque el% dy el f de% son 81 00:04:42,400 --> 00:04:45,200 todos la misma a partir de C. 82 00:04:45,200 --> 00:04:47,930 >> Cualquier pregunta hasta ahora? 83 00:04:47,930 --> 00:04:50,920 Voy a tratar de pasar por esto rápidamente para que podemos tener más tiempo para trabajar 84 00:04:50,920 --> 00:04:55,210 con Xcode y Objective-C, por lo que que ustedes pueden obtener más 85 00:04:55,210 --> 00:04:57,630 familiarizado con él. 86 00:04:57,630 --> 00:05:01,900 >> A continuación, quiero destacar algo conceptualmente importante. 87 00:05:01,900 --> 00:05:05,130 Así, en C, la mayoría de las cosas son las funciones. 88 00:05:05,130 --> 00:05:06,280 Hacemos una llamada a la función. 89 00:05:06,280 --> 00:05:10,190 Declaramos funciones de esta manera, con el retorno de tipo primero, entonces el 90 00:05:10,190 --> 00:05:13,570 nombre de la función, los paréntesis, y luego sean cuales sean los argumentos y el tipo de 91 00:05:13,570 --> 00:05:15,590 estos argumentos que queremos pasar pulg 92 00:05:15,590 --> 00:05:19,970 Y Objective-C, porque todo es un objeto o una clase - 93 00:05:19,970 --> 00:05:23,970 por lo que la clase y el objeto son dos términos que son en su mayoría sinónimos entre sí, 94 00:05:23,970 --> 00:05:28,270 así que puede usarse indistintamente durante todo el seminario. 95 00:05:28,270 --> 00:05:34,090 >> Pero, verás que tenemos métodos en Objective-C en lugar de funciones. 96 00:05:34,090 --> 00:05:36,390 Y métodos pertenecen a los objetos. 97 00:05:36,390 --> 00:05:38,950 Así como, tal vez tomar Por ejemplo, el nodo - 98 00:05:38,950 --> 00:05:40,250 nuestro tipo de [inaudible] 99 00:05:40,250 --> 00:05:44,390 nodo desde el conjunto de procesadores 6 o 5 - 100 00:05:44,390 --> 00:05:49,590 Tenemos también la palabra, la propiedad, o el siguiente puntero del nodo. 101 00:05:49,590 --> 00:05:53,880 Los métodos son simplemente funciones dentro de algún tipo de estructura. 102 00:05:53,880 --> 00:05:57,510 >> Así, en este caso, la estructura sería el objeto, y entonces el método es 103 00:05:57,510 --> 00:05:59,260 algo que pertenece a un objeto. 104 00:05:59,260 --> 00:06:02,650 Y así es como usted desea declarar, más o menos, un método. 105 00:06:02,650 --> 00:06:07,990 Se podría empezar, de nuevo, el regreso tipo - así, traté de colores 106 00:06:07,990 --> 00:06:12,990 codificar las palabras clave aquí para que ustedes puede ver el, al menos, el formato 107 00:06:12,990 --> 00:06:17,650 similitudes entre la función declaraciones y declaraciones de métodos. 108 00:06:17,650 --> 00:06:21,990 Así, se empieza con, ya sabes, un retorno tipo - en este caso, es una matriz, o 109 00:06:21,990 --> 00:06:23,910 un puntero NSArray - 110 00:06:23,910 --> 00:06:26,710 y entonces usted tiene este método. 111 00:06:26,710 --> 00:06:30,900 Y luego, lo que es interesante aquí es que en lugar de tener paréntesis, nos 112 00:06:30,900 --> 00:06:32,900 tener estos dos puntos. 113 00:06:32,900 --> 00:06:38,450 Y entonces, frente a nuestros argumentos, poner, de nuevo, entre paréntesis el tipo 114 00:06:38,450 --> 00:06:39,370 de nuestro argumento. 115 00:06:39,370 --> 00:06:43,160 >> Así que, ahora que estoy tratando de hacer que el comparación entre, ya sabes, ny 116 00:06:43,160 --> 00:06:45,450 número, porque son ambos enteros similares. 117 00:06:45,450 --> 00:06:49,580 Y luego, el otro es un tipo NSUInteger. 118 00:06:49,580 --> 00:06:56,390 Y entonces, con Objective-C, cuando se desea tener varios argumentos en 119 00:06:56,390 --> 00:07:00,030 su cláusula método, usted, más o menos, separarlos un poco como esto - 120 00:07:00,030 --> 00:07:03,790 No estoy muy seguro de cómo describirlo, pero este es un buen ejemplo de cómo se 121 00:07:03,790 --> 00:07:06,530 puede tener varios argumentos en ese país. 122 00:07:06,530 --> 00:07:10,360 >> Usted podría, por supuesto, sólo totalmente ignorar el colon andArray NSArray 123 00:07:10,360 --> 00:07:13,240 array si quería sólo un método que lleva en un argumento. 124 00:07:13,240 --> 00:07:13,677 Sí, se trata. 125 00:07:13,677 --> 00:07:18,701 >> AUDIENCIA: ¿Son ambos NSUInteger y Argumentos NSArray que se pueden tomar en 126 00:07:18,701 --> 00:07:21,530 dentro de la NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: Si. 128 00:07:22,060 --> 00:07:23,400 Por lo tanto, permítanme explicar. 129 00:07:23,400 --> 00:07:23,790 Así que, sí. 130 00:07:23,790 --> 00:07:30,260 Entonces, la pregunta era son NSUInteger y NSArray * tipos de los argumentos, 131 00:07:30,260 --> 00:07:31,570 y eso es correcto. 132 00:07:31,570 --> 00:07:35,700 Por lo tanto, uno siempre quiere especificar qué el tipo de su argumento es. 133 00:07:35,700 --> 00:07:41,570 Y aquí, estoy tratando de presentarles a parte de la sintaxis y vocabulario de 134 00:07:41,570 --> 00:07:45,910 Objective-C, por lo que esos son tipos reales que usted va a estar tratando con. 135 00:07:45,910 --> 00:07:48,970 >> Y como usted notará, matrices Ya no son, más o menos, 136 00:07:48,970 --> 00:07:50,780 cosas simples soporte. 137 00:07:50,780 --> 00:07:52,060 Son objetos. 138 00:07:52,060 --> 00:07:56,700 Aunque, si nos vamos a la siguiente diapositiva, podemos ver que podemos 139 00:07:56,700 --> 00:08:02,510 codificar un NSArray en Objective-C con simplemente un símbolo en frente 140 00:08:02,510 --> 00:08:04,190 los soportes. 141 00:08:04,190 --> 00:08:08,650 No soy, en realidad, muy seguro de si Me sintácticamente codificamos un array 142 00:08:08,650 --> 00:08:16,020 correctamente para la versión C, pero eso es se supone que en una matriz de C. 143 00:08:16,020 --> 00:08:19,760 >> Por lo tanto, esta es la forma en que usted, usted sabe, quizás usar las funciones o la 144 00:08:19,760 --> 00:08:21,990 métodos que hemos creado anteriormente. 145 00:08:21,990 --> 00:08:22,250 ¿Cierto? 146 00:08:22,250 --> 00:08:25,340 Por lo tanto, aquí es donde nos declaramos nuestro función y nuestro método. 147 00:08:25,340 --> 00:08:28,020 Y ahora queremos utilizarlos en nuestro programa, y ​​esto es 148 00:08:28,020 --> 00:08:29,450 cómo íbamos a hacerlo. 149 00:08:29,450 --> 00:08:32,400 Así, en C, que tendría, ya sabes, quizás, un bool b, y lo establece en 150 00:08:32,400 --> 00:08:36,549 igual a la función, y luego se pasa en los argumentos. 151 00:08:36,549 --> 00:08:39,190 >> En Objective-C, es bastante o menos lo mismo. 152 00:08:39,190 --> 00:08:43,370 Usted tiene NSArray * my_array, y es va a ser igual a - ahora, la única 153 00:08:43,370 --> 00:08:47,460 diferencia aquí es esta cosa objeto, que he resaltado en amarillo, y 154 00:08:47,460 --> 00:08:51,180 como se puede ver, en C, hay no hay otra palabra amarillo. 155 00:08:51,180 --> 00:08:54,170 Y es porque los métodos pertenecen con un determinado objeto. 156 00:08:54,170 --> 00:08:59,800 Así que por eso tengo que tener un objeto que, más o menos, llama a este método en 157 00:08:59,800 --> 00:09:04,360 el número cero, y luego la NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 ¿Tiene preguntas sobre eso? 159 00:09:05,350 --> 00:09:12,190 >> Veremos estos conceptos en acción muy pronto cuando entramos en una demo. 160 00:09:12,190 --> 00:09:13,400 Aceptar. 161 00:09:13,400 --> 00:09:17,170 Ahora, quiero hablar un poco brevemente sobre Xcode 5, que es el 162 00:09:17,170 --> 00:09:21,160 entorno de desarrollo integrado que usted va a trabajar con. 163 00:09:21,160 --> 00:09:26,160 Sé que muchos de ustedes, o algunos de ustedes, no tienen Mac, que es un problema 164 00:09:26,160 --> 00:09:30,490 porque Xcode no está disponible para Windows y PC. 165 00:09:30,490 --> 00:09:32,785 No me preguntes por qué, pero probablemente - 166 00:09:32,785 --> 00:09:33,730 sí, corporativa. 167 00:09:33,730 --> 00:09:35,290 Lo que sea. 168 00:09:35,290 --> 00:09:39,360 Pero de todos modos, por lo que pido disculpas si algunos de usted no tiene que descargar algún tipo de 169 00:09:39,360 --> 00:09:43,000 máquina virtual para Mac en Para poder ejecutar Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Pero es una ingeniosa bastante software a utilizar. 171 00:09:46,460 --> 00:09:51,280 >> Y así, antes de sumergirse en cualquier tipo de demostración, sólo quiero que una muestra 172 00:09:51,280 --> 00:09:55,700 imagen de lo que Xcode se ve como en su ventana, y luego también hablar de 173 00:09:55,700 --> 00:09:57,670 lo que todo este espacio es. 174 00:09:57,670 --> 00:10:01,600 Por lo tanto, es algo así como aprender a utilizar Microsoft Word, a excepción de que deseas 175 00:10:01,600 --> 00:10:04,675 familiarizarse con toda la diferentes cosas que 176 00:10:04,675 --> 00:10:06,250 están pasando aquí. 177 00:10:06,250 --> 00:10:11,160 >> Así que en primer lugar, quiero señalar que a la barra de herramientas en la parte superior. 178 00:10:11,160 --> 00:10:14,450 Vas a ver que, en la parte superior, que tendrá el nombre del archivo - 179 00:10:14,450 --> 00:10:18,100 o, en realidad, el nombre del proyecto y luego el nombre del archivo. 180 00:10:18,100 --> 00:10:20,940 Tome nota de la obra y los botones de parada. 181 00:10:20,940 --> 00:10:24,210 Esos son los que usted será utilizando para ejecutar su aplicación en la 182 00:10:24,210 --> 00:10:25,600 simulador - 183 00:10:25,600 --> 00:10:26,550 el simulador de iOS. 184 00:10:26,550 --> 00:10:29,940 Esto viene automáticamente con Xcode 5, por lo que no tiene que preocuparse de 185 00:10:29,940 --> 00:10:32,070 la descarga de algún tipo de simulador. 186 00:10:32,070 --> 00:10:34,700 Sólo presiona el juego y a continuación, se ejecuta la aplicación. 187 00:10:34,700 --> 00:10:39,230 Y usted puede jugar con usted, y verás cómo funciona después. 188 00:10:39,230 --> 00:10:42,690 >> Y entonces, en el centro, por supuesto, es donde todo el código bello es 189 00:10:42,690 --> 00:10:44,240 va a ir. 190 00:10:44,240 --> 00:10:48,340 Y luego, en el lado izquierdo, se le tener presente, más o menos, una carpeta - 191 00:10:48,340 --> 00:10:50,340 navegación - 192 00:10:50,340 --> 00:10:53,970 y entonces, usted también verá que, a lo largo de con el icono de la carpeta, hay un 193 00:10:53,970 --> 00:10:57,680 montón de otros iconos de ahí que será útil más adelante. 194 00:10:57,680 --> 00:11:04,710 >> Y luego, en el lado derecho es una utilidad zona en la que se puede trabajar con 195 00:11:04,710 --> 00:11:09,620 algunos de los objetos y especificar, se saber, ¿cuál debe ser el color, lo que 196 00:11:09,620 --> 00:11:12,040 la fuente del texto debe ser, et cetera. 197 00:11:12,040 --> 00:11:15,890 A pesar de que todo lo que haces en el área de servicios públicos, se puede 198 00:11:15,890 --> 00:11:17,480 hacerlo en código. 199 00:11:17,480 --> 00:11:21,630 Y por eso, voy a ir a través de dos ejemplos del uso de, simplemente, no hay código en 200 00:11:21,630 --> 00:11:23,730 todos - o código muy mínimo - 201 00:11:23,730 --> 00:11:28,290 versos todo el código, sólo para que ustedes sabe lo que puede y no puede hacer en 202 00:11:28,290 --> 00:11:29,260 Xcode y Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> Y luego, finalmente, hacia abajo en la parte inferior, usted tiene la zona de depuración. 204 00:11:32,770 --> 00:11:37,270 Por lo tanto, ya no tiene que correr GDB, etcétera, en sus programas. 205 00:11:37,270 --> 00:11:39,180 Automáticamente lo hace por usted. 206 00:11:39,180 --> 00:11:42,880 Y también se puede imprimir cosas para esta área. 207 00:11:42,880 --> 00:11:46,790 Así que en realidad, más tarde, vamos a pasar por mario.c, si ustedes todavía recuerdo 208 00:11:46,790 --> 00:11:49,000 que, en Xcode. 209 00:11:49,000 --> 00:11:50,360 Así que debe ser divertido. 210 00:11:50,360 --> 00:11:55,870 >> Y entonces, justo para que vuelva a Objective-C, quiero destacar lo 211 00:11:55,870 --> 00:11:57,440 que puede hacer con IF. 212 00:11:57,440 --> 00:12:03,160 Así que, ya sabes, porque Objective-C es un superconjunto de C, todo lo que haces es, 213 00:12:03,160 --> 00:12:06,890 literalmente, la misma que C. Sólo tener ligeras diferencias. 214 00:12:06,890 --> 00:12:10,810 Por lo tanto, se dará cuenta de la forma de un if declaración sigue siendo la misma - que tiene 215 00:12:10,810 --> 00:12:14,280 si, y entonces usted tiene paréntesis con una condición dentro de, y luego 216 00:12:14,280 --> 00:12:17,150 llaves para lo que querer hacer dentro de allí. 217 00:12:17,150 --> 00:12:21,680 >> Sin embargo, yo quería poner esta diapositiva hasta aquí, simplemente para ilustrar que, 218 00:12:21,680 --> 00:12:25,680 porque estamos tratando con objetos ahora, vamos a tener que utilizar estas cosas 219 00:12:25,680 --> 00:12:31,240 llamado así, es igual a la cadena, que es, casualmente, un método de una 220 00:12:31,240 --> 00:12:33,710 cadena o un objeto NSString. 221 00:12:33,710 --> 00:12:38,600 Así, palabra, en este caso, es un NSString objeto, y tiene un método llamado es 222 00:12:38,600 --> 00:12:44,150 igual a la secuencia, y después estamos pasando en una cadena fija para ver 223 00:12:44,150 --> 00:12:48,110 si los que son iguales el uno al otro. 224 00:12:48,110 --> 00:12:51,580 >> Cualquier pregunta hasta ahora? 225 00:12:51,580 --> 00:12:52,440 Aceptar. 226 00:12:52,440 --> 00:12:56,190 Y, quiero ir una para la declaración también. 227 00:12:56,190 --> 00:13:01,420 >> Así, por ejemplo, si quisiéramos bucle sobre la longitud de una cadena en C, esta 228 00:13:01,420 --> 00:13:03,710 debe ser familiar para usted. 229 00:13:03,710 --> 00:13:07,840 Y, en Objective-C, quiero para resaltar este, más o menos, 230 00:13:07,840 --> 00:13:09,235 método llamado conteo. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Bueno, en realidad, me dejó simplemente tomar lo dicho. 233 00:13:15,550 --> 00:13:17,200 Count es un método de matriz. 234 00:13:17,200 --> 00:13:21,070 Sin embargo, es más específicamente un propiedad de la matriz, por lo que usted 235 00:13:21,070 --> 00:13:22,380 puede utilizar la notación de puntos. 236 00:13:22,380 --> 00:13:25,870 Pero yo no quiero entrar en demasiado de esto conceptual, sólo quiero 237 00:13:25,870 --> 00:13:30,140 para mostrar cómo se verían las cosas como en Objective-C frente a C. 238 00:13:30,140 --> 00:13:35,400 >> Y también, quiero señalar que a pesar de que he estado usando NSUInteger 239 00:13:35,400 --> 00:13:39,860 delante de todos mis íes en Objective-C, también puede utilizar int, int, porque es 240 00:13:39,860 --> 00:13:42,290 totalmente válido en Objective-C, también. 241 00:13:42,290 --> 00:13:42,475 ¿Sí? 242 00:13:42,475 --> 00:13:44,350 >> AUDIENCIA: ¿Es sólo estilística, o es - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Si. 244 00:13:44,760 --> 00:13:46,060 Así que, como se verá - 245 00:13:46,060 --> 00:13:49,390 así, la cuestión es que era sólo una cuestión de estilo. 246 00:13:49,390 --> 00:13:54,820 Como verás, tengo una especie de, estrella cosa asterisco hacia abajo en la parte inferior, y 247 00:13:54,820 --> 00:13:59,870 ese enlace te lleva a un desbordamiento de pila formar, en la que alguien explica 248 00:13:59,870 --> 00:14:03,640 la diferencia entre un int en NSInteger y un NSUInteger. 249 00:14:03,640 --> 00:14:05,540 Y por eso, usted puede leer sobre esto más adelante. 250 00:14:05,540 --> 00:14:07,640 Estas diapositivas serán, por supuesto, disponibles para usted. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Vamos a ver. 253 00:14:11,280 --> 00:14:12,150 Aceptar, impresionante. 254 00:14:12,150 --> 00:14:15,410 Así, esta también se incluye en la diapositiva porque pensé que era un gran 255 00:14:15,410 --> 00:14:19,370 sitio web que introduce a la sintaxis de Objective-C. 256 00:14:19,370 --> 00:14:24,410 Así que, en realidad, ¿por qué no nos movemos a Chrome y echa un vistazo a este sitio web? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Derecha. 259 00:14:31,300 --> 00:14:36,670 Por lo tanto, lo que yo quiero mostrar chicos aquí es esta imagen. 260 00:14:36,670 --> 00:14:41,630 Por lo tanto, esto es, más o menos, va a ser lo usted va a ver el interior de cualquier 261 00:14:41,630 --> 00:14:42,890 Archivo de Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 En realidad, ¿por qué no nos tomamos un momento, más o menos, tome este pulg 264 00:14:51,430 --> 00:14:53,470 >> Por lo tanto, este libro - 265 00:14:53,470 --> 00:14:55,880 ese es el objeto que que estamos tratando. 266 00:14:55,880 --> 00:14:59,680 Y entonces, es obvio que va a ser heredado de algún otro objeto, pero 267 00:14:59,680 --> 00:15:01,810 usted no tiene que preocuparse por eso. 268 00:15:01,810 --> 00:15:04,430 Y entonces, tal vez, tiene algunas variables miembro. 269 00:15:04,430 --> 00:15:09,160 >> Lo importante que quiero mostrar son los métodos de instancia, aquí. 270 00:15:09,160 --> 00:15:12,670 Así, los métodos de instancia se denotan por este signo menos. 271 00:15:12,670 --> 00:15:15,550 Y entonces, como te darás cuenta, que estamos ya está empezando a ver el paradigma 272 00:15:15,550 --> 00:15:17,670 para la declaración de método, ¿verdad? 273 00:15:17,670 --> 00:15:22,670 El tipo de cambio, el nombre del método, y entonces el tipo del argumento, y 274 00:15:22,670 --> 00:15:24,660 a continuación, el nombre del argumento. 275 00:15:24,660 --> 00:15:29,090 Y este signo menos significa que se trata de una método de instancia, lo que significa que 276 00:15:29,090 --> 00:15:32,270 estos métodos sólo están disponibles para objetos que han sido instanciados. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Para contrastar que, los métodos con un plus firmar en frente de ellos son de clase 279 00:15:39,100 --> 00:15:43,640 métodos, lo que significa que usted puede llamar estos métodos, incluso si usted no tiene 280 00:15:43,640 --> 00:15:45,970 un objeto creado todavía. 281 00:15:45,970 --> 00:15:51,600 Así, por un claro ejemplo, NSString es una clase. 282 00:15:51,600 --> 00:15:55,850 Y usted puede llamar, por ejemplo, métodos de la clase sobre NSString - 283 00:15:55,850 --> 00:15:58,660 el real, como, palabra NSString. 284 00:15:58,660 --> 00:16:02,050 >> Sin embargo, con el fin de utilizar estos métodos, en realidad se 285 00:16:02,050 --> 00:16:03,460 tenga que crear una cadena. 286 00:16:03,460 --> 00:16:08,980 Por ejemplo, la cadena estrella NSString es igual en comillas, hola mundo. 287 00:16:08,980 --> 00:16:10,910 Y entonces, usted puede utilizar estos métodos - 288 00:16:10,910 --> 00:16:11,990 métodos de instancia - 289 00:16:11,990 --> 00:16:14,790 en esa cadena hello world. 290 00:16:14,790 --> 00:16:17,825 Por lo tanto, esa es la diferencia entre métodos de instancia y métodos de clase. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> Y, nosotros acabamos de cubrir esta parte. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Las propiedades son otra cosa que son dentro de los objetos, básicamente. 295 00:16:33,750 --> 00:16:37,530 Y se declaran con la palabra clave en la propiedad. 296 00:16:37,530 --> 00:16:39,940 Dispone de las siguientes opciones, aquí, que te lo explicaré más tarde, cuando 297 00:16:39,940 --> 00:16:43,110 entramos en una demo. 298 00:16:43,110 --> 00:16:43,660 ¿Sí? 299 00:16:43,660 --> 00:16:43,950 Hola. 300 00:16:43,950 --> 00:16:45,440 >> AUDIENCIA: ¿Puede acercar, por favor? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: Oh, sí. 302 00:16:46,130 --> 00:16:46,560 Lo siento. 303 00:16:46,560 --> 00:16:49,140 >> AUDIENCIA: Gracias. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Eso debería ser mucho mejor. 305 00:16:50,005 --> 00:16:51,240 >> AUDIENCIA: Si. 306 00:16:51,240 --> 00:16:53,940 Gracias. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Sí, por favor recordarme si Me olvido de acercar o alejar la imagen. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Así que, esto es todo lo que quería para mostrarle a - 310 00:17:03,570 --> 00:17:05,970 Whoa, eso es un montón - 311 00:17:05,970 --> 00:17:06,790 para este sitio web. 312 00:17:06,790 --> 00:17:12,210 Por lo tanto, vamos a volver a nuestras diapositivas. 313 00:17:12,210 --> 00:17:17,819 >> En realidad, ahora vamos a tomar un momento sumergirse en un demo. 314 00:17:17,819 --> 00:17:25,490 Por lo tanto, vamos a empezar con un nuevo proyecto de Xcode. 315 00:17:25,490 --> 00:17:33,040 Así que, si me abres Xcode en todos sus máquinas, se deben tomar algún 316 00:17:33,040 --> 00:17:36,720 página donde dice, como, ya sea abierta hasta un proyecto ya existente o una nueva 317 00:17:36,720 --> 00:17:39,230 proyecto, y que debiera haga clic en un nuevo proyecto. 318 00:17:39,230 --> 00:17:41,477 Y luego, hay que tomar usted a esta pantalla. 319 00:17:41,477 --> 00:17:41,593 ¿Sí? 320 00:17:41,593 --> 00:17:44,279 >> AUDIENCIA: Si no tenemos un Mac, nos limitamos tipo de Chill? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: O busque en con alguien, sí. 322 00:17:46,870 --> 00:17:47,740 Sí. 323 00:17:47,740 --> 00:17:50,660 Usted puede relajarse, también. 324 00:17:50,660 --> 00:17:51,570 Aceptar. 325 00:17:51,570 --> 00:17:55,410 >> Entonces, ¿qué vamos a hacer en primer lugar, ahora, es, en realidad, vamos a hacer una 326 00:17:55,410 --> 00:17:56,600 aplicación de vista individual. 327 00:17:56,600 --> 00:18:01,340 Así que, si te fijas, lo que es genial acerca de Xcode y soporte de Apple para 328 00:18:01,340 --> 00:18:05,690 los desarrolladores es que usted tiene una gran cantidad de plantillas para trabajar con ya. 329 00:18:05,690 --> 00:18:09,210 Podría, por ejemplo, hacer una aplicación principal-detalle. 330 00:18:09,210 --> 00:18:10,920 Usted puede hacer un juego - 331 00:18:10,920 --> 00:18:13,860 y, de hecho, yo no voy a entrar en los juegos, porque los juegos son una historia diferente 332 00:18:13,860 --> 00:18:15,320 para el desarrollo de iOS. 333 00:18:15,320 --> 00:18:18,930 Y están especie de separar, así que no voy a entrar en eso. 334 00:18:18,930 --> 00:18:22,580 >> Entonces, usted ha basado en páginas de aplicaciones. 335 00:18:22,580 --> 00:18:24,010 Tiene una aplicación de pestaña - 336 00:18:24,010 --> 00:18:29,350 por lo que desea, por ejemplo, Bank of America probablemente tiene, como, una aplicación de pestañas. 337 00:18:29,350 --> 00:18:32,140 Es aquellos en los que tiene los botones en la parte inferior. 338 00:18:32,140 --> 00:18:34,750 Y entonces, usted tiene un juego Kit Sprite. 339 00:18:34,750 --> 00:18:38,670 >> O usted puede trabajar a partir de cero, lo que es lo que vamos a hacer después. 340 00:18:38,670 --> 00:18:42,470 Pero vamos, en primer lugar, comenzar con una aplicación única vista. 341 00:18:42,470 --> 00:18:48,590 Entonces, va a pedir el nombre del producto, y sólo podemos hacer la prueba. 342 00:18:48,590 --> 00:18:50,190 Nombre de la organización - 343 00:18:50,190 --> 00:18:54,140 así, nombre de la organización, identificador de la compañía - 344 00:18:54,140 --> 00:18:58,100 esos son importantes si usted va para poner su aplicación en la App Store. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Aparte de eso, el código se va a funcionar absolutamente bien sin esto. 347 00:19:05,116 --> 00:19:09,940 >> Esto va a ser importante si se desear - así, per se, como, poner su aplicación 348 00:19:09,940 --> 00:19:14,080 en el teléfono o algo así, y la prueba de hacia fuera, ya sabes, en la vida real - 349 00:19:14,080 --> 00:19:15,360 esto será importante. 350 00:19:15,360 --> 00:19:20,110 Esto tiende a ser por lo general asociada con algún tipo de cuenta de desarrollador 351 00:19:20,110 --> 00:19:20,970 con Apple. 352 00:19:20,970 --> 00:19:24,740 >> Y así, lo sé, probablemente, muchos de ustedes no tendrá ninguna cuenta de desarrollador. 353 00:19:24,740 --> 00:19:26,460 Sé que la universidad tiene uno. 354 00:19:26,460 --> 00:19:27,630 Creo que CS tiene una. 355 00:19:27,630 --> 00:19:32,770 Pero, usted puede enviarme un correo electrónico y voy a tratar para darse cuenta de eso para usted. 356 00:19:32,770 --> 00:19:38,210 Pero en este momento, acabo de poner en algunas cosas de marcador de posición aquí. 357 00:19:38,210 --> 00:19:41,250 >> Y usted puede, por supuesto, aquí, elija si usted quiere que sea únicamente en 358 00:19:41,250 --> 00:19:44,410 iPhone, iPad en, o ambos - 359 00:19:44,410 --> 00:19:46,630 aplicación universal. 360 00:19:46,630 --> 00:19:56,170 Así que, por ahora, vamos a hacer universales, sólo para ver ambos lados de la plataforma. 361 00:19:56,170 --> 00:19:57,120 >> Vamos a ver. 362 00:19:57,120 --> 00:20:01,510 Así que, ahora mismo, me voy a ahorrar en algún tipo de carpeta. 363 00:20:01,510 --> 00:20:04,500 No importa donde - usted Siempre se puede mover más tarde. 364 00:20:04,500 --> 00:20:09,380 Y, ahora, somos llevados a nuestro proyecto Xcode. 365 00:20:09,380 --> 00:20:12,890 Yo no me preocuparía por todo esto. 366 00:20:12,890 --> 00:20:17,510 Yo sugeriría que no tocar ninguno de esto, a menos que sepa exactamente lo que 367 00:20:17,510 --> 00:20:18,260 que estás haciendo. 368 00:20:18,260 --> 00:20:21,750 Así que, todo esto, simplemente ignoran en su mayor parte. 369 00:20:21,750 --> 00:20:26,940 Usted no tendrá que tocar, y si se fastidiarla con algunas cosas aquí, 370 00:20:26,940 --> 00:20:28,600 se pone un poco complicado. 371 00:20:28,600 --> 00:20:32,480 >> Así que, ¿por qué no nos miramos en los archivos de la 372 00:20:32,480 --> 00:20:34,700 lado izquierdo de nuestro navegador. 373 00:20:34,700 --> 00:20:37,060 Aquí, tenemos AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Tenemos AppDelegate.m Así que, como usted aviso, hemos encabezado archivos, que 375 00:20:43,430 --> 00:20:45,720 terminar en punto h, y tenemos aplicación - 376 00:20:45,720 --> 00:20:46,970 En realidad, déjenme agrandar 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 Aceptar. 379 00:20:57,060 --> 00:20:59,940 Permítanme agrandar 380 00:20:59,940 --> 00:21:05,810 >> Derecho, por lo que ha encabezado y archivos usted tiene archivos de implementación. 381 00:21:05,810 --> 00:21:07,060 En realidad - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 Aceptar. 384 00:21:09,240 --> 00:21:11,800 Esto es un poco raro, pero tengan paciencia conmigo. 385 00:21:11,800 --> 00:21:16,140 Entonces, debido a que hemos elegido una sola vista aplicación, nosotros vamos a ser 386 00:21:16,140 --> 00:21:17,340 el trabajo con storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Así, storyboard es algo que Apple ha llegado con para ayudar realmente a 388 00:21:22,140 --> 00:21:26,550 los desarrolladores crear rápidamente prototipos sus aplicaciones. 389 00:21:26,550 --> 00:21:29,410 Por lo tanto, aquí es donde usted puede crear una aplicación sin necesidad de escribir una 390 00:21:29,410 --> 00:21:31,710 sola línea de código. 391 00:21:31,710 --> 00:21:35,390 Sin embargo, en la solicitud de vista individual, lo que hacemos, por supuesto, tenemos un 392 00:21:35,390 --> 00:21:41,270 declararse en nuestra opinión, que es un controlador de vista. 393 00:21:41,270 --> 00:21:45,150 Así, tenemos el encabezado y el archivo de implementación, aquí. 394 00:21:45,150 --> 00:21:52,350 >> Y, me voy a alejar ahora porque tendremos que trabajar en el guión gráfico. 395 00:21:52,350 --> 00:21:55,190 Así que, aquí está nuestro punto de vista. 396 00:21:55,190 --> 00:22:00,120 Si nosotros, simplemente, ejecutar la aplicación en este momento, no hay mucho emocionante pasando. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Así, verá esta pantalla blanca. 399 00:22:05,040 --> 00:22:06,110 ¿De acuerdo? 400 00:22:06,110 --> 00:22:14,010 >> Y, en nuestra área de servicios, podemos añadir un montón de cosas diferentes a ella. 401 00:22:14,010 --> 00:22:19,290 Por lo tanto, cuando usted está tratando con pantallas en iOS, los controladores de vista son el 402 00:22:19,290 --> 00:22:23,150 objetos que encapsulan, más o menos, sus puntos de vista. 403 00:22:23,150 --> 00:22:26,980 Por lo tanto, un controlador de vista siempre tiene una propiedad llamada vista. 404 00:22:26,980 --> 00:22:29,610 Y ese punto de vista, por lo general, contiene, ya sabes, lo que 405 00:22:29,610 --> 00:22:30,810 desee ver en una pantalla. 406 00:22:30,810 --> 00:22:39,210 >> Así que, bueno, vamos a empezar por poner, tal vez, tal vez una etiqueta. 407 00:22:39,210 --> 00:22:41,450 Por lo tanto, vamos a poner una etiqueta en allí - 408 00:22:41,450 --> 00:22:44,080 pegarlo en el centro. 409 00:22:44,080 --> 00:22:49,560 Así que, ahora que he hecho clic en la etiqueta, que puede entrar en el inspector de propiedades 410 00:22:49,560 --> 00:22:51,510 y empezar a cambiar su valor. 411 00:22:51,510 --> 00:22:55,040 Llamémoslo CS50 Colores. 412 00:22:55,040 --> 00:22:58,220 >> Y, también puedo cambiar la fuente. 413 00:22:58,220 --> 00:23:02,630 Así, en lugar de sistema, haciendo que es el valor por defecto, podemos hacer uno personalizado. 414 00:23:02,630 --> 00:23:03,770 Podemos cambiar - 415 00:23:03,770 --> 00:23:06,453 ya sabes, ultraligero, lo convierten en 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 Y entonces, podemos hacer nuestra caja más grande. 418 00:23:11,370 --> 00:23:14,410 >> AUDIENCIA: ¿Cree usted que se puede acercar en sólo un poco más, tal vez? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: ¿Sí? 420 00:23:14,810 --> 00:23:16,196 Aceptar. 421 00:23:16,196 --> 00:23:17,450 >> AUDIENCIA: Sólo aprovecharlo? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Veamos. 423 00:23:19,020 --> 00:23:20,382 ¿Funciona esto? 424 00:23:20,382 --> 00:23:22,270 >> AUDIENCIA: Simplemente pase el Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Seguro. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 Aceptar. 428 00:23:25,940 --> 00:23:26,275 Impresionante. 429 00:23:26,275 --> 00:23:27,072 >> AUDIENCIA: La etiqueta bajo? 430 00:23:27,072 --> 00:23:28,920 La etiqueta? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: ¿Qué es eso? 432 00:23:29,480 --> 00:23:32,050 >> AUDIENCIA: ¿Cuál desplegable era la etiqueta bajo? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Entonces, la pregunta era: ¿qué desplegable era la etiqueta bajo? 434 00:23:35,170 --> 00:23:37,260 Se debe, simplemente, estar bajo aquí. 435 00:23:37,260 --> 00:23:39,330 Supongo que es una cosa cubo. 436 00:23:39,330 --> 00:23:40,910 Pero por lo general, este es el valor por defecto - 437 00:23:40,910 --> 00:23:43,250 Sólo voy por aquí hasta que encuentre una etiqueta. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Sí. 440 00:23:47,730 --> 00:23:48,950 >> Así que ahora, tenemos nuestro sello. 441 00:23:48,950 --> 00:23:51,040 Vamos a centrarla. 442 00:23:51,040 --> 00:23:56,410 Y Xcode nos da directrices para el centrado de objetos. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Así que, ahora vamos a ejecutar nuestro código nuevo. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Eso es. 447 00:24:08,800 --> 00:24:10,310 Así pues, tenemos CS50 Colores. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 Y ahora, vamos a poner un botón allí, ¿verdad? 450 00:24:15,420 --> 00:24:17,480 Porque queremos hacer este interactivo. 451 00:24:17,480 --> 00:24:19,410 Por lo tanto, vamos a poner un botón aquí. 452 00:24:19,410 --> 00:24:39,020 Y vamos a llamar a este botón "tap aquí para continuar. "Vamos a centramos, también 453 00:24:39,020 --> 00:24:39,990 En realidad, ya está centrado. 454 00:24:39,990 --> 00:24:40,630 Sí. 455 00:24:40,630 --> 00:24:43,130 >> Así que, ahora que tenemos un botón. 456 00:24:43,130 --> 00:24:53,000 Y si nos encontramos de nuevo, vamos tener un pequeño botón agradable aquí. 457 00:24:53,000 --> 00:24:56,520 Y puedo hacer clic en él, pero no lo hace nada, porque no hemos hecho 458 00:24:56,520 --> 00:24:58,500 nada con el botón todavía. 459 00:24:58,500 --> 00:25:01,740 >> Por lo tanto, vamos a crear otro punto de vista, ¿no? 460 00:25:01,740 --> 00:25:04,160 Así que, digamos que quiero aprovechar ese botón y quiero 461 00:25:04,160 --> 00:25:05,730 ir a otra página - 462 00:25:05,730 --> 00:25:06,820 otro punto de vista. 463 00:25:06,820 --> 00:25:14,440 Lo que voy a hacer es, puedo crear un controlador de vista, ¿no? 464 00:25:14,440 --> 00:25:19,690 Ahora voy a hacer clic en el botón de mi, y luego, lo importante es que me voy a 465 00:25:19,690 --> 00:25:20,910 haga clic en - o - 466 00:25:20,910 --> 00:25:23,660 sí, control de la prensa en mi teclado. 467 00:25:23,660 --> 00:25:24,880 De control. 468 00:25:24,880 --> 00:25:27,005 Haga clic en el botón y, a continuación, arrastre. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Así, recuerda que mantenga pulsada la tecla control. 471 00:25:33,550 --> 00:25:35,160 Vamos a hacer eso de nuevo. 472 00:25:35,160 --> 00:25:40,930 Por lo tanto, mantener el control, haga clic y arrastre a lo que quieres hacer. 473 00:25:40,930 --> 00:25:41,520 Aceptar. 474 00:25:41,520 --> 00:25:43,610 >> Y ahora, tengo varias opciones aquí. 475 00:25:43,610 --> 00:25:47,900 Puedo o empujar, o que pueda hacer un modal, o que pueda hacer un encargo. 476 00:25:47,900 --> 00:25:50,900 Push es sólo si tiene una controlador de navegación. 477 00:25:50,900 --> 00:25:54,270 Ahora mismo, nuestra primera vista controlador no está dentro de cualquier 478 00:25:54,270 --> 00:25:55,610 controlador de navegación. 479 00:25:55,610 --> 00:25:59,500 Por lo tanto, el control de navegación es el que le da el botón Atrás de 480 00:25:59,500 --> 00:26:03,910 la aplicación de iOS, donde usted tiene, usted sabe, que la parte superior, una especie de, barra gruesa - 481 00:26:03,910 --> 00:26:06,480 donde se puede ir hacia atrás, o hacia adelante, et cetera. 482 00:26:06,480 --> 00:26:07,740 En este momento, no tengo eso. 483 00:26:07,740 --> 00:26:11,050 Y así, es por eso que no puedo hacer un empujón. 484 00:26:11,050 --> 00:26:12,480 >> Por lo tanto, hice clic en empuje accidentalmente, aquí. 485 00:26:12,480 --> 00:26:16,480 Y, de hecho, vamos a ejecutar el código, y debe estrellarse en mí. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Sólo si presiono el botón sin embargo, así - 488 00:26:22,960 --> 00:26:23,420 derecha. 489 00:26:23,420 --> 00:26:26,480 Por lo tanto, esto es malo. 490 00:26:26,480 --> 00:26:31,330 >> Y, como se puede ver, aquí, tener el mensaje de error. 491 00:26:31,330 --> 00:26:35,460 Por lo tanto, "segues empuje sólo pueden utilizarse cuando controlador de la fuente es administrado por un 492 00:26:35,460 --> 00:26:40,700 instancia de control de navegación de interfaz de usuario ". Por lo tanto, porque esto no estaba dentro de un 493 00:26:40,700 --> 00:26:44,030 controlador de navegación, Yo no podría hacer eso. 494 00:26:44,030 --> 00:26:48,782 >> Así que, ahora mismo, voy a volver a la carpeta, que se remonta al guión gráfico. 495 00:26:48,782 --> 00:26:51,680 >> AUDIENCIA: ¿Cuál es la navegación controlador, otra vez? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Entonces, ahora te voy a mostrar. 497 00:26:55,260 --> 00:26:56,200 Vamos a ver. 498 00:26:56,200 --> 00:27:00,510 Así que, voy a hacer clic en este punto de vista controlador, y luego me voy a ir 499 00:27:00,510 --> 00:27:03,920 hasta el producto - 500 00:27:03,920 --> 00:27:06,240 En realidad, no, lo siento - editor. 501 00:27:06,240 --> 00:27:08,360 Y yo voy a ir a - 502 00:27:08,360 --> 00:27:09,350 en realidad, lo hago clic en él? 503 00:27:09,350 --> 00:27:10,070 No. 504 00:27:10,070 --> 00:27:11,080 Eso es. 505 00:27:11,080 --> 00:27:16,270 Voy a subir al editor, bajar para empotrar en, y luego la navegación 506 00:27:16,270 --> 00:27:17,520 controlador. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> Aceptar. 509 00:27:20,720 --> 00:27:27,750 Y, mi espacio de trabajo se ve muy desordenado, así que vamos a limpiar esto. 510 00:27:27,750 --> 00:27:29,000 Por lo tanto, todo esto es storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 Y de esta manera - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 Aceptar, deje de - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Puedo construir algo rápidamente como este. 517 00:27:50,860 --> 00:27:53,020 Y entonces, ahora puedo volver atrás, ¿sabes? 518 00:27:53,020 --> 00:27:55,730 >> Pero esto es un poco aburrido, ¿verdad? 519 00:27:55,730 --> 00:28:03,020 Por lo tanto, lo que yo quiero hacer es, no quiero de hacer, simplemente, una opinión 520 00:28:03,020 --> 00:28:03,870 controlador. 521 00:28:03,870 --> 00:28:07,720 Digamos que yo quería hacer en realidad un controlador de vista de tabla, para que pueda poner en 522 00:28:07,720 --> 00:28:12,110 algunos colores agradables, en la tabla. 523 00:28:12,110 --> 00:28:16,210 >> Así que, ahora que he puesto en mi vista de tabla controlador, que necesito para conectarlo de nuevo 524 00:28:16,210 --> 00:28:18,560 de este botón para la controlador de vista. 525 00:28:18,560 --> 00:28:21,780 Así que tengo que hacer mi control, clic, lo arrastra de nuevo. 526 00:28:21,780 --> 00:28:27,318 Y ahora que puedo hacer empujón, porque puedo incrustar dentro de un controlador de navegación. 527 00:28:27,318 --> 00:28:32,210 >> AUDIENCIA: controlador de navegación sólo le permite ir de un lugar a otro? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: Si. 529 00:28:33,540 --> 00:28:38,670 Por lo tanto, más técnicamente, es un objeto donde - 530 00:28:38,670 --> 00:28:43,150 por lo que, en el interior de la barra de navegación objeto controlador, 531 00:28:43,150 --> 00:28:44,780 realiza un seguimiento de una matriz. 532 00:28:44,780 --> 00:28:48,300 Y esa matriz contiene toda la posterior ver controladores. 533 00:28:48,300 --> 00:28:51,560 Por eso cuando se presiona hacia atrás, vuelve a la página anterior. 534 00:28:51,560 --> 00:28:55,260 Debido a que el controlador de navegación objeto, o el código que se encarga de 535 00:28:55,260 --> 00:28:58,890 este objeto, tiene una matriz que mantiene seguimiento de estos controladores de vista, y 536 00:28:58,890 --> 00:29:01,870 puede entonces, usted sabe, dq la vista controlador y le devolverá la 537 00:29:01,870 --> 00:29:02,750 anterior. 538 00:29:02,750 --> 00:29:05,200 >> Por lo tanto, éste es un asunto técnico, sino - 539 00:29:05,200 --> 00:29:07,505 y yo te mostraré más adelante en código, si tenemos tiempo. 540 00:29:07,505 --> 00:29:10,270 Soy una especie de quedarse sin tiempo, pero - 541 00:29:10,270 --> 00:29:15,610 >> Así que, con la vista de tabla, lo que podemos hacer es - 542 00:29:15,610 --> 00:29:18,440 Por lo general se ajusta automáticamente Dynamic Prototype - 543 00:29:18,440 --> 00:29:20,640 vamos a hacer que las células estáticas, de lo contrario vamos a 544 00:29:20,640 --> 00:29:22,920 encontrarse con algunos problemas. 545 00:29:22,920 --> 00:29:28,470 >> Y luego, vamos a decir que voy tener una sección. 546 00:29:28,470 --> 00:29:31,000 Así, las secciones es como - 547 00:29:31,000 --> 00:29:35,160 si alguna vez has visto la aplicación de música, cuando tiene artistas, secciones haría 548 00:29:35,160 --> 00:29:37,830 ser los Atléticos a través Z's - 549 00:29:37,830 --> 00:29:38,780 las letras - 550 00:29:38,780 --> 00:29:42,600 y luego, ya sabes, el individuo filas serían los nombres de los artistas. 551 00:29:42,600 --> 00:29:47,460 Y así, lo que está de moda aquí, es que no puedo acceder a todos los objetos en el interior 552 00:29:47,460 --> 00:29:50,430 de mi guión gráfico a través de este menú desplegable, también. 553 00:29:50,430 --> 00:29:56,600 >> Por lo tanto, voy a hacer clic en mi sección, y quiero, ya sabes, tal vez cinco filas. 554 00:29:56,600 --> 00:30:00,770 Y luego, en el interior de cada fila, Quiero poner una etiqueta. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 Y voy a llamar a este azul. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 Y entonces, quiero poner un punto de vista de interfaz de usuario, que sé, tal vez por, como, una pequeña caja. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Para que yo pueda mostrar a la gente una vista previa del color. 561 00:30:28,710 --> 00:30:34,150 Y yo voy a volver a la propiedad y cambiar ese color a, oh, no lo sé 562 00:30:34,150 --> 00:30:35,510 saber, éste. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> Y luego, observe también, aquí, cuando tengo los accesorios, que pueden tener una gran cantidad 565 00:30:43,150 --> 00:30:46,160 de los diferentes accesorios que normalmente se ve. 566 00:30:46,160 --> 00:30:55,250 El indicador de la divulgación, el detalle, o marca de verificación, o simplemente detalle. 567 00:30:55,250 --> 00:30:59,080 Así que, tal vez podamos hacer, como, una revelación indicador, por ejemplo. 568 00:30:59,080 --> 00:31:03,540 >> Y entonces, ¿por qué no hacemos esto, copia pegarlos, y ponerlos en el 569 00:31:03,540 --> 00:31:06,740 siguiente fila de la tabla. 570 00:31:06,740 --> 00:31:08,115 Por lo tanto, podemos llamar a este amarillo. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 Y voy a tener que ampliar esto. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Hagámoslo amarillo. 575 00:31:17,290 --> 00:31:20,610 Y de esta manera, podemos copiar pegar nuestro camino. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 ¿Qué fue? 578 00:31:25,370 --> 00:31:26,620 Purple. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Así, se trata de todo el CS50 típica colores que has visto en clase - 581 00:31:34,740 --> 00:31:37,160 en realidad, lo siento - 582 00:31:37,160 --> 00:31:38,410 o en el sitio web. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Espero que ustedes pueden ver lo que estoy haciendo aquí. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 Aceptar. 587 00:31:57,890 --> 00:31:58,490 Una pasada. 588 00:31:58,490 --> 00:32:02,040 >> AUDIENCIA: ¿Cómo se agrega la fila inicialmente? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Entonces, la pregunta era, ¿cómo me añado la fila inicialmente? 590 00:32:04,740 --> 00:32:07,500 Entré en esta sección de la tabla - o la manera en que pueda 591 00:32:07,500 --> 00:32:09,200 seleccionar la sección de la tabla - 592 00:32:09,200 --> 00:32:11,250 y entonces, aquí, he actualizado el número de filas. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> Y, déjame la esperanza de que esto funciona. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 Aceptar. 597 00:32:31,480 --> 00:32:32,870 Vamos a ver si esto funciona. 598 00:32:32,870 --> 00:32:34,000 Oh, perfecto, increíble. 599 00:32:34,000 --> 00:32:35,300 Aceptar. 600 00:32:35,300 --> 00:32:40,330 Mientras yo estaba construyendo mi demo, algunos las cosas no estaban alineados, por lo que, gracias por 601 00:32:40,330 --> 00:32:42,510 los aplausos. 602 00:32:42,510 --> 00:32:42,920 >> Sí. 603 00:32:42,920 --> 00:32:44,770 Por lo tanto, vamos a ver. 604 00:32:44,770 --> 00:32:47,550 Vamos a hacer esto y nueve sólo para hacer todo - o en realidad, vamos a 605 00:32:47,550 --> 00:32:51,420 convertir todos estos en la divulgación indicadores. 606 00:32:51,420 --> 00:32:55,790 Y entonces, lo que quiero mostrar, también, era cómo puedo tomar cada uno de los 607 00:32:55,790 --> 00:32:59,230 filas de la tabla y haga que interactúan - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 No. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> Oh. 612 00:33:06,030 --> 00:33:07,230 Además, yo quiero mostrar - 613 00:33:07,230 --> 00:33:13,080 aquí, puedo poner el título de mi controlador de navegación, ¿verdad? 614 00:33:13,080 --> 00:33:17,090 Así que en realidad, te darás cuenta, tan pronto como incorporado este controlador de vista interior 615 00:33:17,090 --> 00:33:22,010 del controlador de navegación, vemos esta barra de navegación en la parte superior de nuestra 616 00:33:22,010 --> 00:33:25,340 representación del guión gráfico de un controlador de vista. 617 00:33:25,340 --> 00:33:29,270 Y así, lo que nos da, como, una visual, una especie de, guiar a nuestra pantalla visible. 618 00:33:29,270 --> 00:33:34,360 Esta es, obviamente, va a ser la barra de navegación. 619 00:33:34,360 --> 00:33:40,950 >> Y lo que yo quiero hacer de forma rápida, Ahora, se pone en otro - 620 00:33:40,950 --> 00:33:45,880 por lo que este controlador de vista de tabla que hice por teniendo uno de estos y arrastrándolo 621 00:33:45,880 --> 00:33:49,800 aquí, y eso es lo que me permitió rápidamente, en realidad, crear una vista de tabla 622 00:33:49,800 --> 00:33:50,850 controlador. 623 00:33:50,850 --> 00:33:54,100 Si tenemos el tiempo sin embargo, se le ver que, mediante programación, es una 624 00:33:54,100 --> 00:33:57,660 poco más difícil de crear una tabla vista regulador, porque hay 625 00:33:57,660 --> 00:34:02,520 hay un par de métodos que son necesaria para que usted, más o menos, anote 626 00:34:02,520 --> 00:34:07,130 a cabo a fin de que la vista de tabla controlador para que se muestre correctamente. 627 00:34:07,130 --> 00:34:15,340 >> Sin embargo, yo sólo quiero mostrar, ahora, un ejemplo de que, si me llevo esto, 628 00:34:15,340 --> 00:34:15,920 por ejemplo - 629 00:34:15,920 --> 00:34:18,290 Me he puesto en otro controlador de vista. 630 00:34:18,290 --> 00:34:27,320 Y ahora, vamos a decir que quiero controlar alt mi primer azul 631 00:34:27,320 --> 00:34:28,980 fila de la tabla a aquí. 632 00:34:28,980 --> 00:34:31,070 Y quiero llamar a este azul. 633 00:34:31,070 --> 00:34:32,570 Y entonces - 634 00:34:32,570 --> 00:34:34,159 veamos. 635 00:34:34,159 --> 00:34:41,050 Estoy en la vista ahora, y puedo cambiar el fondo en azul. 636 00:34:41,050 --> 00:34:45,945 >> Y así, fíjense, aquí, este menú desplegable menú también le da una jerarquía de todos 637 00:34:45,945 --> 00:34:47,040 de estos objetos. 638 00:34:47,040 --> 00:34:50,530 Así que una cosa importante a tener en cuenta, aquí, es que todas estas cosas, aquí - 639 00:34:50,530 --> 00:34:54,330 este controlador de vista de tabla, la tabla vista, vista de tabla Sección, vista de tabla 640 00:34:54,330 --> 00:34:57,169 celular - todos estos son objetos, en el código. 641 00:34:57,169 --> 00:35:03,752 Así que, ya sabes, una etiqueta en estos momentos se encuentra bajo la vista de contenido, etc. 642 00:35:03,752 --> 00:35:05,020 Así sucesivamente y así sucesivamente. 643 00:35:05,020 --> 00:35:08,765 >> Así que, si nos quedamos sin este código, debería ver algo - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 vamos a ver si esto - si. 646 00:35:17,870 --> 00:35:18,670 Así que, ahí vamos. 647 00:35:18,670 --> 00:35:22,120 Pero, si no hacemos eso, ninguno de estas otras cosas les. 648 00:35:22,120 --> 00:35:22,500 ¿Cierto? 649 00:35:22,500 --> 00:35:23,800 Así que sólo éste funciona. 650 00:35:23,800 --> 00:35:29,100 Y, por el bien de momento, no lo haré entrar, usted sabe, poniendo 651 00:35:29,100 --> 00:35:29,770 por los otros. 652 00:35:29,770 --> 00:35:32,020 Y este es el fin de, más o menos, del guión gráfico - 653 00:35:32,020 --> 00:35:33,400 lo que yo quería mostrar por storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> Y, tengo un ejemplo resuelto, En realidad, aquí mismo. 656 00:35:43,490 --> 00:35:48,090 Por lo tanto, este es el guión gráfico que he hecho anteriormente. 657 00:35:48,090 --> 00:35:52,740 Así que, como puedes ver, esto fue mi controlador de navegación. 658 00:35:52,740 --> 00:35:57,040 Luego tuve mi primer controlador de vista, Entonces tuve mi regulador vista de tabla, 659 00:35:57,040 --> 00:35:58,980 y luego tuve todos estos - 660 00:35:58,980 --> 00:36:01,180 por lo que antes, que estaba haciendo algo muy diferente. 661 00:36:01,180 --> 00:36:04,450 Así, excusar esas cosas. 662 00:36:04,450 --> 00:36:07,930 Probablemente voy a limpiarlo más tarde, antes Me lo enviaba a la producción. 663 00:36:07,930 --> 00:36:12,800 >> Pero, si nos encontramos con esto, ya veremos que todas las opciones son 664 00:36:12,800 --> 00:36:14,050 disponible para nosotros. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Excepto que yo no hice los fondos esos colores. 667 00:36:21,320 --> 00:36:26,510 Así, la aplicación simple agradable. 668 00:36:26,510 --> 00:36:28,340 >> Ahora, vamos a tratar de hacer frente a esta programación. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 Aceptar. 671 00:36:32,130 --> 00:36:37,570 Así que, para hacer eso, sólo vamos para iniciar un nuevo proyecto de Xcode. 672 00:36:37,570 --> 00:36:41,920 Vamos a hacer que una aplicación vacía ahora, porque no quiere tener la 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Así que, estoy simplemente restringiéndome no utilizar cualquiera de guión gráfico, y un 675 00:36:46,590 --> 00:36:49,170 aplicación vacía no lo hará dame un guión gráfico. 676 00:36:49,170 --> 00:36:52,256 Esto es sólo para prevenir a mí mismo de hacer trampa. 677 00:36:52,256 --> 00:36:54,428 Vamos a ver. 678 00:36:54,428 --> 00:36:55,360 Espere. 679 00:36:55,360 --> 00:36:55,960 Did I - 680 00:36:55,960 --> 00:36:56,448 Sí. 681 00:36:56,448 --> 00:36:57,698 Aceptar. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Derecha. 684 00:37:09,180 --> 00:37:16,790 Así pues, aquí, nos quedamos con nada más que código. 685 00:37:16,790 --> 00:37:19,460 Así que, déjame pasar esta ventana un poco más. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Derecha. 688 00:37:22,260 --> 00:37:28,160 Como se puede ver aquí, los únicos archivos que nos dan son AppDelegate.h y punto 689 00:37:28,160 --> 00:37:30,500 m, y no tenemos storyboard más. 690 00:37:30,500 --> 00:37:39,580 >> Así que si corremos esto, todavía vamos a llegar a la pantalla en blanco, gracias a Dios. 691 00:37:39,580 --> 00:37:42,280 OK - pantalla en blanco, pero nada más. 692 00:37:42,280 --> 00:37:45,260 Y, aquí está la parte importante. 693 00:37:45,260 --> 00:37:47,810 Aquí es donde sucede la acción. 694 00:37:47,810 --> 00:37:51,410 En las versiones anteriores, hay por lo general no hay código aquí, pero el 695 00:37:51,410 --> 00:37:55,600 storyboard proporciona esencialmente el código para esta parte. 696 00:37:55,600 --> 00:37:57,470 No voy a entrar en detalles sobre cómo hacerlo. 697 00:37:57,470 --> 00:38:02,890 >> Y lo que queremos hacer ahora es, queremos ir aquí, y este pequeño espacio 698 00:38:02,890 --> 00:38:05,050 se inicia la creación de nuestra aplicación de nuevo. 699 00:38:05,050 --> 00:38:06,092 Por lo tanto - 700 00:38:06,092 --> 00:38:06,318 sí? 701 00:38:06,318 --> 00:38:07,450 >> AUDIENCIA: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Sí, claro. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 Aceptar. 706 00:38:14,520 --> 00:38:17,380 Voy a estar escribiendo, así que esto no debería importa demasiado. 707 00:38:17,380 --> 00:38:17,940 Aceptar. 708 00:38:17,940 --> 00:38:22,720 >> Así, en primer lugar, recuerde que nosotros queríamos crear un controlador de navegación, ¿verdad? 709 00:38:22,720 --> 00:38:27,090 Y también, como se puede ver aquí, Xcode hace un gran trabajo de 710 00:38:27,090 --> 00:38:28,070 auto-llenado. 711 00:38:28,070 --> 00:38:31,650 Así que, como te fijas, los nombres de todo es mucho más que 712 00:38:31,650 --> 00:38:33,910 habitual, pero Xcode llena adentro para usted. 713 00:38:33,910 --> 00:38:35,710 Así que sólo puedo pulse Intro. 714 00:38:35,710 --> 00:38:40,180 >> Por lo tanto, quiero crear una interfaz de usuario de navegación puntero del controlador, y puedo llamarlo 715 00:38:40,180 --> 00:38:41,430 navigationController. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 Ahora, ¿qué hago ahora? 718 00:38:44,470 --> 00:38:49,510 Después de este signo igual, tengo que, primero, crear dentro de la memoria. 719 00:38:49,510 --> 00:38:53,790 Por lo tanto, yo voy a hacer NavigationController alloc - 720 00:38:53,790 --> 00:38:56,640 así, esto es similar a malloc, que ustedes utilizan en C - 721 00:38:56,640 --> 00:38:58,400 y luego, voy a init ella. 722 00:38:58,400 --> 00:39:03,670 >> Por lo tanto, es muy importante que cualquier objeto que se crea, que desea 723 00:39:03,670 --> 00:39:04,940 alloc e init ella. 724 00:39:04,940 --> 00:39:08,600 Eso va a crear y instantialize dentro de la memoria, y 725 00:39:08,600 --> 00:39:10,480 ahora usted puede utilizarlo. 726 00:39:10,480 --> 00:39:10,780 ¿De acuerdo? 727 00:39:10,780 --> 00:39:14,360 Si usted no hace eso, su objeto hace no existe, y se encontrará con un montón 728 00:39:14,360 --> 00:39:17,290 de problemas. 729 00:39:17,290 --> 00:39:20,250 >> Y entonces, quiero crear un controlador de vista, ¿no? 730 00:39:20,250 --> 00:39:25,580 Por lo tanto, quiero crear una UIViewController star - 731 00:39:25,580 --> 00:39:29,620 así, todo es un puntero en Objective-C, y yo voy a hacer 732 00:39:29,620 --> 00:39:31,600 algo similar, aquí - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 Aceptar. 736 00:39:40,150 --> 00:39:43,450 >> Y entonces lo que voy a hacer es, estoy ir a - así, recuerde cuando hicimos 737 00:39:43,450 --> 00:39:45,360 la inserción en el controlador de navegación? 738 00:39:45,360 --> 00:39:46,920 Esta es la forma de hacerlo en código. 739 00:39:46,920 --> 00:39:54,550 Usted va a hacer navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> AUDIENCIA: [inaudible]. 742 00:39:57,636 --> 00:39:59,030 ¿Ocurrirá esto para nosotros, o -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: Oh, sí. 744 00:40:00,080 --> 00:40:00,550 No. 745 00:40:00,550 --> 00:40:02,740 Me gusta más. 746 00:40:02,740 --> 00:40:04,670 No, que va a trabajar para usted, también. 747 00:40:04,670 --> 00:40:06,700 Por lo tanto, estos son todos los métodos. 748 00:40:06,700 --> 00:40:10,400 Así pushViewController es un método, y También, más específicamente, es una 749 00:40:10,400 --> 00:40:13,590 método de instancia de la interfaz de usuario controlador de navegación. 750 00:40:13,590 --> 00:40:20,030 Debido a que tuve que crear mi navegación de interfaz de usuario estrella controlador, y luego me 751 00:40:20,030 --> 00:40:24,510 puede llamar a este pushViewController en mi instancia específica de una navegación de interfaz de usuario 752 00:40:24,510 --> 00:40:25,010 controlador. 753 00:40:25,010 --> 00:40:29,490 >> AUDIENCIA: ¿Tenemos que hacer la exacta palabra, o es que ya existe para ello? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Sí, porque es un método. 755 00:40:31,380 --> 00:40:32,200 Es como una función. 756 00:40:32,200 --> 00:40:33,330 Es como printf. 757 00:40:33,330 --> 00:40:34,390 Es como scanf. 758 00:40:34,390 --> 00:40:36,250 Es como strcompare. 759 00:40:36,250 --> 00:40:40,310 Excepto que sabe lo que es posible que desee escribir, y darse cuenta de que siempre voy a 760 00:40:40,310 --> 00:40:42,740 llegar a las cosas que son legalmente permitido para usted. 761 00:40:42,740 --> 00:40:47,620 Así que, si no aparece nada aquí, entonces algo está mal. 762 00:40:47,620 --> 00:40:50,550 >> Así, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Así que, ahora, quiero empujar mi recién creado 764 00:40:52,580 --> 00:40:56,850 UIViewController y, a continuación, animada - 765 00:40:56,850 --> 00:40:57,470 tal vez no. 766 00:40:57,470 --> 00:41:00,110 Debido a que este va a ser el primer controlador de vista. 767 00:41:00,110 --> 00:41:03,210 Quiero decir, incluso si yo hice animada, probablemente no se mostrará, porque 768 00:41:03,210 --> 00:41:05,050 es la primera pantalla. 769 00:41:05,050 --> 00:41:06,540 >> Y recuerda que los soportes. 770 00:41:06,540 --> 00:41:08,850 Así, recordamos cómo se utilizaron los soportes? 771 00:41:08,850 --> 00:41:11,870 Y dentro de los corchetes, el objeto hace un llamado a un método - 772 00:41:11,870 --> 00:41:15,910 por lo que nuestro objetivo es el de navegación controlador, y el método es un impulso 773 00:41:15,910 --> 00:41:17,210 controlador de vista animada. 774 00:41:17,210 --> 00:41:21,920 Y ver cómo se toma en dos argumentos, y que están separados por el, más o menos, 775 00:41:21,920 --> 00:41:24,390 palabras, y dos puntos. 776 00:41:24,390 --> 00:41:28,300 Así, Objective-C intenta que sea agradable y fácil para que usted lea en voz alta - 777 00:41:28,300 --> 00:41:33,020 su código - y tenerla semi, más o menos, tiene sentido. 778 00:41:33,020 --> 00:41:37,150 >> Sin embargo, haciendo precisamente esto no es suficiente. 779 00:41:37,150 --> 00:41:39,780 Permítanme Alejar ahora. 780 00:41:39,780 --> 00:41:44,210 Si lo hace sólo esto no es suficiente para conseguimos lo que conseguimos con anterioridad. 781 00:41:44,210 --> 00:41:48,580 Así que aquí, te darás cuenta de que hay en realidad no va a haber ningún tipo de 782 00:41:48,580 --> 00:41:50,190 bar, aquí, ¿verdad? 783 00:41:50,190 --> 00:41:54,680 No hay barra de navegación, lo que significa que todavía no hemos conseguido. 784 00:41:54,680 --> 00:41:58,850 >> Y podemos probar eso, también, por, tal vez, cambiando el fondo de 785 00:41:58,850 --> 00:42:00,460 ViewController, ¿verdad? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 ah. 789 00:42:03,640 --> 00:42:07,690 Por lo tanto, ver cómo ViewController no tenía un color de fondo, a pesar de que 790 00:42:07,690 --> 00:42:08,780 querido acceder a él? 791 00:42:08,780 --> 00:42:14,080 Y eso es porque ViewController es un contenedor para la vista. 792 00:42:14,080 --> 00:42:19,490 Por lo tanto, tiene una propiedad de vista, que luego tiene un color de fondo. 793 00:42:19,490 --> 00:42:25,510 >> Y, puedo configurarlo, una especie de tediosamente, llamando el color 794 00:42:25,510 --> 00:42:28,130 en el objeto UIColor. 795 00:42:28,130 --> 00:42:33,210 Así, el aviso aquí, redcolor es un método. 796 00:42:33,210 --> 00:42:36,750 Es un método de clase de UIColor. 797 00:42:36,750 --> 00:42:40,820 Porque yo no tenía que crear un ejemplo real de un UIColor con el fin 798 00:42:40,820 --> 00:42:42,020 para llamar al método en él. 799 00:42:42,020 --> 00:42:45,050 Yo solo, simplemente, llamé en el nombre de tipo similar. 800 00:42:45,050 --> 00:42:49,620 Yo, como, llamado en int, int si tenía, como, un método a él, por ejemplo. 801 00:42:49,620 --> 00:42:52,380 >> Y así, si nos quedamos sin este código, vamos a observe que el fondo es 802 00:42:52,380 --> 00:42:53,540 en realidad, no rojo. 803 00:42:53,540 --> 00:42:54,790 Todavía es blanco. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 ¿Y cómo podemos conseguir alrededor de esto es, Observe cómo está el self.window. 806 00:43:04,550 --> 00:43:08,260 Es decir, al igual que, el envase final para su aplicación. 807 00:43:08,260 --> 00:43:11,630 Es lo último que contiene todo en la pantalla, para una 808 00:43:11,630 --> 00:43:13,650 iPhone o aplicación iPad. 809 00:43:13,650 --> 00:43:20,970 >> Y, convenientemente, self.window tiene esta propiedad llamada 810 00:43:20,970 --> 00:43:22,650 RootViewController. 811 00:43:22,650 --> 00:43:26,480 Y eso va a ser el puntero a el primer controlador de vista en el interior 812 00:43:26,480 --> 00:43:27,270 de su aplicación. 813 00:43:27,270 --> 00:43:32,000 Por lo tanto, lo que queremos hacer aquí, ahora, es para establecer que igual a nuestra navegación 814 00:43:32,000 --> 00:43:32,710 controlador. 815 00:43:32,710 --> 00:43:33,760 ¿Cierto? 816 00:43:33,760 --> 00:43:37,490 Debido a que, técnicamente, la navegación controlador es nuestra primera vista 817 00:43:37,490 --> 00:43:38,770 controlador. 818 00:43:38,770 --> 00:43:46,160 Se realiza un seguimiento de una serie de otro punto de vista controladores, y empujamos esta 819 00:43:46,160 --> 00:43:49,810 vista controlador en la matriz en el controlador de navegación. 820 00:43:49,810 --> 00:43:52,640 >> Por lo tanto, usted no quiere hacer esto. 821 00:43:52,640 --> 00:43:54,225 Eso en realidad no le ayudará. 822 00:43:54,225 --> 00:43:58,040 ¿Quieres hacer esto, si usted quería hacer un controlador de navegación, que más 823 00:43:58,040 --> 00:44:01,100 de ustedes probablemente porque usted querrá que, más o menos, tener algún tipo de, 824 00:44:01,100 --> 00:44:04,840 como, menú para volver a u página de inicio para volver a, en lugar de una 825 00:44:04,840 --> 00:44:05,470 pantalla vacía. 826 00:44:05,470 --> 00:44:05,920 ¿Sí? 827 00:44:05,920 --> 00:44:11,460 >> AUDIENCIA: ¿Es incómodo para hacer zoom en la - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Si. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Así que, sí. 831 00:44:15,720 --> 00:44:22,370 Este es el código, y ahora vamos a probarlo. 832 00:44:22,370 --> 00:44:27,920 >> Así que, ahí vamos. 833 00:44:27,920 --> 00:44:29,170 Magia. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Así, en Aceptar. 836 00:44:32,690 --> 00:44:34,420 Gracias. 837 00:44:34,420 --> 00:44:35,000 Aceptar. 838 00:44:35,000 --> 00:44:38,690 Así que ahora, lo que queremos hacer es - por lo que, estamos un poco limitado, aquí, ¿verdad? 839 00:44:38,690 --> 00:44:45,130 Potencialmente podríamos escribir todo dentro de este una función. 840 00:44:45,130 --> 00:44:48,470 Pero, no es así como el desarrollo de iOS por lo general funciona. 841 00:44:48,470 --> 00:44:53,030 >> Por lo tanto, lo que vamos a hacer es, estamos va a crear algunos archivos nuevos. 842 00:44:53,030 --> 00:44:57,110 Pero, más concretamente, vamos a crear otra clase Objective-C, o 843 00:44:57,110 --> 00:44:58,010 otro objeto - 844 00:44:58,010 --> 00:45:00,700 clase y objetos son intercambiables aquí. 845 00:45:00,700 --> 00:45:06,460 Y, así es como he podido, potencialmente, crear otra clase de controladores U. 846 00:45:06,460 --> 00:45:12,030 >> Así que, es una sub-clase, como te darás cuenta, aquí, es una subclase de la 847 00:45:12,030 --> 00:45:15,910 Controlador de vista de interfaz de usuario, pero no puedo llamarlo con otro nombre aquí. 848 00:45:15,910 --> 00:45:19,400 Yo podría llamar a este CS50, que podría llamar Este controlador de vista, yo podría llamar 849 00:45:19,400 --> 00:45:21,640 Este controlador de vista bla - 850 00:45:21,640 --> 00:45:22,400 lo que quiera. 851 00:45:22,400 --> 00:45:24,140 Esto es sólo el nombre de la clase. 852 00:45:24,140 --> 00:45:27,020 Sin embargo, va a ser importante porque, en esencia, lo que estoy haciendo 853 00:45:27,020 --> 00:45:29,720 aquí es, que estoy creando otro nombre de clase. 854 00:45:29,720 --> 00:45:34,140 Por lo tanto, va a ser, como, algunos especie de tipo o un objeto. 855 00:45:34,140 --> 00:45:35,910 Por lo tanto, debería ser un poco genérico. 856 00:45:35,910 --> 00:45:37,225 No va a ser muy específico. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> Y también, quiero señalar estas dos opciones. 859 00:45:44,480 --> 00:45:48,430 Debido a que estamos haciendo todo dentro de código, a veces es mucho más fácil 860 00:45:48,430 --> 00:45:53,540 traer a un archivo de interfaz, de manera que Yo, literalmente, puede arrastrar y soltar, como 861 00:45:53,540 --> 00:45:54,960 lo hicimos antes con guión gráfico - 862 00:45:54,960 --> 00:45:57,810 ya sabes, una etiqueta o un botón, o cualquier otra cosa. 863 00:45:57,810 --> 00:46:01,950 Y así, xibs son archivos que le permiten hacer eso, y usted tiene que conectarlo 864 00:46:01,950 --> 00:46:04,310 a este archivo de controlador de vista. 865 00:46:04,310 --> 00:46:06,540 >> Por lo tanto, voy a deliberadamente No comprobar esto. 866 00:46:06,540 --> 00:46:12,510 Por lo general, me gustaría comprobar esto, y si me sólo hice esto para el iPhone o el iPad, que 867 00:46:12,510 --> 00:46:16,340 sería comprobar esto y simplemente tener uno para, ya sabes, el iPhone o el iPad. 868 00:46:16,340 --> 00:46:19,750 Pero desde que estoy haciendo universales, voy para crear dos de los que más tarde. 869 00:46:19,750 --> 00:46:22,220 Por lo tanto, voy a deliberadamente desmarque esta. 870 00:46:22,220 --> 00:46:23,940 >> Esto también es muy importante. 871 00:46:23,940 --> 00:46:27,490 Muchas veces, he tenido errores cuando esto no se verificó. 872 00:46:27,490 --> 00:46:31,930 Y por eso, obviamente, este archivo no es, especie de, como, incluido o importada 873 00:46:31,930 --> 00:46:33,740 dentro de esta carpeta de prueba. 874 00:46:33,740 --> 00:46:38,180 Y así, mi código no tiene absolutamente ninguna idea de la existencia de este archivo, y 875 00:46:38,180 --> 00:46:41,080 que causa mucho dolor y las horas de depuración. 876 00:46:41,080 --> 00:46:44,360 Pero, basta con que se marca esta opción de modo que, ya sabes, el objetivo de este 877 00:46:44,360 --> 00:46:47,510 archivo es para esta aplicación. 878 00:46:47,510 --> 00:46:48,310 >> Aceptar. 879 00:46:48,310 --> 00:46:51,680 Así que, ahora que hemos creado dos nuevos archivos. 880 00:46:51,680 --> 00:46:54,050 Y estos archivos se ven bastante vacía. 881 00:46:54,050 --> 00:46:59,550 Y, en realidad, también vamos a continuar en mediante la creación de los archivos xib. 882 00:46:59,550 --> 00:47:03,690 Así que, con anterioridad, yo estaba en el Cocoa Touch desplegable. 883 00:47:03,690 --> 00:47:06,880 Ahora, yo voy a entrar en el usuario Táctil de interfaz, y como se puede ver, 884 00:47:06,880 --> 00:47:08,120 puede crear un guión gráfico. 885 00:47:08,120 --> 00:47:11,710 >> Así que, incluso empecé con un vacío aplicación, todavía puedo utilizar un 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Aunque, la cosa se complica en términos de la forma en la que desea conectarse 888 00:47:15,480 --> 00:47:16,820 que a su código. 889 00:47:16,820 --> 00:47:18,230 Por lo tanto, no voy a ir allí. 890 00:47:18,230 --> 00:47:22,160 >> Pero, ¿qué queremos hacer ahora es crear una vista. 891 00:47:22,160 --> 00:47:25,720 Y usted puede elegir para un iPhone o un iPad. 892 00:47:25,720 --> 00:47:30,180 Y por lo general, para denotar la diferencia - si usted está haciendo un 893 00:47:30,180 --> 00:47:31,950 aplicación universal - 894 00:47:31,950 --> 00:47:35,980 que o bien poner un iPhone subrayado, o se puede hacer un Twiddly. 895 00:47:35,980 --> 00:47:36,980 En realidad no importa. 896 00:47:36,980 --> 00:47:40,890 Se trata simplemente de que usted distinga que vista es para qué dispositivo. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> Y así, ahora mira. 899 00:47:44,430 --> 00:47:47,550 Tengo una pantalla de que puedo trabajar. 900 00:47:47,550 --> 00:47:53,530 Y así, por ejemplo, puedo poner una etiqueta aquí, ya sabes, y yo también poner 901 00:47:53,530 --> 00:47:54,820 otro botón aquí. 902 00:47:54,820 --> 00:47:58,730 No me molestaré en cambiar los valores aquí. 903 00:47:58,730 --> 00:48:09,050 >> Pero, lo que es importante aquí es que el propietario del archivo - 904 00:48:09,050 --> 00:48:13,660 así, estoy dentro del iPhone vista, archivo iPhone xib. 905 00:48:13,660 --> 00:48:18,050 Y en esta área de navegación o menú desplegable, yo quiero ir a la 906 00:48:18,050 --> 00:48:19,090 el propietario del archivo. 907 00:48:19,090 --> 00:48:22,630 Y esta es la realidad importante paso aquí. 908 00:48:22,630 --> 00:48:27,780 Quiero hacer la vista de clase controlador, por lo que este archivo es xib 909 00:48:27,780 --> 00:48:30,030 va a estar asociado con mi controlador de vista. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 Y todo lo que hago dentro de mi punto de vista controlador de programación es 912 00:48:39,360 --> 00:48:42,800 va a ser reflejada aquí. 913 00:48:42,800 --> 00:48:46,270 >> Así que, sin embargo, notar que - 914 00:48:46,270 --> 00:48:55,995 En realidad, vamos a hacer esta visión azul de fondo, por ejemplo. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 O verde. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 Y entonces, así que si te fijas, de nuevo en este código, aquí es donde llegamos a nuestra 919 00:49:07,950 --> 00:49:09,200 controlador de navegación. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> A pesar de que hicimos ese paso, es todavía va a ser de color rojo, no verde. 922 00:49:18,310 --> 00:49:20,350 Y hay una razón por qué. 923 00:49:20,350 --> 00:49:28,090 Se debe a que, cuando nos inited nuestro controlador de vista, aquí - 924 00:49:28,090 --> 00:49:30,010 lo siento, es un poco loco - 925 00:49:30,010 --> 00:49:34,520 cuando inited nuestro controlador de vista aquí, nos inited que del tipo general 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 ¿De acuerdo? 928 00:49:36,560 --> 00:49:40,560 Así que ni siquiera nos hacemos con esta clase. 929 00:49:40,560 --> 00:49:42,030 >> Así que recuerde, esto es como una clase ahora. 930 00:49:42,030 --> 00:49:47,160 Se puede considerar como un tipo, sólo como UIViewController es un tipo. 931 00:49:47,160 --> 00:49:51,080 Y con el fin de utilizar eso, ¿qué que tenemos que hacer es importarlo - 932 00:49:51,080 --> 00:49:52,520 ViewController importación - 933 00:49:52,520 --> 00:49:55,750 y, como se puede ver, AutoFills por mí. 934 00:49:55,750 --> 00:49:56,570 Así, ViewController - 935 00:49:56,570 --> 00:50:02,070 y ahora, he aquí, que puedo cambiar esta UIViewController a ViewController. 936 00:50:02,070 --> 00:50:05,050 Y ahora, aquí, puedo cambiar esto a ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Vamos a correr de nuevo. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 Todavía está rojo. 941 00:50:19,690 --> 00:50:23,370 Y la razón por la que es sigue en rojo es porque - 942 00:50:23,370 --> 00:50:26,230 woah, ¿qué pasó allí? 943 00:50:26,230 --> 00:50:31,500 Queríamos asociar este xib presentar ante el controlador de vista. 944 00:50:31,500 --> 00:50:37,540 Sin embargo, con el fin de hacer realidad que, tenemos que entrar en esto. 945 00:50:37,540 --> 00:50:42,980 Y cuando lo hacemos los valores init, que queremos hacer initWithNibName, y luego queremos 946 00:50:42,980 --> 00:50:48,910 hacer lo en cadena View_iPhone, por ejemplo. 947 00:50:48,910 --> 00:50:51,700 Puede pasar por alto el paquete aquí. 948 00:50:51,700 --> 00:50:54,965 >> Y esto va a permitir nosotros, en realidad - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, hay un problema. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Derecha. 953 00:51:09,980 --> 00:51:17,670 >> Y así, no es un problema porque, en nuestro archivo de vista xib, tenemos una etiqueta y 954 00:51:17,670 --> 00:51:18,720 tenemos un botón. 955 00:51:18,720 --> 00:51:23,660 Sin embargo, a pesar de que nos hemos conectado esos dos, no hay nada en el interior de 956 00:51:23,660 --> 00:51:27,440 ViewController.h o ViewController.m que reflejan las 957 00:51:27,440 --> 00:51:29,160 botones o esas etiquetas. 958 00:51:29,160 --> 00:51:32,425 Por lo tanto, tenemos que escribir aquellos en que propiedades del controlador de vista. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Así, así es como se declara una propiedad. 961 00:51:39,490 --> 00:51:43,422 Se necesita en, por lo general, estas dos opciones. 962 00:51:43,422 --> 00:51:48,690 A los efectos de nosotros y este seminario, Yo diría que, en general, 963 00:51:48,690 --> 00:51:52,250 la mayoría de las propiedades son no atómica y retener. 964 00:51:52,250 --> 00:51:55,420 Usted puede leer por Google buscar, usted sabe, la diferencia entre 965 00:51:55,420 --> 00:51:58,620 no atómica y retener en adelante, saber, Google o algo así. 966 00:51:58,620 --> 00:52:01,090 Y yo te llevaré a, como, Pila Desbordamiento, donde las personas tendrán 967 00:52:01,090 --> 00:52:03,605 respuestas para las diferencias entre aquellos. 968 00:52:03,605 --> 00:52:07,000 Pero por ahora, eso es lo que quieren preocuparse por. 969 00:52:07,000 --> 00:52:12,790 >> Y queremos hacer una etiqueta de interfaz de usuario, estrella, y podemos decir que es lo que queremos. 970 00:52:12,790 --> 00:52:15,710 Podemos llamar a esto, ya sabes, etiqueta. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 Y, vamos a crear otra uno para el botón. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 Y recuerde incluir el asterisco, porque se trata de punteros 975 00:52:29,910 --> 00:52:36,740 prácticamente en todas partes en el interior de Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Sin embargo, eso todavía no resuelve el problema, como se puede ver aquí. 977 00:52:42,110 --> 00:52:50,540 Y la razón se debe a que, cada vez que desee conectar una etiqueta xib o un 978 00:52:50,540 --> 00:52:55,690 botón para el programa, o el encabezado y el archivo de la aplicación, queremos 979 00:52:55,690 --> 00:52:58,255 añadir esta pieza de código - 980 00:52:58,255 --> 00:53:00,610 de salida. 981 00:53:00,610 --> 00:53:03,600 Tenga en cuenta que se trata de una palabra clave. 982 00:53:03,600 --> 00:53:07,970 >> Y, tan pronto como termine de escribir eso, debe tener estos 983 00:53:07,970 --> 00:53:09,100 dos círculos, aquí. 984 00:53:09,100 --> 00:53:11,200 Por lo general, no están llenos pulg 985 00:53:11,200 --> 00:53:12,920 No estoy seguro de por qué son. 986 00:53:12,920 --> 00:53:21,370 Pero por lo general, usted tendrá que manualmente conectarlos por ir a este lado del 987 00:53:21,370 --> 00:53:23,530 el área de servicios públicos. 988 00:53:23,530 --> 00:53:28,430 >> Y así, en este momento, tengo mi sello seleccionado, y quiero arrastrar este nuevo 989 00:53:28,430 --> 00:53:33,910 referencia de salida al propietario de mi archivo, y luego haga clic en Etiqueta. 990 00:53:33,910 --> 00:53:40,230 Así que ahora, por fin, esta etiqueta es conectado a esta etiqueta. 991 00:53:40,230 --> 00:53:44,950 Y esta etiqueta es lo que vamos a utilizar mediante programación para cambiar su 992 00:53:44,950 --> 00:53:49,250 texto, su fuente, su fondo de color, etc. 993 00:53:49,250 --> 00:53:52,430 >> Así que, ¿por qué no hacemos lo mismo para el botón? 994 00:53:52,430 --> 00:53:54,770 Y como te darás cuenta, para el botón, que es un poco más complicado. 995 00:53:54,770 --> 00:53:59,060 Porque, es decir, se supone que pulse en un botón, por lo que tiene mucho 996 00:53:59,060 --> 00:54:02,950 de opciones para los usuarios puede pulsar en un botón. 997 00:54:02,950 --> 00:54:06,570 Y luego, ya veremos más adelante que podemos conectar esto a nuestro 998 00:54:06,570 --> 00:54:09,140 código para hacer que funcione. 999 00:54:09,140 --> 00:54:12,770 >> Así que, por ahora, sin embargo, queremos conectar al botón real 1000 00:54:12,770 --> 00:54:13,570 dentro de nuestro código. 1001 00:54:13,570 --> 00:54:19,640 Así que vamos a la nueva toma de referencia, a continuación, realice el botón. 1002 00:54:19,640 --> 00:54:22,068 Ahora, vamos a correr de nuevo. 1003 00:54:22,068 --> 00:54:23,040 Uh oh. 1004 00:54:23,040 --> 00:54:23,890 Aceptar. 1005 00:54:23,890 --> 00:54:25,140 No sé lo que está pasando aquí ahora. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 Whoa. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 Sólo un momento, aquí. 1010 00:54:58,960 --> 00:55:02,490 >> En realidad, ¿por qué no nos tomamos un ver otro ejemplo en 1011 00:55:02,490 --> 00:55:05,800 por razones de tiempo. 1012 00:55:05,800 --> 00:55:06,200 Aceptar. 1013 00:55:06,200 --> 00:55:10,610 Así pues, aquí está el preparado más fácilmente ejemplo para ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Como se puede ver aquí, he incluido las propiedades de la 1016 00:55:17,110 --> 00:55:18,460 etiqueta y el botón. 1017 00:55:18,460 --> 00:55:20,370 Y entonces, esta pieza de código aquí - 1018 00:55:20,370 --> 00:55:21,830 este IBAction - 1019 00:55:21,830 --> 00:55:27,740 era una conexión con este botón de aquí. 1020 00:55:27,740 --> 00:55:33,940 Así como se puede ver aquí, Touch Up Inside está conectado al selector 1021 00:55:33,940 --> 00:55:37,390 llamado botón pulsado. 1022 00:55:37,390 --> 00:55:41,700 >> Por lo tanto, podemos ir realmente a través de la movimiento de nuevo, aquí, tomando Touch Up 1023 00:55:41,700 --> 00:55:48,750 Dentro y arrastrándolo a Propietario del archivo y, a continuación, 1024 00:55:48,750 --> 00:55:51,570 haga clic en el botón presionado. 1025 00:55:51,570 --> 00:55:52,820 Ahora, vamos a ejecutar nuestro código. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Así que ahora, este botón funciona ahora y nos llevará a la siguiente página. 1028 00:56:02,020 --> 00:56:08,430 >> Y, en términos de nuestro controlador de vista, esta es la parte del código que se llevó a 1029 00:56:08,430 --> 00:56:10,000 cuidar del botón presionado. 1030 00:56:10,000 --> 00:56:14,260 Y es importante señalar aquí, que He creado otro tipo de vista 1031 00:56:14,260 --> 00:56:16,330 controlador llama tabla controlador de vista. 1032 00:56:16,330 --> 00:56:19,900 Por lo tanto, esto era similar a una copia en storyboard, cuando me arrastré uno de 1033 00:56:19,900 --> 00:56:23,450 estos controladores de vista tabla en el guión gráfico. 1034 00:56:23,450 --> 00:56:24,470 Estoy creando otro 1035 00:56:24,470 --> 00:56:30,000 >> Puntero al controlador de vista de tabla, alloc y init-cuencia de ello, y luego hacer 1036 00:56:30,000 --> 00:56:34,490 controlador de navegación auto del punto, empujar ViewController, esta nueva 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 Y me he puesto la animación para sí, porque ahora dentro de mi aplicación, y 1039 00:56:39,750 --> 00:56:45,670 quieren ver realmente la animación va desde la página principal a la tabla 1040 00:56:45,670 --> 00:56:46,920 controlador de vista. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> AUDIENCIA: ¿Todavía te preocupes sobre la recogida de basura? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: ¿Qué es eso? 1044 00:56:51,840 --> 00:56:54,740 No. 1045 00:56:54,740 --> 00:56:58,970 Entonces, la pregunta era, ¿tiene para trabajar con la recolección de basura? 1046 00:56:58,970 --> 00:57:03,470 Así, Xcode 4 tuvo como ARC, que es el recuento de referencias automático. 1047 00:57:03,470 --> 00:57:06,120 Y así, por lo general cuando se inicia un nuevo proyecto, deberá comprobar que, debido a 1048 00:57:06,120 --> 00:57:09,440 en realidad nadie quiere tratar con liberación de memoria y otras cosas. 1049 00:57:09,440 --> 00:57:13,720 Pero creo que en Xcode 5, no hay ni siquiera esa opción en el nuevo proyecto. 1050 00:57:13,720 --> 00:57:16,750 Por lo tanto, de forma automática lo hace por usted. 1051 00:57:16,750 --> 00:57:16,920 ¿Sí? 1052 00:57:16,920 --> 00:57:20,970 >> AUDIENCIA: ¿Se puede exportar un PDF en el guión gráfico? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Sí, definitivamente. 1054 00:57:22,020 --> 00:57:28,180 Por lo tanto, todos estos serán incluidos en código fuente, así que ustedes pueden revisar 1055 00:57:28,180 --> 00:57:30,730 el proyecto Xcode real de ella. 1056 00:57:30,730 --> 00:57:31,105 ¿Sí? 1057 00:57:31,105 --> 00:57:35,944 >> AUDIENCIA: Pero, quiero decir, como, ¿puedo imprimir un PDF con mi storyboard? 1058 00:57:35,944 --> 00:57:38,920 Si yo sólo quiero exportar el imágenes que muestran a alguien. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: Ah, sí. 1060 00:57:39,160 --> 00:57:41,980 Creo que, tal vez, sólo puede tomar una captura de pantalla. 1061 00:57:41,980 --> 00:57:44,350 Sí, y les enviaremos una pantalla tiro o algo. 1062 00:57:44,350 --> 00:57:45,600 Sí. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Por lo tanto, vamos a ver. 1065 00:57:50,570 --> 00:57:56,470 En aras del tiempo, creo que eso es todo lo que puedo cubrir hoy. 1066 00:57:56,470 --> 00:57:59,600 Pero, yo sé que eso es, en realidad, sólo apenas tocando la superficie de iOS 1067 00:57:59,600 --> 00:58:00,370 desarrollo. 1068 00:58:00,370 --> 00:58:05,630 Por lo tanto, por favor no dude en ponerse en contacto conmigo si usted tiene alguna pregunta acerca de iOS 1069 00:58:05,630 --> 00:58:07,000 desarrollo. 1070 00:58:07,000 --> 00:58:12,840 Y, con suerte, voy a ser capaz de limpiar hasta una parte del código de la fuente 1071 00:58:12,840 --> 00:58:16,830 archivos de código, de modo que usted tendrá algún muy bonitos ejemplos para trabajar. 1072 00:58:16,830 --> 00:58:21,020 >> Aparte de eso, si ustedes van a la CS50 Hackathon, me puede o 1073 00:58:21,020 --> 00:58:25,730 no estar allí, y puedo echar una mano con un poco de desarrollo de iOS, también. 1074 00:58:25,730 --> 00:58:26,980 Así que, muchas gracias, chicos. 1075 00:58:26,980 --> 00:58:31,168