1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Benvido ao vexa seminario CS50 - 3 00:00:09,800 --> 00:00:11,630 Introdución ao iOS. 4 00:00:11,630 --> 00:00:13,290 Grazas a todos por teren benvida. 5 00:00:13,290 --> 00:00:16,610 Espero que estea tan animado como eu son sobre o IOS. 6 00:00:16,610 --> 00:00:22,300 O ano pasado, eu levei CS50 como un estudante de segundo ano, e eu basicamente aprendín IOS para o meu 7 00:00:22,300 --> 00:00:23,490 proxecto final. 8 00:00:23,490 --> 00:00:26,350 E foi moi - 9 00:00:26,350 --> 00:00:30,530 ben, non foi fácil, pero hai moitos tutoriais de apoio en liña. 10 00:00:30,530 --> 00:00:33,760 E eu realmente espero que con este seminario, eu vou dar a vostedes unha cabeza 11 00:00:33,760 --> 00:00:36,750 iniciar o desenvolvemento IOS 12 00:00:36,750 --> 00:00:40,490 >> Entón, en termos de desenvolvemento IOS, hai dúas cousas principais que nós 13 00:00:40,490 --> 00:00:42,090 quere cubrir hoxe. 14 00:00:42,090 --> 00:00:43,290 En primeiro lugar, a lingua - 15 00:00:43,290 --> 00:00:46,650 a linguaxe vai ser en Objective-C. Nós, en realidade, vai escoitar 16 00:00:46,650 --> 00:00:47,750 algo realmente emocionante. 17 00:00:47,750 --> 00:00:51,500 Así, pode xuntarse a mazá enteira comunidade de desenvolvedores e construír uns 18 00:00:51,500 --> 00:00:52,940 aplicacións realmente impresionantes. 19 00:00:52,940 --> 00:00:58,670 >> Ademais, o IOS 7 é fermoso, espero, para algúns de vós. 20 00:00:58,670 --> 00:01:01,130 Pero é controvertido, xa o sei. 21 00:01:01,130 --> 00:01:05,349 E, sobre todo, o que quero facer é guía a través de Objective-C, e tamén 22 00:01:05,349 --> 00:01:10,650 Xcode, que é o integrado ambiente de desenvolvemento que vai ser 23 00:01:10,650 --> 00:01:13,460 traballar en para IOS. 24 00:01:13,460 --> 00:01:19,140 >> E así, só unha palabra en Objective-C. Basicamente, é exactamente o mesmo que C, 25 00:01:19,140 --> 00:01:22,790 pero con unha morea de outras cousas. 26 00:01:22,790 --> 00:01:27,710 E así, máis estrictamente, é realmente un de C. definirse super Entón, calquera cousa que 27 00:01:27,710 --> 00:01:32,280 pode facer en C agora, o que se basicamente como pset de 0 a 6, vostede 28 00:01:32,280 --> 00:01:34,170 pode facer en Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Así, non sente medo sobre esta nova linguaxe que vai aprender. 30 00:01:38,620 --> 00:01:42,120 Xa Cubrimos unha morea de que, porque todo feito C pasado 31 00:01:42,120 --> 00:01:45,880 semestre, só que agora vai ter moito máis para traballar. 32 00:01:45,880 --> 00:01:49,270 E eu só vou leva-lo a través dun par de exemplos para destacar algúns 33 00:01:49,270 --> 00:01:53,920 das principais diferenzas que eu atope foron cando realmente importante que eu aprendín 34 00:01:53,920 --> 00:01:57,180 Objective-C no ano pasado. 35 00:01:57,180 --> 00:02:00,910 >> Ben, en realidade, polo que o outro punto é, Objective-C é, obviamente, 36 00:02:00,910 --> 00:02:02,200 orientada a obxectos. 37 00:02:02,200 --> 00:02:06,340 E nós imos discutir un pouco sobre o que significa isto máis tarde. 38 00:02:06,340 --> 00:02:11,340 Basicamente, é como como traballou con structs neste pset pasado, con 39 00:02:11,340 --> 00:02:13,360 nós e outros similares cousas así. 40 00:02:13,360 --> 00:02:17,110 Excepto, en Objective-C, todo é un obxecto, e vai ser 41 00:02:17,110 --> 00:02:20,720 pasando arredor de punteiros para obxectos en vez dos propios valores. 42 00:02:20,720 --> 00:02:25,050 Entón, é só algo importante para manter presente. 43 00:02:25,050 --> 00:02:29,140 >> Entón, por que non comezan con algúns diferenzas de sintaxe entre C e 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Quero destacar o # include, vostede sabe, io.h estándar en C e C + +, co 46 00:02:38,310 --> 00:02:44,030 a versión Objective-C de que, o que é # importación, e despois de algún tipo de 47 00:02:44,030 --> 00:02:44,790 ficheiro de cabeceira. 48 00:02:44,790 --> 00:02:48,165 Neste caso, sería UIKit, vostede sabe, reducir UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Tamén podería ser, xa sabe, MKMapView para cortar MKMapview.h se quere 50 00:02:53,560 --> 00:02:56,370 facer, como, un mapa dentro da súa aplicación. 51 00:02:56,370 --> 00:02:57,110 Cousas semellantes así. 52 00:02:57,110 --> 00:03:01,250 >> Entón, o importante é incluír agora trasladouse a importar. 53 00:03:01,250 --> 00:03:04,340 Pero a idea aínda permanece. 54 00:03:04,340 --> 00:03:10,460 Vai ser a importación de calquera tipo de ficheiro de cabeceira no seu programa. 55 00:03:10,460 --> 00:03:14,550 >> Tamén quero destacar a diferenza entre printf e NSLog. 56 00:03:14,550 --> 00:03:19,760 Con todo, como dixemos anteriormente, Objective-C é un super-rigoroso conxunto de 57 00:03:19,760 --> 00:03:22,800 C, o que significa que hai printf en Objective-C, tamén. 58 00:03:22,800 --> 00:03:24,340 Pero a maioría da xente non usan iso. 59 00:03:24,340 --> 00:03:28,245 A maioría das persoas usan este NSLog porque dálle un selo de tempo, e xa veremos 60 00:03:28,245 --> 00:03:29,780 Lo en acción máis tarde. 61 00:03:29,780 --> 00:03:33,560 Pero é, xeralmente, un máis útil forma de imprimir variables. 62 00:03:33,560 --> 00:03:38,220 >> E eu tamén quero destacar que NSLog leva exactamente do mesmo 63 00:03:38,220 --> 00:03:41,650 valores de espazo reservado como printf fai - 64 00:03:41,650 --> 00:03:45,900 así% d é para un int, % F é para un float. 65 00:03:45,900 --> 00:03:49,750 Con todo, quero destacar esta última un - 66 00:03:49,750 --> 00:03:52,960 NSLog% arroba - 67 00:03:52,960 --> 00:03:55,390 que é un espazo reservado para un obxecto. 68 00:03:55,390 --> 00:04:01,160 E, como dixen anteriormente, trátase Objective-C moi bonito sobre todo en obxectos, 69 00:04:01,160 --> 00:04:05,020 e por iso este vai entrar en uso cando desexa imprimir, quizais, quizais unha 70 00:04:05,020 --> 00:04:08,390 NSArray ou NSDictionary, ou un NSString. 71 00:04:08,390 --> 00:04:13,750 >> Así, tamén, ter en conta que, na nosa NSLog declaración, temos unha arroba diante 72 00:04:13,750 --> 00:04:15,380 da cita - 73 00:04:15,380 --> 00:04:20,769 que é para significar que as cordas, agora, en Objective-C son obxectos. 74 00:04:20,769 --> 00:04:23,310 Eles non son máis estrelas simplemente de caracteres. 75 00:04:23,310 --> 00:04:25,530 Son obxectos e son tratado como tal. 76 00:04:25,530 --> 00:04:28,690 >> Entón, é moi importante que, cando usa NSLog que leva nun NS 77 00:04:28,690 --> 00:04:32,580 corda, o que significa que terá para incluír un no na fronte do seu 78 00:04:32,580 --> 00:04:34,270 comiñas. 79 00:04:34,270 --> 00:04:38,290 E é por iso que ve, aquí, en todas as miña función chama a este NSLog, eu 80 00:04:38,290 --> 00:04:42,400 ter un no diante das citas, aínda aínda que a% d e% f de son 81 00:04:42,400 --> 00:04:45,200 todo o mesmo dende C. 82 00:04:45,200 --> 00:04:47,930 >> Todas as preguntas ata agora? 83 00:04:47,930 --> 00:04:50,920 Vou tentar pasar por iso rapidamente, de xeito que poidamos ter máis tempo para traballar 84 00:04:50,920 --> 00:04:55,210 con Xcode e Objective-C, de xeito que vostedes poden obter máis 85 00:04:55,210 --> 00:04:57,630 familiarizado con el. 86 00:04:57,630 --> 00:05:01,900 >> Logo quero destacar algo conceptualmente importante. 87 00:05:01,900 --> 00:05:05,130 Así, en C, a maioría das cousas son funcións. 88 00:05:05,130 --> 00:05:06,280 Facemos unha chamada de función. 89 00:05:06,280 --> 00:05:10,190 Declaramos funcións deste xeito, con o tipo de retorno primeiro, despois o 90 00:05:10,190 --> 00:05:13,570 nome da función, entre parénteses, e despois calquera que sexan os argumentos, o tipo de 91 00:05:13,570 --> 00:05:15,590 estes argumentos que queremos pasar dentro 92 00:05:15,590 --> 00:05:19,970 E Objective-C, porque todo é un obxecto ou clase - 93 00:05:19,970 --> 00:05:23,970 así clase e obxecto son dous termos que son principalmente sinónimo uns cos outros, 94 00:05:23,970 --> 00:05:28,270 para que eu poida empregar los alternativamente durante todo o seminario. 95 00:05:28,270 --> 00:05:34,090 >> Pero vai ver que temos métodos en Objective-C, en vez de funcións. 96 00:05:34,090 --> 00:05:36,390 E métodos pertencen aos obxectos. 97 00:05:36,390 --> 00:05:38,950 Polo tanto, así como, se cadra tomar por exemplo, o no - 98 00:05:38,950 --> 00:05:40,250 noso tipo de [inaudível] 99 00:05:40,250 --> 00:05:44,390 nó de pset 6 ou 5 - 100 00:05:44,390 --> 00:05:49,590 temos a palabra, a propiedade, ou o próximo punteiro nodo. 101 00:05:49,590 --> 00:05:53,880 Os métodos son simplemente funcións dentro dalgún tipo de estrutura. 102 00:05:53,880 --> 00:05:57,510 >> Así, neste caso, a estrutura sería o obxecto e, a continuación, o método é 103 00:05:57,510 --> 00:05:59,260 algo que pertence a un obxecto. 104 00:05:59,260 --> 00:06:02,650 E é así que ten que declarar, máis ou menos, un método. 105 00:06:02,650 --> 00:06:07,990 Podería comezar con, unha vez máis, o regreso tipo - entón, eu tente cor 106 00:06:07,990 --> 00:06:12,990 codificar as palabras clave aquí para que vostedes Pode ver, polo menos, o formato 107 00:06:12,990 --> 00:06:17,650 semellanzas entre a función declaracións e declaracións de método. 108 00:06:17,650 --> 00:06:21,990 Entón, comeza con, vostede sabe, un retorno tipo - neste caso, é unha matriz ou 109 00:06:21,990 --> 00:06:23,910 un punteiro NSArray - 110 00:06:23,910 --> 00:06:26,710 e entón ten este método. 111 00:06:26,710 --> 00:06:30,900 E entón, o que é interesante aquí é que, no canto de ter parénteses, nós 112 00:06:30,900 --> 00:06:32,900 ten eses dous puntos. 113 00:06:32,900 --> 00:06:38,450 E entón, diante dos nosos argumentos, nós poñer, de novo, entre parénteses o tipo 114 00:06:38,450 --> 00:06:39,370 do noso argumento. 115 00:06:39,370 --> 00:06:43,160 >> Entón, agora eu estou tentando facer o comparación entre, xa sabe, e n 116 00:06:43,160 --> 00:06:45,450 número, porque son ambos enteiros semellantes. 117 00:06:45,450 --> 00:06:49,580 E entón, o outro é un tipo NSUInteger. 118 00:06:49,580 --> 00:06:56,390 E entón, con Objective-C, cando quero ter varios argumentos en 119 00:06:56,390 --> 00:07:00,030 súa cláusula método, vostede, dalgún xeito, separa-los máis ou menos como este - 120 00:07:00,030 --> 00:07:03,790 Eu non estou seguro de como describilo, pero este é un bo exemplo de como 121 00:07:03,790 --> 00:07:06,530 pode ter varios argumentos alí. 122 00:07:06,530 --> 00:07:10,360 >> Pode, por suposto, só totalmente ignorar o colon andArray NSArray 123 00:07:10,360 --> 00:07:13,240 disposición se quere só un método que ten en un argumento. 124 00:07:13,240 --> 00:07:13,677 Si, pregunta. 125 00:07:13,677 --> 00:07:18,701 >> Audiencia: San ambos NSUInteger e NSArray argumentos que poden ser tomadas en 126 00:07:18,701 --> 00:07:21,530 dentro do NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: si. 128 00:07:22,060 --> 00:07:23,400 Entón, deixe-me explicar. 129 00:07:23,400 --> 00:07:23,790 Entón, si. 130 00:07:23,790 --> 00:07:30,260 Así, a pregunta era se NSUInteger e NSArray * tipos dos argumentos, 131 00:07:30,260 --> 00:07:31,570 e iso é correcto. 132 00:07:31,570 --> 00:07:35,700 Entón, quere especificar o que o tipo do seu argumento é. 133 00:07:35,700 --> 00:07:41,570 E aquí, eu estou tratando de presenta-lo a algunhas das sintaxe e vocabulario de 134 00:07:41,570 --> 00:07:45,910 Objective-C, de forma que estes son tipos reais que estará lidando. 135 00:07:45,910 --> 00:07:48,970 >> E como vai notar, matrices xa non son, de certa forma, 136 00:07:48,970 --> 00:07:50,780 cousas do soporte simple. 137 00:07:50,780 --> 00:07:52,060 Son obxectos. 138 00:07:52,060 --> 00:07:56,700 Aínda que, se somos á seguinte foto, podemos ver o que pudermos 139 00:07:56,700 --> 00:08:02,510 codificar un NSArray en Objective-C con simplemente un símbolo diante de 140 00:08:02,510 --> 00:08:04,190 os corchetes. 141 00:08:04,190 --> 00:08:08,650 Eu non son, en realidade, a certeza se Eu sintaticamente codificado unha matriz 142 00:08:08,650 --> 00:08:16,020 correctamente para a versión C, pero iso é debería estar nunha matriz C. 143 00:08:16,020 --> 00:08:19,760 >> Entón, iso é como, vostede sabe, quizais usar as funcións ou 144 00:08:19,760 --> 00:08:21,990 métodos que creamos anteriormente. 145 00:08:21,990 --> 00:08:22,250 Non? 146 00:08:22,250 --> 00:08:25,340 Entón, este é o lugar onde nós declaramos noso función e o noso método. 147 00:08:25,340 --> 00:08:28,020 E agora queremos usalos o noso programa, e este é 148 00:08:28,020 --> 00:08:29,450 como poderiamos facelo. 149 00:08:29,450 --> 00:08:32,400 Así, en C, que tería que, xa sabe, quizais, un bool b, e configuralo para 150 00:08:32,400 --> 00:08:36,549 igual a función, e despois pasa nos argumentos. 151 00:08:36,549 --> 00:08:39,190 >> En Objective-C, que é moi case o mesmo. 152 00:08:39,190 --> 00:08:43,370 Ten NSArray * my_array, e é será igual - agora, o único 153 00:08:43,370 --> 00:08:47,460 diferenza aquí é esa cousa de obxecto, que eu xa destacada en amarelo, e 154 00:08:47,460 --> 00:08:51,180 como se pode ver, en C, non hai ningunha outra palabra amarelo. 155 00:08:51,180 --> 00:08:54,170 E é porque os métodos pertencen cun certo obxecto. 156 00:08:54,170 --> 00:08:59,800 Entón é por iso que eu preciso ter un obxecto que, dalgún xeito, chama ese método en 157 00:08:59,800 --> 00:09:04,360 o número cero, e logo NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Calquera dúbida sobre iso? 159 00:09:05,350 --> 00:09:12,190 >> Imos ver eses conceptos en acción logo cando entramos nunha demo. 160 00:09:12,190 --> 00:09:13,400 Aceptar. 161 00:09:13,400 --> 00:09:17,170 Agora, quero falar un pouco brevemente sobre Xcode 5, que é o 162 00:09:17,170 --> 00:09:21,160 contorno de desenvolvemento integrado que estará a traballar. 163 00:09:21,160 --> 00:09:26,160 Sei que moitos de vostedes, ou algúns de vós, non teñen Macs, que é un problema 164 00:09:26,160 --> 00:09:30,490 Xcode porque non está dispoñible para Windows e PC. 165 00:09:30,490 --> 00:09:32,785 Non me pregunta por que, pero probablemente - 166 00:09:32,785 --> 00:09:33,730 si, corporativo. 167 00:09:33,730 --> 00:09:35,290 É igual. 168 00:09:35,290 --> 00:09:39,360 Pero de calquera xeito, polo que pido desculpas se algúns dos ten que baixar algún tipo de 169 00:09:39,360 --> 00:09:43,000 máquina virtual para Mac en Para realizar o Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Pero é un moi bacana software para o seu uso. 171 00:09:46,460 --> 00:09:51,280 >> E así, antes de mergullo en calquera tipo de demostración, eu só quero te amosar unha 172 00:09:51,280 --> 00:09:55,700 imaxe do que Xcode parece na súa ventá e tamén falar de 173 00:09:55,700 --> 00:09:57,670 o que este espazo todo é. 174 00:09:57,670 --> 00:10:01,600 Entón, é máis ou menos como aprender a usar Microsoft Word, agás que quere 175 00:10:01,600 --> 00:10:04,675 familiarizarse con toda cousas distintas que 176 00:10:04,675 --> 00:10:06,250 están a ocorrer aquí. 177 00:10:06,250 --> 00:10:11,160 >> Entón, primeiro, quero que apunte para a barra de ferramentas na parte superior. 178 00:10:11,160 --> 00:10:14,450 Verá que, na parte superior, vai ter o nome do ficheiro - 179 00:10:14,450 --> 00:10:18,100 ou, en realidade, o nome do proxecto e, a continuación, o nome do ficheiro. 180 00:10:18,100 --> 00:10:20,940 Tomé nota do xogo e os botóns de parada. 181 00:10:20,940 --> 00:10:24,210 Eses son os que vai ser usar para executar a aplicación en 182 00:10:24,210 --> 00:10:25,600 simulador - 183 00:10:25,600 --> 00:10:26,550 o simulador iOS. 184 00:10:26,550 --> 00:10:29,940 Isto vén automaticamente co Xcode 5, así que non se preocupe 185 00:10:29,940 --> 00:10:32,070 descarga de algún tipo de simulador. 186 00:10:32,070 --> 00:10:34,700 Só aperta o play e a continuación, el executa a súa aplicación. 187 00:10:34,700 --> 00:10:39,230 E pode xogar con vostede, e vai ver como funciona máis tarde. 188 00:10:39,230 --> 00:10:42,690 >> E entón, no centro, por suposto, é onde todo o seu código bonito é 189 00:10:42,690 --> 00:10:44,240 indo. 190 00:10:44,240 --> 00:10:48,340 E entón, no lado da man esquerda, ten iso, dalgún xeito, cartafol - 191 00:10:48,340 --> 00:10:50,340 navegación - 192 00:10:50,340 --> 00:10:53,970 e logo, tamén vai ver que, xunto coa icona do cartafol, hai unha 193 00:10:53,970 --> 00:10:57,680 banda de outros iconas alí que será útil máis tarde. 194 00:10:57,680 --> 00:11:04,710 >> E entón, no lado dereito é unha utilidade zona onde se pode traballar con 195 00:11:04,710 --> 00:11:09,620 algúns dos obxectos e indicar, vostede sabe, o que a cor debe ser, o que 196 00:11:09,620 --> 00:11:12,040 a fonte do texto debe ser, etcétera. 197 00:11:12,040 --> 00:11:15,890 A pesar de todo o que fai na área de utilidade, pode 198 00:11:15,890 --> 00:11:17,480 facer en código tamén. 199 00:11:17,480 --> 00:11:21,630 E así, eu vou estar pasando por dous exemplos de como usar, simplemente, ningún código de 200 00:11:21,630 --> 00:11:23,730 todos - ou código moi mínima - 201 00:11:23,730 --> 00:11:28,290 versos todo o código, só para que vostedes saber o que pode e non pode facer en 202 00:11:28,290 --> 00:11:29,260 Xcode e Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> E entón, finalmente, abaixo, na parte inferior, ten a área de depuración. 204 00:11:32,770 --> 00:11:37,270 Así, non necesita máis executar GDB, etcétera, en seus programas. 205 00:11:37,270 --> 00:11:39,180 El fai iso automaticamente para ti. 206 00:11:39,180 --> 00:11:42,880 E tamén se pode imprimir material para esta área. 207 00:11:42,880 --> 00:11:46,790 Entón, en realidade, máis tarde, nós imos pasar por mario.c, se vostedes aínda se lembran 208 00:11:46,790 --> 00:11:49,000 que, o Xcode. 209 00:11:49,000 --> 00:11:50,360 Entón iso debe ser divertido. 210 00:11:50,360 --> 00:11:55,870 >> E, a continuación, só para trae-lo de volta para Objective-C, quero destacar o que 211 00:11:55,870 --> 00:11:57,440 podes facer con se declaracións. 212 00:11:57,440 --> 00:12:03,160 Entón, vostede sabe, porque Objective-C é un super xogo de C, o único que fai é, 213 00:12:03,160 --> 00:12:06,890 literalmente, o mesmo que C. Só ten pequenas diferenzas. 214 00:12:06,890 --> 00:12:10,810 Entón, vai notar a forma dun se afirmación aínda é o mesmo - ten 215 00:12:10,810 --> 00:12:14,280 se, e así que ten parénteses con unha condición dentro, ela e, a continuación, 216 00:12:14,280 --> 00:12:17,150 claves para todo o que quere facer alí dentro. 217 00:12:17,150 --> 00:12:21,680 >> Con todo, eu quería poñer este slide-up aquí, simplemente para ilustrar que, 218 00:12:21,680 --> 00:12:25,680 porque estamos lidando con obxectos, agora, imos ter que usar esas cousas 219 00:12:25,680 --> 00:12:31,240 chamado así, é igual a cadea, que é, por casualidade, un método dun 220 00:12:31,240 --> 00:12:33,710 cadea ou un obxecto NSString. 221 00:12:33,710 --> 00:12:38,600 Así, palabras, neste caso, é un NSString obxecto, e el ten un método chamado é 222 00:12:38,600 --> 00:12:44,150 igual a corda, e entón nós estamos pasando nunha cadea codificada para ver 223 00:12:44,150 --> 00:12:48,110 se estas foren iguais unha á outra. 224 00:12:48,110 --> 00:12:51,580 >> Todas as preguntas ata agora? 225 00:12:51,580 --> 00:12:52,440 Aceptar. 226 00:12:52,440 --> 00:12:56,190 E, quero ir máis unha instrución tamén. 227 00:12:56,190 --> 00:13:01,420 >> Así, por exemplo, se quixésemos facer un loop ao longo da lonxitude dunha cadea en C, este 228 00:13:01,420 --> 00:13:03,710 debe ser familiar para ti. 229 00:13:03,710 --> 00:13:07,840 E, en Objective-C, quero para destacar que, dalgún xeito, 230 00:13:07,840 --> 00:13:09,235 método chamado conta. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Ben, en realidade, déixeme pode ter iso de volta. 233 00:13:15,550 --> 00:13:17,200 Conta é un método de matriz. 234 00:13:17,200 --> 00:13:21,070 Con todo, é máis especificamente un propiedade da matriz, que é porque 235 00:13:21,070 --> 00:13:22,380 pode usar a notación de punto. 236 00:13:22,380 --> 00:13:25,870 Pero eu non quero entrar moito de este material conceptual, eu só quero 237 00:13:25,870 --> 00:13:30,140 amosar-lle como as cousas parecerían como en Objective-C contra C. 238 00:13:30,140 --> 00:13:35,400 >> E tamén, quero resaltar que aínda que eu teño usado NSUInteger 239 00:13:35,400 --> 00:13:39,860 diante de todos os meus eus en Objective-C, tamén pode usar int, porque é int 240 00:13:39,860 --> 00:13:42,290 totalmente válida en Objective-C, tamén. 241 00:13:42,290 --> 00:13:42,475 Si? 242 00:13:42,475 --> 00:13:44,350 >> Audiencia: É só estilístico, ou sexa - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Yeah. 244 00:13:44,760 --> 00:13:46,060 Entón, como vai ver - 245 00:13:46,060 --> 00:13:49,390 por iso, o importante é que se só unha cuestión de estilo. 246 00:13:49,390 --> 00:13:54,820 Como vai ver, eu teño un, máis ou menos, estrela cousa asterisco, na parte inferior, e 247 00:13:54,820 --> 00:13:59,870 ese link leva a un estourido de pila formar, en que alguén explica 248 00:13:59,870 --> 00:14:03,640 a diferenza entre un int en NSInteger e un NSUInteger. 249 00:14:03,640 --> 00:14:05,540 E así, pode ler sobre iso máis tarde. 250 00:14:05,540 --> 00:14:07,640 Estas corredías van ser, claro, dispoñibles para ti. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Imos ver. 253 00:14:11,280 --> 00:14:12,150 OK, impresionante. 254 00:14:12,150 --> 00:14:15,410 Así, este tamén está incluído na corredías porque eu pensaba que iso era unha gran 255 00:14:15,410 --> 00:14:19,370 sitio web que presenta a sintaxe Objective-C. 256 00:14:19,370 --> 00:14:24,410 Entón, en realidade, por que non imos pasar Chrome e confía este sitio web? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Correcto. 259 00:14:31,300 --> 00:14:36,670 Entón, o que quero amosar-lle caras aquí é esta foto. 260 00:14:36,670 --> 00:14:41,630 Entón, iso é, de certa forma, será o que vai ver o interior de calquera 261 00:14:41,630 --> 00:14:42,890 Arquivo Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 En realidade, por que non pode ter un momento para, dalgún xeito, levar iso dentro 264 00:14:51,430 --> 00:14:53,470 >> Así, este libro - 265 00:14:53,470 --> 00:14:55,880 que é o obxecto que estamos lidando. 266 00:14:55,880 --> 00:14:59,680 E entón, é, obviamente, será herdado dalgún outro obxecto, pero 267 00:14:59,680 --> 00:15:01,810 non se preocupe con iso. 268 00:15:01,810 --> 00:15:04,430 E, a continuación,, é, quizais, ten algunhas variables membro. 269 00:15:04,430 --> 00:15:09,160 >> A cousa importante que quero amosar-lle son os métodos de instancia, aquí. 270 00:15:09,160 --> 00:15:12,670 Así, os métodos de instancia indícanse por este guión. 271 00:15:12,670 --> 00:15:15,550 E entón, como vai entender, estamos xa empezando a ver o paradigma 272 00:15:15,550 --> 00:15:17,670 para declaración de método, non? 273 00:15:17,670 --> 00:15:22,670 O tipo de retorno, o nome do método, e logo o tipo do argumento, e 274 00:15:22,670 --> 00:15:24,660 a continuación, o nome do argumento. 275 00:15:24,660 --> 00:15:29,090 E este signo negativo significa que é un método de exemplo, o que significa que 276 00:15:29,090 --> 00:15:32,270 estes métodos só están dispoñibles para obxectos que foron instanciados. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Para contrastar, que métodos cun plus asinar diante deles son de clase 279 00:15:39,100 --> 00:15:43,640 métodos, o que significa que pode chamar estes métodos, mesmo se non ten 280 00:15:43,640 --> 00:15:45,970 un obxecto creado aínda. 281 00:15:45,970 --> 00:15:51,600 Así, para un exemplo claro, NSString é unha clase. 282 00:15:51,600 --> 00:15:55,850 E pode chamar, por exemplo, métodos de clase NSString - 283 00:15:55,850 --> 00:15:58,660 o real, como, palabra NSString. 284 00:15:58,660 --> 00:16:02,050 >> Con todo, a fin de utilizar estes métodos, o que realmente 285 00:16:02,050 --> 00:16:03,460 Debe crear unha cadea. 286 00:16:03,460 --> 00:16:08,980 Por exemplo, NSString corda estrela é igual a en aspa, Ola mundo. 287 00:16:08,980 --> 00:16:10,910 E entón, pode utilizar estes métodos - 288 00:16:10,910 --> 00:16:11,990 métodos de instancia - 289 00:16:11,990 --> 00:16:14,790 sobre esa secuencia Ola mundo. 290 00:16:14,790 --> 00:16:17,825 Entón, esa é a diferenza entre métodos de instancia e métodos de clase. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> E, nós cuberto só esta parte. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Propiedades son outra cousa que son dentro de obxectos, basicamente. 295 00:16:33,750 --> 00:16:37,530 E declaralo los con a palabra chave na propiedade. 296 00:16:37,530 --> 00:16:39,940 Ten estas opcións, aquí, que eu vou explicar máis tarde, cando 297 00:16:39,940 --> 00:16:43,110 imos a unha demo. 298 00:16:43,110 --> 00:16:43,660 Si? 299 00:16:43,660 --> 00:16:43,950 Oi 300 00:16:43,950 --> 00:16:45,440 >> Audiencia: Vostede podería aumentar o zoom, por favor? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: Ah, si. 302 00:16:46,130 --> 00:16:46,560 Sentímolo. 303 00:16:46,560 --> 00:16:49,140 >> Audiencia: Grazas. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Isto debe ser moito mellor. 305 00:16:50,005 --> 00:16:51,240 >> Audiencia: Yeah. 306 00:16:51,240 --> 00:16:53,940 Grazas. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Si, por favor, lembre-me se Eu esquezo para ampliar ou diminuír o zoom. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Entón, iso é todo o que eu quería para amosar-lle a - 310 00:17:03,570 --> 00:17:05,970 Guau, iso é moi - 311 00:17:05,970 --> 00:17:06,790 a este sitio. 312 00:17:06,790 --> 00:17:12,210 Entón, imos volver aos nosos diapositivas. 313 00:17:12,210 --> 00:17:17,819 >> En realidade, agora imos dar un momento para mergullar nunha demo. 314 00:17:17,819 --> 00:17:25,490 Entón, imos comezar cunha novo proxecto Xcode. 315 00:17:25,490 --> 00:17:33,040 Entón, se vai abrir o Xcode en todos súas máquinas, debe levar moito 316 00:17:33,040 --> 00:17:36,720 páxina onde di, como, sexa aberto un proxecto existente ou un novo 317 00:17:36,720 --> 00:17:39,230 proxecto, e ten que facer clic nun novo proxecto. 318 00:17:39,230 --> 00:17:41,477 E entón, debe tomar a esta pantalla. 319 00:17:41,477 --> 00:17:41,593 Si? 320 00:17:41,593 --> 00:17:44,279 >> Audiencia: Se non ten un Mac, nós só unha especie de relaxarse? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: Ou ollar en con alguén, si. 322 00:17:46,870 --> 00:17:47,740 É. 323 00:17:47,740 --> 00:17:50,660 Pode relaxarse ​​tamén. 324 00:17:50,660 --> 00:17:51,570 Aceptar. 325 00:17:51,570 --> 00:17:55,410 >> Entón, o que imos facer primeiro, agora, é, en realidade, nós imos facer un 326 00:17:55,410 --> 00:17:56,600 aplicación única visión. 327 00:17:56,600 --> 00:18:01,340 Entón, se observar, o que é óptimo sobre Xcode e soporte de Apple para 328 00:18:01,340 --> 00:18:05,690 desenvolvedores é que ten unha morea de templates para traballar xa. 329 00:18:05,690 --> 00:18:09,210 Podería, por exemplo, facer unha aplicación mestre-detalle. 330 00:18:09,210 --> 00:18:10,920 Pode facer un xogo - 331 00:18:10,920 --> 00:18:13,860 e de feito, eu non vou entrar en xogos, porque os xogos son unha historia diferente 332 00:18:13,860 --> 00:18:15,320 para o desenvolvemento do IOS. 333 00:18:15,320 --> 00:18:18,930 E eles están tipo de separar, polo que non vou entrar nesa. 334 00:18:18,930 --> 00:18:22,580 >> Entón, ten baseado en páxina aplicacións. 335 00:18:22,580 --> 00:18:24,010 Ten unha aplicación de guía - 336 00:18:24,010 --> 00:18:29,350 así como, por exemplo, o Bank of America probablemente ten, así, unha aplicación con guías. 337 00:18:29,350 --> 00:18:32,140 É quen onde ten os botóns na parte inferior. 338 00:18:32,140 --> 00:18:34,750 E entón, ten un xogo Kit Sprite. 339 00:18:34,750 --> 00:18:38,670 >> Ou pode traballar a partir de cero, o que é o que imos facer despois. 340 00:18:38,670 --> 00:18:42,470 Pero imos, en primeiro lugar, comezar con unha única aplicación vista. 341 00:18:42,470 --> 00:18:48,590 Entón, el vai pedir un nome de produto, e podemos só facer proba. 342 00:18:48,590 --> 00:18:50,190 Nome da organización - 343 00:18:50,190 --> 00:18:54,140 así, o nome da organización, identificador de empresa - 344 00:18:54,140 --> 00:18:58,100 quen son importantes se está indo para poñer a súa aplicación na App Store. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Fóra iso, o seu código vai correr absolutamente ben sen iso. 347 00:19:05,116 --> 00:19:09,940 >> Isto vai ser importante se quere - así, por si só, como, introduza o seu programa 348 00:19:09,940 --> 00:19:14,080 para o seu teléfono ou algo así, e proba con iso, vostede sabe, na vida real - 349 00:19:14,080 --> 00:19:15,360 este vai ser importante. 350 00:19:15,360 --> 00:19:20,110 Isto tende a ser normalmente asociado algún tipo de conta de desenvolvedor 351 00:19:20,110 --> 00:19:20,970 con Apple. 352 00:19:20,970 --> 00:19:24,740 >> E así, eu sei, probablemente, moitos de vostedes Non terá ningún contas de desenvolvedores. 353 00:19:24,740 --> 00:19:26,460 Sei que a universidade ten un. 354 00:19:26,460 --> 00:19:27,630 Coido que CS ten un. 355 00:19:27,630 --> 00:19:32,770 Pero, que me pode enviar correo-e e eu vou probar para descubrir isto para vostede. 356 00:19:32,770 --> 00:19:38,210 Pero agora, eu acabo de poñer en algunhas cousas aquí de espazo reservado. 357 00:19:38,210 --> 00:19:41,250 >> E pode, por suposto, aquí, escolla se quere que sexa o único en 358 00:19:41,250 --> 00:19:44,410 iPhone, o iPad, ou ambos - 359 00:19:44,410 --> 00:19:46,630 aplicación universal. 360 00:19:46,630 --> 00:19:56,170 Así, por agora, imos facer universal, só ver ambos lados da plataforma. 361 00:19:56,170 --> 00:19:57,120 >> Imos ver. 362 00:19:57,120 --> 00:20:01,510 Entón, agora, eu vou gardar Lo nalgún tipo de cartafol. 363 00:20:01,510 --> 00:20:04,500 Non importa onde - vostede Sempre pode movela máis tarde. 364 00:20:04,500 --> 00:20:09,380 E, agora, somos levados ao noso proxecto Xcode. 365 00:20:09,380 --> 00:20:12,890 Eu non me preocuparía con todo isto. 366 00:20:12,890 --> 00:20:17,510 Suxiro non tocar en calquera tanto, a menos que saiba exactamente o que 367 00:20:17,510 --> 00:20:18,260 está facendo. 368 00:20:18,260 --> 00:20:21,750 Entón, todo isto, só ignore na súa maior parte. 369 00:20:21,750 --> 00:20:26,940 Non vai ter que tocalo, e se romper algunhas cousas aquí, 370 00:20:26,940 --> 00:20:28,600 está un pouco complicado. 371 00:20:28,600 --> 00:20:32,480 >> Entón, por que non mirar para os ficheiros no 372 00:20:32,480 --> 00:20:34,700 á esquerda na nosa navegador. 373 00:20:34,700 --> 00:20:37,060 Aquí temos AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Temos AppDelegate.m Entón, como vai previo aviso, temos arquivos de cabeceira, que 375 00:20:43,430 --> 00:20:45,720 rematar en punto h, e temos implantación - 376 00:20:45,720 --> 00:20:46,970 En realidade, déixeme zoom in 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 Déixeme zoom in 380 00:20:59,940 --> 00:21:05,810 >> Seguro, así que ten ficheiros de cabeceira e ten ficheiros de implementación. 381 00:21:05,810 --> 00:21:07,060 En realidade - 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 Isto é un pouco raro, pero pense comigo. 385 00:21:11,800 --> 00:21:16,140 Entón, por que nós escoller unha única visión aplicación, nós imos ser 386 00:21:16,140 --> 00:21:17,340 traballar con storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Entón, storyboard é algo que Apple xurdiu coa realmente axudar 388 00:21:22,140 --> 00:21:26,550 desenvolvedores rapidamente prototipo súas aplicacións. 389 00:21:26,550 --> 00:21:29,410 Entón, este é o lugar onde podes crear unha aplicación sen escribir unha 390 00:21:29,410 --> 00:21:31,710 soa liña de código. 391 00:21:31,710 --> 00:21:35,390 Con todo, na nosa aplicación único punto de vista, nós, por suposto, ten un 392 00:21:35,390 --> 00:21:41,270 ficheiro para o noso punto de vista, o que é un controlador de punto de vista. 393 00:21:41,270 --> 00:21:45,150 Entón, nós temos a cabeceira eo ficheiro de implementación, aquí. 394 00:21:45,150 --> 00:21:52,350 >> E, eu estou indo a afastar agora porque imos ter para traballar no storyboard. 395 00:21:52,350 --> 00:21:55,190 Entón, aquí está o noso punto de vista. 396 00:21:55,190 --> 00:22:00,120 Se nós, simplemente, executar a aplicación agora, non hai moi emocionante a suceder. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Así, podes ver esta pantalla branca. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> E, na nosa área de servizos, podemos engadir unha morea de cousas distintas para el. 401 00:22:14,010 --> 00:22:19,290 Entón, cando está lidando con pantallas en iOS, controladores de vista son o 402 00:22:19,290 --> 00:22:23,150 obxectos que encapsulam, dalgunha forma, os seus puntos de vista. 403 00:22:23,150 --> 00:22:26,980 Así, un controlador de vista sempre ten unha propiedade chamada vista. 404 00:22:26,980 --> 00:22:29,610 E ese punto de vista, normalmente, contén, vostede sabe, o que 405 00:22:29,610 --> 00:22:30,810 quero ver nunha pantalla. 406 00:22:30,810 --> 00:22:39,210 >> Entón, así, imos comezar por poñer, quizais, quizais un marcador. 407 00:22:39,210 --> 00:22:41,450 Entón, imos poñer unha etiqueta en alí - 408 00:22:41,450 --> 00:22:44,080 poñelas no medio. 409 00:22:44,080 --> 00:22:49,560 Entón, agora que prema na etiqueta, eu pode ir ao inspector de propiedades 410 00:22:49,560 --> 00:22:51,510 e comezar a cambiar o seu valor. 411 00:22:51,510 --> 00:22:55,040 Imos chamalo CS50 Colours. 412 00:22:55,040 --> 00:22:58,220 >> E, eu tamén pode cambiar o tipo de letra. 413 00:22:58,220 --> 00:23:02,630 Así, no canto de facer sistema, que é o estándar, podemos facer un personalizado. 414 00:23:02,630 --> 00:23:03,770 Podemos cambiar - 415 00:23:03,770 --> 00:23:06,453 vostede sabe, ultraleve, facelo 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 E entón, podemos facer a nosa caixa grande. 418 00:23:11,370 --> 00:23:14,410 >> Audiencia: Pensas que pode ampliar en só un pouco máis, quizais? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: Si? 420 00:23:14,810 --> 00:23:16,196 Aceptar. 421 00:23:16,196 --> 00:23:17,450 >> Audiencia: Só ten que tocar isto? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Imos ver. 423 00:23:19,020 --> 00:23:20,382 Será que isto funciona? 424 00:23:20,382 --> 00:23:22,270 >> Audiencia: Só ten que pasar o Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Por suposto. 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 Incrible. 429 00:23:26,275 --> 00:23:27,072 >> Audiencia: A etiqueta abaixo? 430 00:23:27,072 --> 00:23:28,920 A etiqueta? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: Qué é isto? 432 00:23:29,480 --> 00:23:32,050 >> Audiencia: O desplegable foi a etiqueta baixo? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Entón, a pregunta era, o que desplegable foi a etiqueta baixo? 434 00:23:35,170 --> 00:23:37,260 Débese, simplemente, estar aquí abaixo. 435 00:23:37,260 --> 00:23:39,330 Creo que é unha cousa cubo. 436 00:23:39,330 --> 00:23:40,910 Pero, xeralmente, ese é o estándar - 437 00:23:40,910 --> 00:23:43,250 Eu só vou aquí ata eu atopar unha etiqueta. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 É. 440 00:23:47,730 --> 00:23:48,950 >> Entón, agora temos a nosa etiqueta. 441 00:23:48,950 --> 00:23:51,040 Imos centrar-lo. 442 00:23:51,040 --> 00:23:56,410 E Xcode dános directrices para centrar obxectos. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Entón, agora imos realizar o noso código novo. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Alí imos nós. 447 00:24:08,800 --> 00:24:10,310 Entón, nós temos CS50 Colours. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 E agora, imos poñer un botón alí, non? 450 00:24:15,420 --> 00:24:17,480 Porque queremos facer este interactivo. 451 00:24:17,480 --> 00:24:19,410 Entón, imos poñer un botón aquí. 452 00:24:19,410 --> 00:24:39,020 E nós imos chamar este botón "tap aquí para continuar. "Imos centraliza-lo, tamén 453 00:24:39,020 --> 00:24:39,990 De feito, xa está centrado. 454 00:24:39,990 --> 00:24:40,630 É. 455 00:24:40,630 --> 00:24:43,130 >> Entón, agora temos un botón. 456 00:24:43,130 --> 00:24:53,000 E si correr de novo, nós imos ter un pequeno botón agradable aquí. 457 00:24:53,000 --> 00:24:56,520 E podo facer clic sobre el, pero el non fai nada, porque non fixemos 458 00:24:56,520 --> 00:24:58,500 nada co botón aínda. 459 00:24:58,500 --> 00:25:01,740 >> Entón, imos crear un outro punto de vista, non? 460 00:25:01,740 --> 00:25:04,160 Entón, imos dicir que quero tocar ese botón e quero 461 00:25:04,160 --> 00:25:05,730 ir a outra páxina - 462 00:25:05,730 --> 00:25:06,820 outro punto de vista. 463 00:25:06,820 --> 00:25:14,440 O que vou facer é, podo crear un controlador de vista, non? 464 00:25:14,440 --> 00:25:19,690 Agora eu vou facer clic no meu botón, e entón, o importante é que eu vou 465 00:25:19,690 --> 00:25:20,910 click - ou - 466 00:25:20,910 --> 00:25:23,660 si, control de prensa no meu teclado. 467 00:25:23,660 --> 00:25:24,880 Control. 468 00:25:24,880 --> 00:25:27,005 Preme o botón e arrastra. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Entón, lembre de manter a tecla de control. 471 00:25:33,550 --> 00:25:35,160 Imos facelo de novo. 472 00:25:35,160 --> 00:25:40,930 Entón, Manteña o control, fai clic e arrastra para o que quere facer. 473 00:25:40,930 --> 00:25:41,520 Aceptar. 474 00:25:41,520 --> 00:25:43,610 >> E agora, eu teño varias opcións aquí. 475 00:25:43,610 --> 00:25:47,900 I pode empurrar, ou podo facer un modalidade, ou podo facer un costume. 476 00:25:47,900 --> 00:25:50,900 Push é só se ten unha controlador de navegación. 477 00:25:50,900 --> 00:25:54,270 Neste momento, a nosa primeira vista controlador non está dentro de calquera 478 00:25:54,270 --> 00:25:55,610 controlador de navegación. 479 00:25:55,610 --> 00:25:59,500 Así, o controlador de navegación é o que lle dá o botón Voltar do 480 00:25:59,500 --> 00:26:03,910 o app IOS onde ten, xa sabe, que top, tipo, bar de espesor - 481 00:26:03,910 --> 00:26:06,480 onde pode ir cara atrás, ou para adiante, etcétera. 482 00:26:06,480 --> 00:26:07,740 Agora, eu non teño iso. 483 00:26:07,740 --> 00:26:11,050 E así, é por iso que eu non podo facer un empurrón. 484 00:26:11,050 --> 00:26:12,480 >> Entón, prema no impulso accidentalmente, aquí. 485 00:26:12,480 --> 00:26:16,480 E, de feito, imos executar o código, e debe bater en min. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Só se eu premer o botón con todo, así que - 488 00:26:22,960 --> 00:26:23,420 dereita. 489 00:26:23,420 --> 00:26:26,480 Entón, iso é malo. 490 00:26:26,480 --> 00:26:31,330 >> E, como se pode ver, aquí, nós ten a mensaxe de erro. 491 00:26:31,330 --> 00:26:35,460 Entón, "segues push só se pode usar cando controlador de fonte é xestionado por un 492 00:26:35,460 --> 00:26:40,700 instancia do controlador de navegación UI ". Así, xa que este non estaba dentro dun 493 00:26:40,700 --> 00:26:44,030 controlador de navegación, Eu non podería facelo. 494 00:26:44,030 --> 00:26:48,782 >> Entón, agora, eu vou volver ao cartafol, volvendo ao storyboard. 495 00:26:48,782 --> 00:26:51,680 >> Audiencia: Cal é a navegación controlador, de novo? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Entón, agora eu vou te amosar. 497 00:26:55,260 --> 00:26:56,200 Imos ver. 498 00:26:56,200 --> 00:27:00,510 Entón, eu estou indo a facer clic nesta visión controlador, e entón eu vou 499 00:27:00,510 --> 00:27:03,920 ata o produto - 500 00:27:03,920 --> 00:27:06,240 En realidade, non, desculpe - editor. 501 00:27:06,240 --> 00:27:08,360 E eu estou indo a ir - 502 00:27:08,360 --> 00:27:09,350 En realidade, se eu facer clic sobre el? 503 00:27:09,350 --> 00:27:10,070 Non 504 00:27:10,070 --> 00:27:11,080 Alí imos nós. 505 00:27:11,080 --> 00:27:16,270 Vou subir en editor, desc para incorporar, a continuación, 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 E, meu espazo de traballo parece moi confuso, entón imos limpar isto. 510 00:27:27,750 --> 00:27:29,000 Entón, todo isto é storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 E deste xeito - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, deixe - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 I pode rapidamente construír algo como esta. 517 00:27:50,860 --> 00:27:53,020 E entón, agora podo volver, sabe? 518 00:27:53,020 --> 00:27:55,730 >> Pero iso é medio chat, non? 519 00:27:55,730 --> 00:28:03,020 Entón, o que quero facer é, eu non quero de facer, simplemente, unha visión 520 00:28:03,020 --> 00:28:03,870 controlador. 521 00:28:03,870 --> 00:28:07,720 Digamos que eu quería realmente facer unha controlador de visualización de táboa, para que eu poida poñer en 522 00:28:07,720 --> 00:28:12,110 algunhas cores agradables, na táboa. 523 00:28:12,110 --> 00:28:16,210 >> Entón, agora que eu coloque na miña opinión mesa controlador, eu teño conecta-lo de volta 524 00:28:16,210 --> 00:28:18,560 deste botón ao controlador de vista. 525 00:28:18,560 --> 00:28:21,780 Entón, eu teño que facer o meu control, clic, arrastre cousa de novo. 526 00:28:21,780 --> 00:28:27,318 E agora podo facer presión, porque incorporar dentro dun controlador de navegación. 527 00:28:27,318 --> 00:28:32,210 >> Audiencia: Navegación controlador só permítelle ir dun lugar a outro? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: si. 529 00:28:33,540 --> 00:28:38,670 Entón, máis tecnicamente, é un obxecto onde - 530 00:28:38,670 --> 00:28:43,150 así, no interior da navegación controlador de obxecto, 531 00:28:43,150 --> 00:28:44,780 mantén o control dunha matriz. 532 00:28:44,780 --> 00:28:48,300 E esa matriz contén todas as posteriores ver controladores. 533 00:28:48,300 --> 00:28:51,560 É por iso que cando prema para atrás, vai volver á páxina anterior. 534 00:28:51,560 --> 00:28:55,260 Como o controlador de navegación obxecto, ou o código que coida de 535 00:28:55,260 --> 00:28:58,890 este obxecto, ten unha matriz que mantén seguir deses controladores de visualización, e 536 00:28:58,890 --> 00:29:01,870 Pode, entón, vostede sabe, dq a visión controlador e darlle de volta o 537 00:29:01,870 --> 00:29:02,750 anterior. 538 00:29:02,750 --> 00:29:05,200 >> Entón, iso é cousa técnica, pero - 539 00:29:05,200 --> 00:29:07,505 e eu vou amosar-lle máis tarde, en código, se temos tempo. 540 00:29:07,505 --> 00:29:10,270 Eu son o tipo de esgotar-se en tempo, pero - 541 00:29:10,270 --> 00:29:15,610 >> Así, coa exhibición de táboa, o que podemos facer é - 542 00:29:15,610 --> 00:29:18,440 Xeralmente defínese automaticamente para Prototype dinámico - 543 00:29:18,440 --> 00:29:20,640 imos facelo células fixas, pola contra, imos 544 00:29:20,640 --> 00:29:22,920 atopou con algúns problemas. 545 00:29:22,920 --> 00:29:28,470 >> E entón, imos dicir que eu vou para ter unha sección. 546 00:29:28,470 --> 00:29:31,000 Entón, é como seccións - 547 00:29:31,000 --> 00:29:35,160 se xa viu a aplicación de música, cando tes artistas, seccións faría 548 00:29:35,160 --> 00:29:37,830 ser o dun medio Z 's - 549 00:29:37,830 --> 00:29:38,780 - As letras 550 00:29:38,780 --> 00:29:42,600 e entón, vostede sabe, o individuo liñas serían os nomes dos artistas. 551 00:29:42,600 --> 00:29:47,460 E así, o que é legal aquí, é que podo acceder todos os obxectos dentro 552 00:29:47,460 --> 00:29:50,430 do meu storyboard través deste menú desplegable, tamén. 553 00:29:50,430 --> 00:29:56,600 >> Entón, eu estou indo a facer clic na miña sección, e quero, xa sabe, quizais cinco liñas. 554 00:29:56,600 --> 00:30:00,770 E, a continuación, dentro de cada liña, Quero poñer un rótulo. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 E eu vou chamar este Azul. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 E entón, quero poñer unha visión UI, vostede sei, quizais por, tipo, unha pequena caixa. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Para que eu poida amosar á xente unha vista previa da cor. 561 00:30:28,710 --> 00:30:34,150 E eu vou volver á propiedade e cambiar esa cor para, oh, eu non sei 562 00:30:34,150 --> 00:30:35,510 sabe, un regalo. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> E, a continuación, teña en conta tamén, aquí, cando eu teño os accesorios, podo ter moitos 565 00:30:43,150 --> 00:30:46,160 dos distintos accesorios que adoita ver. 566 00:30:46,160 --> 00:30:55,250 O indicador de divulgación, o detalle, ou marca de verificación, ou simplemente detalles. 567 00:30:55,250 --> 00:30:59,080 Entón, quizais poidamos facer, tipo, unha difusión indicador, por exemplo. 568 00:30:59,080 --> 00:31:03,540 >> E entón, por que non podemos ter estes, copia cola-los e poñer-los no 569 00:31:03,540 --> 00:31:06,740 seguinte liña da táboa. 570 00:31:06,740 --> 00:31:08,115 Así, podemos chamar iso de amarelo. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 E eu podería extender esa. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Imos facelo amarelo. 575 00:31:17,290 --> 00:31:20,610 E, deste xeito, podemos copiar pega noso camiño. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Que foi? 578 00:31:25,370 --> 00:31:26,620 Vermello. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Polo tanto, estes son as CS50 típico cores que xa viu en clase - 581 00:31:34,740 --> 00:31:37,160 En realidade, sinto moito - 582 00:31:37,160 --> 00:31:38,410 ou na páxina web. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Espero que vós poidan ver o que eu estou facendo 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 Último. 588 00:31:58,490 --> 00:32:02,040 >> Audiencia: Como engadir a liña orixinalmente? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Entón, a pregunta era: como eu engadir a liña orixinalmente? 590 00:32:04,740 --> 00:32:07,500 Fun para esta sección da táboa - ou con todo podo 591 00:32:07,500 --> 00:32:09,200 seleccione a sección de mesa - 592 00:32:09,200 --> 00:32:11,250 e, entón, aquí, eu actualizar o número de liñas. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> E, déixeme esperanza de que isto 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 A ver se isto funciona. 598 00:32:32,870 --> 00:32:34,000 Oh, perfecto, incrible. 599 00:32:34,000 --> 00:32:35,300 Aceptar. 600 00:32:35,300 --> 00:32:40,330 Mentres eu estaba construíndo miña demo, algúns as cousas non estaban aliñados, así, grazas por 601 00:32:40,330 --> 00:32:42,510 os aplausos. 602 00:32:42,510 --> 00:32:42,920 >> É. 603 00:32:42,920 --> 00:32:44,770 Entón, imos ver. 604 00:32:44,770 --> 00:32:47,550 Nós imos facer isto só para facer nove todo - ou, en realidade, imos só 605 00:32:47,550 --> 00:32:51,420 transformar todo iso en divulgación indicadores. 606 00:32:51,420 --> 00:32:55,790 E entón, o que quero amosar-lle, tamén, Foi así que podo tomar cada un destes 607 00:32:55,790 --> 00:32:59,230 liñas da táboa e telos interactuar - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 Non 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 Ademais, quero amosar-lle - 613 00:33:07,230 --> 00:33:13,080 aquí, podo poñer o título do meu controlador de navegación, non? 614 00:33:13,080 --> 00:33:17,090 Entón, en realidade, vai notar, así que eu incorporado este controlador de vista interior 615 00:33:17,090 --> 00:33:22,010 do controlador de navegación, podemos ver esta barra de navegación na parte superior da nosa 616 00:33:22,010 --> 00:33:25,340 representación storyboard dun controlador de punto de vista. 617 00:33:25,340 --> 00:33:29,270 E así, iso nos dá, así, un visual, dalgún xeito, orientar a nosa pantalla visible. 618 00:33:29,270 --> 00:33:34,360 É dicir, obviamente, vai ser a barra de navegación. 619 00:33:34,360 --> 00:33:40,950 >> E o que quero facer de xeito rápido, agora, é poñer en outro - 620 00:33:40,950 --> 00:33:45,880 de xeito que este controlador de visualización de táboa que fixen por tomando unha delas e arrastrando o 621 00:33:45,880 --> 00:33:49,800 aquí, e iso é o que me permitiu rapidamente, realmente, crear unha exhibición de táboa 622 00:33:49,800 --> 00:33:50,850 controlador. 623 00:33:50,850 --> 00:33:54,100 Se temos tempo, con todo, vai ver que, por medio de programación, é unha 624 00:33:54,100 --> 00:33:57,660 pouco máis complicado para crear unha táboa vista controlador, por que non 625 00:33:57,660 --> 00:34:02,520 un par de métodos que son necesario para que poida, dalgunha forma, escribir 626 00:34:02,520 --> 00:34:07,130 para fóra, para que a vista da táboa controlador para ser exhibido correctamente. 627 00:34:07,130 --> 00:34:15,340 >> Con todo, eu só quero te amosar, agora, un exemplo de onde, se eu tomar isto, 628 00:34:15,340 --> 00:34:15,920 por exemplo - 629 00:34:15,920 --> 00:34:18,290 Engada noutro controlador de vista. 630 00:34:18,290 --> 00:34:27,320 E agora, imos dicir que quero controlar alt meu primeiro azul 631 00:34:27,320 --> 00:34:28,980 liña da táboa para aquí. 632 00:34:28,980 --> 00:34:31,070 E quero chamar iso de azul. 633 00:34:31,070 --> 00:34:32,570 E entón - 634 00:34:32,570 --> 00:34:34,159 imos ver. 635 00:34:34,159 --> 00:34:41,050 Estou coa vista agora, e podo cambiar o pano de fondo azul. 636 00:34:41,050 --> 00:34:45,945 >> E así, o aviso previo, aquí, este desplegable menú tamén lle dá unha xerarquía de todos 637 00:34:45,945 --> 00:34:47,040 destes obxectos. 638 00:34:47,040 --> 00:34:50,530 Entón, unha cousa importante a notar, aquí, é que todas estas cousas, por aquí - 639 00:34:50,530 --> 00:34:54,330 este controlador de visualización de táboa, a táboa vista, a sección de visualización de táboa, visualización de táboa 640 00:34:54,330 --> 00:34:57,169 célula - todos estes son obxectos, o código. 641 00:34:57,169 --> 00:35:03,752 Entón, vostede sabe, unha etiqueta agora está baixo o punto de vista de contido, etcétera. 642 00:35:03,752 --> 00:35:05,020 Así por diante e así por diante. 643 00:35:05,020 --> 00:35:08,765 >> Entón, se executar este código, que ver algo - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 imos ver se isto - si. 646 00:35:17,870 --> 00:35:18,670 Entón, alí imos nós. 647 00:35:18,670 --> 00:35:22,120 Pero, se non se fai iso, ningún desas outras cousas funcionan. 648 00:35:22,120 --> 00:35:22,500 Non? 649 00:35:22,500 --> 00:35:23,800 Entón, só que este funciona. 650 00:35:23,800 --> 00:35:29,100 E, por unha cuestión de tempo, eu non vou entrar, xa sabe, poñendo 651 00:35:29,100 --> 00:35:29,770 abaixo os outros. 652 00:35:29,770 --> 00:35:32,020 E este é o fin de, tipo, storyboard - 653 00:35:32,020 --> 00:35:33,400 o que eu quería amosar por storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> E, eu teño un exemplo traballado, De feito, aquí. 656 00:35:43,490 --> 00:35:48,090 Entón, este é o storyboard que fixen anteriormente. 657 00:35:48,090 --> 00:35:52,740 Entón, como podes ver, este foi meu controlador de navegación. 658 00:35:52,740 --> 00:35:57,040 Entón, eu tiven o meu primeiro controlador de vista, entón eu tiña o meu controlador de visualización de táboa, 659 00:35:57,040 --> 00:35:58,980 e entón eu tiven todo isto - 660 00:35:58,980 --> 00:36:01,180 así antes, eu estaba facendo algo moi diferente. 661 00:36:01,180 --> 00:36:04,450 Entón, desculpe estas cousas. 662 00:36:04,450 --> 00:36:07,930 Eu probablemente vou limpa-lo máis tarde, antes Eu envialo para a produción. 663 00:36:07,930 --> 00:36:12,800 >> Pero, se executar este, imos ver que todas as opcións son 664 00:36:12,800 --> 00:36:14,050 dispoñible para nós. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Só que eu non fixen os plans de fondo esas cores. 667 00:36:21,320 --> 00:36:26,510 Entón, boa aplicación sinxela. 668 00:36:26,510 --> 00:36:28,340 >> Agora imos tratar de resolver iso programaticamente. 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 Entón, para facelo, nós só estamos indo para iniciar un novo proxecto Xcode. 672 00:36:37,570 --> 00:36:41,920 Imos facelo unha aplicación baleiro agora, porque non quere ter o 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Entón, eu estou simplemente restrinxindo-me a non utilizar calquera dos storyboard, e un 675 00:36:46,590 --> 00:36:49,170 aplicación baleiro non vai Dáme un storyboard. 676 00:36:49,170 --> 00:36:52,256 Este é só para evitar me de facer trampas. 677 00:36:52,256 --> 00:36:54,428 Imos ver. 678 00:36:54,428 --> 00:36:55,360 Espera. 679 00:36:55,360 --> 00:36:55,960 Did I - 680 00:36:55,960 --> 00:36:56,448 Si 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 >> Correcto. 684 00:37:09,180 --> 00:37:16,790 Entón, aquí, estivemos con nada máis que código. 685 00:37:16,790 --> 00:37:19,460 Entón, deixe-me mover esta xanela un pouco máis. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Correcto. 688 00:37:22,260 --> 00:37:28,160 Como podes ver aquí, os únicos ficheiros estamos dando son AppDelegate.h e punto 689 00:37:28,160 --> 00:37:30,500 m, e non temos storyboard máis. 690 00:37:30,500 --> 00:37:39,580 >> Entón, se nós executar este, aínda estamos indo a chegar á pantalla branca, grazas a Deus. 691 00:37:39,580 --> 00:37:42,280 OK - pantalla branca, pero nada máis. 692 00:37:42,280 --> 00:37:45,260 E aquí é a parte importante. 693 00:37:45,260 --> 00:37:47,810 Este é o lugar onde a acción acontece. 694 00:37:47,810 --> 00:37:51,410 Nas versións anteriores, non hai xeralmente ningún código aquí, pero o 695 00:37:51,410 --> 00:37:55,600 storyboard proporciona esencialmente o código para esta parte. 696 00:37:55,600 --> 00:37:57,470 Non vou entrar en detalles sobre como. 697 00:37:57,470 --> 00:38:02,890 >> E o que queremos facer é agora, queremos para entrar aquí, e este pequeno espazo 698 00:38:02,890 --> 00:38:05,050 comeza a crear o noso programa de novo. 699 00:38:05,050 --> 00:38:06,092 So - 700 00:38:06,092 --> 00:38:06,318 si? 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 Si, por suposto. 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 Eu estar escribindo, e iso non debe importa moito. 707 00:38:17,380 --> 00:38:17,940 Aceptar. 708 00:38:17,940 --> 00:38:22,720 >> Entón, en primeiro lugar, lembre-se nós quixemos crear un controlador de navegación, non? 709 00:38:22,720 --> 00:38:27,090 E tamén, como podes ver aquí, Xcode fai un gran traballo de 710 00:38:27,090 --> 00:38:28,070 auto-recheo. 711 00:38:28,070 --> 00:38:31,650 Entón, como vai notar, os nomes dos todo é moito máis do que 712 00:38:31,650 --> 00:38:33,910 de costume, pero Xcode enche-lo para ti. 713 00:38:33,910 --> 00:38:35,710 Entón, podo só prema Intro. 714 00:38:35,710 --> 00:38:40,180 >> Entón, quero crear unha navegación UI punteiro controlador, e podo chamalo 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 Agora, o que fago agora? 718 00:38:44,470 --> 00:38:49,510 Tras este signo igual, eu teño, en primeiro lugar, crealo dentro da memoria. 719 00:38:49,510 --> 00:38:53,790 Entón, eu vou facer NavigationController alloc - 720 00:38:53,790 --> 00:38:56,640 por iso, este é semellante ao malloc, que vostedes usan en C - 721 00:38:56,640 --> 00:38:58,400 e logo, vou ao init-lo. 722 00:38:58,400 --> 00:39:03,670 >> Entón, é moi importante que calquera obxecto que crear, quere 723 00:39:03,670 --> 00:39:04,940 alloc e init-lo. 724 00:39:04,940 --> 00:39:08,600 Isto vai crealo e instantialize-lo dentro da memoria, e 725 00:39:08,600 --> 00:39:10,480 agora pode usalo. 726 00:39:10,480 --> 00:39:10,780 Todo ben? 727 00:39:10,780 --> 00:39:14,360 Se non fai iso, o seu obxecto fai non existe, e vai executar en unha morea 728 00:39:14,360 --> 00:39:17,290 de problemas. 729 00:39:17,290 --> 00:39:20,250 >> E entón, quero crear un controlador de vista, non? 730 00:39:20,250 --> 00:39:25,580 Entón, quero crear un UIViewController Star - 731 00:39:25,580 --> 00:39:29,620 así, todo é un punteiro en Objective-C, e eu vou facer 732 00:39:29,620 --> 00:39:31,600 algo semellante, aquí - 733 00:39:31,600 --> 00:39:32,850 distribución, o 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 >> E entón, o que vou facer é, eu son vai - así, lembre, cando fixemos 737 00:39:43,450 --> 00:39:45,360 a incorporar no controlador de navegación? 738 00:39:45,360 --> 00:39:46,920 Isto é como facelo en código. 739 00:39:46,920 --> 00:39:54,550 Vai facer navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> Audiencia: [inaudível]. 742 00:39:57,636 --> 00:39:59,030 Será que isto vai ocorrer a nós, ou -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: Ah, si. 744 00:40:00,080 --> 00:40:00,550 Non 745 00:40:00,550 --> 00:40:02,740 Gústanlle máis de min. 746 00:40:02,740 --> 00:40:04,670 Non, que vai traballar para ti, tamén. 747 00:40:04,670 --> 00:40:06,700 Polo tanto, estes son todos os métodos. 748 00:40:06,700 --> 00:40:10,400 Así pushViewController é un método, e tamén, en concreto, é un 749 00:40:10,400 --> 00:40:13,590 método de instancia da interface de usuario controlador de navegación. 750 00:40:13,590 --> 00:40:20,030 Porque eu tiven que crear miña navegación UI estrela controlador, e entón eu 751 00:40:20,030 --> 00:40:24,510 pode chamar este pushViewController no meu exemplo específico dun sistema de navegación de UI 752 00:40:24,510 --> 00:40:25,010 controlador. 753 00:40:25,010 --> 00:40:29,490 >> Audiencia: Temos que facer exactamente o palabra, ou será que xa existen para iso? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Si, porque é un método. 755 00:40:31,380 --> 00:40:32,200 É como unha función. 756 00:40:32,200 --> 00:40:33,330 É como printf. 757 00:40:33,330 --> 00:40:34,390 É como scanf. 758 00:40:34,390 --> 00:40:36,250 É como strcompare. 759 00:40:36,250 --> 00:40:40,310 Só que sabe o que pode querer escribe, e teña en conta que vai sempre 760 00:40:40,310 --> 00:40:42,740 veña con cousas que son legalmente permitido para ti. 761 00:40:42,740 --> 00:40:47,620 Entón, se non aparecer por aquí, entón algo está mal. 762 00:40:47,620 --> 00:40:50,550 >> Entón, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Entón, agora, quero empurrar meu recén criado 764 00:40:52,580 --> 00:40:56,850 UIViewController, e logo, animado - 765 00:40:56,850 --> 00:40:57,470 quizais non. 766 00:40:57,470 --> 00:41:00,110 Por que isto será o primeiro controlador de vista. 767 00:41:00,110 --> 00:41:03,210 Quero dicir, aínda que eu fixen de animación, probablemente non vai aparecer, porque 768 00:41:03,210 --> 00:41:05,050 é a primeira pantalla. 769 00:41:05,050 --> 00:41:06,540 >> E lembre os soportes. 770 00:41:06,540 --> 00:41:08,850 Entón, lembre-se de como acostumabamos os soportes? 771 00:41:08,850 --> 00:41:11,870 E dentro dos corchetes, o obxecto chámase nun método - 772 00:41:11,870 --> 00:41:15,910 polo que o noso obxectivo é o de navegación controlador, e método é un impulso 773 00:41:15,910 --> 00:41:17,210 controlador de vista animado. 774 00:41:17,210 --> 00:41:21,920 E ver como leva en dous argumentos, e están separados polo, tipo, 775 00:41:21,920 --> 00:41:24,390 palabras, e dous puntos. 776 00:41:24,390 --> 00:41:28,300 Entón, Objective-C intenta facelo agradable e doado para ler en voz alta - 777 00:41:28,300 --> 00:41:33,020 seu código - e telo semi, dalgún xeito, ten sentido. 778 00:41:33,020 --> 00:41:37,150 >> Con todo, facendo exactamente iso non é suficiente. 779 00:41:37,150 --> 00:41:39,780 Déixeme afastar agora. 780 00:41:39,780 --> 00:41:44,210 Facer só isto non é suficiente para conseguir o que nós podemos anteriormente. 781 00:41:44,210 --> 00:41:48,580 Entón, aquí, notarás que non hai realmente non vai ser calquera tipo de 782 00:41:48,580 --> 00:41:50,190 Bar, aquí, non? 783 00:41:50,190 --> 00:41:54,680 Non hai ningunha barra de navegación, o que significa que aínda non teñan conseguido. 784 00:41:54,680 --> 00:41:58,850 >> E podemos probar iso, tamén, por, quizais, cambiar o fondo de 785 00:41:58,850 --> 00:42:00,460 ViewController, non? 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 Entón, vexa como ViewController non tiña unha cor de fondo, aínda que eu 790 00:42:07,690 --> 00:42:08,780 quería acceder a ela? 791 00:42:08,780 --> 00:42:14,080 E iso é porque ViewController é un recipiente para a vista. 792 00:42:14,080 --> 00:42:19,490 Entón, el ten unha propiedade vista, que logo ten unha cor de fondo. 793 00:42:19,490 --> 00:42:25,510 >> E, podo define-lo, unha especie de tediosamente, chamando a cor 794 00:42:25,510 --> 00:42:28,130 no obxecto UIColor. 795 00:42:28,130 --> 00:42:33,210 Entón, aviso aquí, RedColor é un método. 796 00:42:33,210 --> 00:42:36,750 É un método de clase de UIColor. 797 00:42:36,750 --> 00:42:40,820 Porque eu non tiña que crear un exemplo real dun UIColor en orde 798 00:42:40,820 --> 00:42:42,020 para chamar o método nela. 799 00:42:42,020 --> 00:42:45,050 Eu só, simplemente, chamouse sobre o nome do tipo-like. 800 00:42:45,050 --> 00:42:49,620 Eu, como, chamouse a en int, int, se tivese, así, un método a el, por exemplo. 801 00:42:49,620 --> 00:42:52,380 >> E así, se executar este código, imos ter en conta que o fondo é 802 00:42:52,380 --> 00:42:53,540 realmente non vermello. 803 00:42:53,540 --> 00:42:54,790 Aínda é branco. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 E como podemos evitar dicir, teña en conta como está o self.window. 806 00:43:04,550 --> 00:43:08,260 É dicir, como, o recipiente final para a súa aplicación. 807 00:43:08,260 --> 00:43:11,630 É o último que conteña todo na pantalla, para un 808 00:43:11,630 --> 00:43:13,650 iPhone ou aplicación iPad. 809 00:43:13,650 --> 00:43:20,970 >> E, cómodo, self.window ten esa propiedade chamada 810 00:43:20,970 --> 00:43:22,650 RootViewController. 811 00:43:22,650 --> 00:43:26,480 E iso será o punteiro para o primeiro controlador de vista interior 812 00:43:26,480 --> 00:43:27,270 da súa aplicación. 813 00:43:27,270 --> 00:43:32,000 Entón, o que queremos facer aquí, agora, é para definir que igual a nosa navegación 814 00:43:32,000 --> 00:43:32,710 controlador. 815 00:43:32,710 --> 00:43:33,760 Non? 816 00:43:33,760 --> 00:43:37,490 Porque, tecnicamente, a navegación controlador é a nosa primeira vista 817 00:43:37,490 --> 00:43:38,770 controlador. 818 00:43:38,770 --> 00:43:46,160 Mantén o control dunha matriz de outro punto de vista controladores, e que empurrou este 819 00:43:46,160 --> 00:43:49,810 controlador miras esa matriz no controlador de navegación. 820 00:43:49,810 --> 00:43:52,640 >> Entón, non quere facelo. 821 00:43:52,640 --> 00:43:54,225 Isto non sería realmente axudar. 822 00:43:54,225 --> 00:43:58,040 Quere facer iso, se quería facer un controlador de navegación, o que máis 823 00:43:58,040 --> 00:44:01,100 de vostedes probablemente porque vai querer para, dalgún xeito, teñen algún tipo de, 824 00:44:01,100 --> 00:44:04,840 como, menú para voltar ou algún páxina de inicio para voltar, en vez de un 825 00:44:04,840 --> 00:44:05,470 pantalla baleira. 826 00:44:05,470 --> 00:44:05,920 Si? 827 00:44:05,920 --> 00:44:11,460 >> Audiencia: É incómodo para que poida ampliar a - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Yeah. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Entón, si. 831 00:44:15,720 --> 00:44:22,370 Este é o código, e agora Imos proba-lo. 832 00:44:22,370 --> 00:44:27,920 >> Entón, alí imos nós. 833 00:44:27,920 --> 00:44:29,170 Maxia. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Entón, Aceptar. 836 00:44:32,690 --> 00:44:34,420 Grazas. 837 00:44:34,420 --> 00:44:35,000 Aceptar. 838 00:44:35,000 --> 00:44:38,690 Entón, agora, o que queremos facer é - entón, nós estamos limitando, aquí, non? 839 00:44:38,690 --> 00:44:45,130 Podemos potencialmente escribir todo dentro deste dunha función. 840 00:44:45,130 --> 00:44:48,470 Pero iso non é como iOS desenvolvemento xeralmente funciona. 841 00:44:48,470 --> 00:44:53,030 >> Entón, o que nós imos facer é, estamos vai crear algúns novos ficheiros. 842 00:44:53,030 --> 00:44:57,110 Pero, máis en concreto, imos crear outra clase Objective-C, ou 843 00:44:57,110 --> 00:44:58,010 outro obxecto - 844 00:44:58,010 --> 00:45:00,700 clase e obxectos son intercambiábeis aquí. 845 00:45:00,700 --> 00:45:06,460 E, aquí está como eu podería, potencialmente, crear outra clase de U controladores. 846 00:45:06,460 --> 00:45:12,030 >> Entón, é unha sub-clase, como podes ver, aquí, é unha sub-clase da 847 00:45:12,030 --> 00:45:15,910 Controlador de vista da interface de usuario, pero eu podo chamalo de calquera outro nome aquí. 848 00:45:15,910 --> 00:45:19,400 Podería chamar iso de CS50, eu podería chamar este controlador de vista, eu podería chamar 849 00:45:19,400 --> 00:45:21,640 este controlador de vista bla - 850 00:45:21,640 --> 00:45:22,400 o que eu queira. 851 00:45:22,400 --> 00:45:24,140 Este é só un nome para a clase. 852 00:45:24,140 --> 00:45:27,020 Con todo, iso vai ser importante porque, esencialmente, o que estou facendo 853 00:45:27,020 --> 00:45:29,720 aquí é, eu estou creando outro nome da clase. 854 00:45:29,720 --> 00:45:34,140 Entón, que vai ser, tipo, algúns especie de tipo ou un obxecto. 855 00:45:34,140 --> 00:45:35,910 Así, debe ser algo máis xenérica. 856 00:45:35,910 --> 00:45:37,225 Non vai ser moi específico. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> E tamén, quero apuntar fóra estas dúas opcións. 859 00:45:44,480 --> 00:45:48,430 Porque estamos facendo todo dentro código, ás veces é moito máis doado 860 00:45:48,430 --> 00:45:53,540 para levar un arquivo de interface, de xeito que Podo literalmente arrastrar e soltar, como 861 00:45:53,540 --> 00:45:54,960 fixemos anteriormente co storyboard - 862 00:45:54,960 --> 00:45:57,810 vostede sabe, unha etiqueta, ou un botón, ou calquera outra cousa. 863 00:45:57,810 --> 00:46:01,950 E así, XIBs son arquivos que permiten que Faino, e ten que liga-lo 864 00:46:01,950 --> 00:46:04,310 con esta imaxe controlador de vista. 865 00:46:04,310 --> 00:46:06,540 >> Entón, eu vou deliberadamente non comprobar iso. 866 00:46:06,540 --> 00:46:12,510 Normalmente eu ía comprobar isto, e se eu só fixo isto para iPhone ou iPad, eu 867 00:46:12,510 --> 00:46:16,340 ía comprobar iso e simplemente ter un para, vostede sabe, o iPhone ou o iPad. 868 00:46:16,340 --> 00:46:19,750 Pero sempre que eu estou facendo universal, vou para crear dous deles máis tarde. 869 00:46:19,750 --> 00:46:22,220 Entón, eu vou deliberadamente Desmarque esta. 870 00:46:22,220 --> 00:46:23,940 >> Isto tamén é moi importante. 871 00:46:23,940 --> 00:46:27,490 Moitas veces, eu tiven erros onde iso non foi comprobado. 872 00:46:27,490 --> 00:46:31,930 E así, obviamente, este ficheiro non é, tipo de, tipo, incluídos ou importados 873 00:46:31,930 --> 00:46:33,740 dentro deste cartafol de proba. 874 00:46:33,740 --> 00:46:38,180 E así, o meu código non ten absolutamente ningunha idea da existencia deste ficheiro, e 875 00:46:38,180 --> 00:46:41,080 que causa moita dor e horas de depuración. 876 00:46:41,080 --> 00:46:44,360 Pero, só comproba se esta é revisada de xeito que, xa sabe, o obxectivo desta 877 00:46:44,360 --> 00:46:47,510 ficheiro é para esta aplicación. 878 00:46:47,510 --> 00:46:48,310 >> Aceptar. 879 00:46:48,310 --> 00:46:51,680 Entón, agora creamos dous novos ficheiros. 880 00:46:51,680 --> 00:46:54,050 E eses arquivos parecen moi baleiro. 881 00:46:54,050 --> 00:46:59,550 E, de feito, imos tamén seguir pola creación dos ficheiros xib. 882 00:46:59,550 --> 00:47:03,690 Entón, antes, eu estaba no Coco touch desplegable. 883 00:47:03,690 --> 00:47:06,880 Agora, eu estou indo a ir ao Usuario Interface de chamada, e como podes ver, eu 884 00:47:06,880 --> 00:47:08,120 pode crear un storyboard. 885 00:47:08,120 --> 00:47:11,710 >> Así, aínda que eu comece cun baleiro aplicación, aínda podo usar un 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Aínda que, está complicado en canto de como quere conectarse 888 00:47:15,480 --> 00:47:16,820 que ao seu código. 889 00:47:16,820 --> 00:47:18,230 Entón, eu non vou alá. 890 00:47:18,230 --> 00:47:22,160 >> Pero, o que queremos facer agora é crear unha visión. 891 00:47:22,160 --> 00:47:25,720 E pode escoller para un iPhone ou un iPad. 892 00:47:25,720 --> 00:47:30,180 E tipicamente, a identificar a diferenza - se está facendo unha 893 00:47:30,180 --> 00:47:31,950 aplicación universal - 894 00:47:31,950 --> 00:47:35,980 quere poñer un iPhone subliñado, ou pode facer un Twiddly. 895 00:47:35,980 --> 00:47:36,980 Realmente non importa. 896 00:47:36,980 --> 00:47:40,890 É simplemente para se diferenciar que vista é para o que dispositivo. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> E así, agora ollar. 899 00:47:44,430 --> 00:47:47,550 Eu teño unha pantalla que eu poida traballar. 900 00:47:47,550 --> 00:47:53,530 E así, por exemplo, podo poñer unha etiqueta aquí, xa sabe, e eu tamén pode pór 901 00:47:53,530 --> 00:47:54,820 outro botón aquí. 902 00:47:54,820 --> 00:47:58,730 Eu non vou incomodar cambiar os valores aquí. 903 00:47:58,730 --> 00:48:09,050 >> Pero, o que é importante aquí é que o propietario do arquivo - 904 00:48:09,050 --> 00:48:13,660 así, eu estou dentro do iPhone vista, arquivo iPhone xib. 905 00:48:13,660 --> 00:48:18,050 E abaixo nesta área de navegación ou menú desplegable, quero ir ao 906 00:48:18,050 --> 00:48:19,090 propietario do arquivo. 907 00:48:19,090 --> 00:48:22,630 E esta é a verdade importante paso aquí. 908 00:48:22,630 --> 00:48:27,780 Eu quero facer o punto de vista de clase controlador, de xeito que este ficheiro é xib 909 00:48:27,780 --> 00:48:30,030 será asociado con meu controlador de vista. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 E todo o que fago no meu punto de vista controlador de programación é 912 00:48:39,360 --> 00:48:42,800 será reflectido aquí. 913 00:48:42,800 --> 00:48:46,270 >> Entón, con todo, ter en conta que - 914 00:48:46,270 --> 00:48:55,995 De feito, imos facer ese punto de vista fondo azul, por exemplo. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Ou verde. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 E entón, por iso, se observa, de volta este código, é aquí que chegamos ao noso 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índa que nós fixemos ese paso, é aínda vai ser vermello, non verde. 922 00:49:18,310 --> 00:49:20,350 E hai unha razón para iso. 923 00:49:20,350 --> 00:49:28,090 É porque, cando nós inited noso controlador de vista, aquí - 924 00:49:28,090 --> 00:49:30,010 Sentímolo, é un pouco tolo - 925 00:49:30,010 --> 00:49:34,520 cando inited noso controlador de vista aquí, nós inited el do tipo xeral 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 OK? 928 00:49:36,560 --> 00:49:40,560 Entón, nós non mesmo facer con esta clase. 929 00:49:40,560 --> 00:49:42,030 >> Entón lembre, é dicir como unha clase agora. 930 00:49:42,030 --> 00:49:47,160 Pode ser pensado como un tipo, só como UIViewController é un tipo. 931 00:49:47,160 --> 00:49:51,080 E, a fin de usalo, o que o que necesitamos facer é Import-lo - 932 00:49:51,080 --> 00:49:52,520 ViewController importación - 933 00:49:52,520 --> 00:49:55,750 e, como podes ver, AutoPreenchimento para min. 934 00:49:55,750 --> 00:49:56,570 Entón, ViewController - 935 00:49:56,570 --> 00:50:02,070 e agora, aquí, podo cambiar isto UIViewController para ViewController. 936 00:50:02,070 --> 00:50:05,050 E agora, aquí, podo cambiar isto para ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Imos correr de novo. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 El aínda está vermello. 941 00:50:19,690 --> 00:50:23,370 E a razón pola que é aínda vermello é porque - 942 00:50:23,370 --> 00:50:26,230 woah, o que pasou alí? 943 00:50:26,230 --> 00:50:31,500 Quixemos asociar este xib arquivo co controlador de vista. 944 00:50:31,500 --> 00:50:37,540 Con todo, a fin de que realmente facer que, necesitamos entrar nesa. 945 00:50:37,540 --> 00:50:42,980 E cando facemos o init, que queremos facer initWithNibName, e entón queremos 946 00:50:42,980 --> 00:50:48,910 facer o en cadea View_iPhone, por exemplo. 947 00:50:48,910 --> 00:50:51,700 Pode ignorar o paquete aquí. 948 00:50:51,700 --> 00:50:54,965 >> E iso vai permitir que nós, en realidade - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, hai un problema. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Correcto. 953 00:51:09,980 --> 00:51:17,670 >> E así, non é un problema porque, en noso arquivo de visión xib temos unha etiqueta e 954 00:51:17,670 --> 00:51:18,720 temos un botón. 955 00:51:18,720 --> 00:51:23,660 Con todo, a pesar de ter conectado aqueles dous, non hai nada dentro 956 00:51:23,660 --> 00:51:27,440 ViewController.h ou ViewController.m que reflicten as 957 00:51:27,440 --> 00:51:29,160 botóns ou as etiquetas. 958 00:51:29,160 --> 00:51:32,425 Entón, a xente ten que escribir aqueles en que propiedades do controlador de vista. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Entón, é así que declarar unha propiedade. 961 00:51:39,490 --> 00:51:43,422 Ten en, xeralmente, estas dúas opcións. 962 00:51:43,422 --> 00:51:48,690 Para os efectos de nós e este seminario, Eu diría que, en xeral, 963 00:51:48,690 --> 00:51:52,250 a maioría das propiedades son nonatomic e reter. 964 00:51:52,250 --> 00:51:55,420 Pode ler-se por Google busca, vostede sabe, a diferenza entre 965 00:51:55,420 --> 00:51:58,620 atómica e reter, vostede sabe, Google ou algo así. 966 00:51:58,620 --> 00:52:01,090 E eu vou leva-lo para, como, Pila Overflow, onde a xente terán 967 00:52:01,090 --> 00:52:03,605 respostas para as diferenzas entre aqueles. 968 00:52:03,605 --> 00:52:07,000 Pero, polo de agora, iso é o que nós quere preocuparse. 969 00:52:07,000 --> 00:52:12,790 >> E nós queremos facer unha etiqueta UI, estrela, e podemos chamalo de todo o que queremos. 970 00:52:12,790 --> 00:52:15,710 Podemos chamar iso, xa sabe, a etiqueta. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 E, imos crear outro un para o botón. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 E lembre de incluír o asterisco, porque estamos a xestionar punteiros 975 00:52:29,910 --> 00:52:36,740 practicamente todas as partes dentro de Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Con todo, isto non vai resolver o problema, como podes ver aquí. 977 00:52:42,110 --> 00:52:50,540 E a razón é porque, sempre que quere conectar unha etiqueta xib ou un 978 00:52:50,540 --> 00:52:55,690 botón para o programa, ou a cabeceira e arquivo de implantación, queremos 979 00:52:55,690 --> 00:52:58,255 engadir este anaco de código - 980 00:52:58,255 --> 00:53:00,610 saída. 981 00:53:00,610 --> 00:53:03,600 Teña en conta que é unha palabra clave. 982 00:53:03,600 --> 00:53:07,970 >> E, así que eu rematar de escribir iso, debe ter estes 983 00:53:07,970 --> 00:53:09,100 dous círculos, aquí. 984 00:53:09,100 --> 00:53:11,200 Normalmente, eles non están cubertos 985 00:53:11,200 --> 00:53:12,920 Non sei por que son. 986 00:53:12,920 --> 00:53:21,370 Pero, xeralmente, terá que manualmente conecta-los, indo a este lado 987 00:53:21,370 --> 00:53:23,530 área de comunicacións. 988 00:53:23,530 --> 00:53:28,430 >> E así, agora, eu teño a miña etiqueta seleccionado, e quero arrastrar ese novo 989 00:53:28,430 --> 00:53:33,910 referenciando saída para o propietario do meu arquivo, e, en continuación, prema en Label. 990 00:53:33,910 --> 00:53:40,230 Entón, agora, por fin, ese rótulo é conectado a este marcador. 991 00:53:40,230 --> 00:53:44,950 E este rótulo é o que nós imos programaticamente usar para cambiar o seu 992 00:53:44,950 --> 00:53:49,250 texto, a súa fonte, o seu fondo cor, etcétera. 993 00:53:49,250 --> 00:53:52,430 >> Entón, por que non facemos o mesmo para o botón? 994 00:53:52,430 --> 00:53:54,770 E como vai notar, para o botón, é un pouco máis complicado. 995 00:53:54,770 --> 00:53:59,060 Porque, quero dicir, ten que prensa no botón, polo que ten unha morea 996 00:53:59,060 --> 00:54:02,950 de opcións para o xeito no que os usuarios pode premer un botón. 997 00:54:02,950 --> 00:54:06,570 E entón, veremos máis tarde que podemos chamar iso á nosa 998 00:54:06,570 --> 00:54:09,140 código para que funcione. 999 00:54:09,140 --> 00:54:12,770 >> Así, polo momento, con todo, que desexa chamar o para o botón real 1000 00:54:12,770 --> 00:54:13,570 dentro do noso código. 1001 00:54:13,570 --> 00:54:19,640 Entón imos para a nova toma de referenciação, e, a continuación, facer o botón. 1002 00:54:19,640 --> 00:54:22,068 Agora, imos realizar este novo. 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 Eu non sei o que está pasando aquí agora. 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ó un momento, aquí. 1010 00:54:58,960 --> 00:55:02,490 >> En realidade, por que non dar un mirar outro exemplo en 1011 00:55:02,490 --> 00:55:05,800 o interese de tempo. 1012 00:55:05,800 --> 00:55:06,200 Aceptar. 1013 00:55:06,200 --> 00:55:10,610 Entón, aquí está o máis pronto preparado exemplo para ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Como podes ver aquí, eu incluído as propiedades á 1016 00:55:17,110 --> 00:55:18,460 etiqueta eo botón. 1017 00:55:18,460 --> 00:55:20,370 E entón, este anaco de código aquí - 1018 00:55:20,370 --> 00:55:21,830 este IBAction - 1019 00:55:21,830 --> 00:55:27,740 foi unha conexión con este botón aquí. 1020 00:55:27,740 --> 00:55:33,940 Entón, como podes ver aquí, Touch Up Dentro está ligado ao selector 1021 00:55:33,940 --> 00:55:37,390 chamado botón premido. 1022 00:55:37,390 --> 00:55:41,700 >> Entón, podemos realmente pasar polo movemento novo, aquí, tomando retocar 1023 00:55:41,700 --> 00:55:48,750 Dentro e arrastrando-o para Propietario do arquivo, e logo 1024 00:55:48,750 --> 00:55:51,570 prema o botón premido. 1025 00:55:51,570 --> 00:55:52,820 Agora, imos realizar o noso código. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Entón, agora, ese botón agora funciona e vai levar á seguinte páxina. 1028 00:56:02,020 --> 00:56:08,430 >> E, en canto á nosa controlador de vista, este é o anaco de código que levou 1029 00:56:08,430 --> 00:56:10,000 coidar do botón premido. 1030 00:56:10,000 --> 00:56:14,260 E é importante ter en conta aquí, que Eu creei outro tipo de visión 1031 00:56:14,260 --> 00:56:16,330 controlador de chamada de mesa controlador de vista. 1032 00:56:16,330 --> 00:56:19,900 Entón, este foi semellante cara atrás en storyboard, cando eu arrastrei un dos 1033 00:56:19,900 --> 00:56:23,450 eses controladores táboa vista ao storyboard. 1034 00:56:23,450 --> 00:56:24,470 Estou creando outro 1035 00:56:24,470 --> 00:56:30,000 >> Punteiro ao controlador de visualización de táboa, alloc e init-ing-lo e, a continuación, facendo 1036 00:56:30,000 --> 00:56:34,490 controlador de navegación auto punto, empurrar ViewController, esta nova 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 E eu definir a animación para si, porque agora dentro do meu programa, e eu 1039 00:56:39,750 --> 00:56:45,670 quere realmente ver a animación vai a partir da páxina principal á mesa 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: Aínda se preocupar sobre a recollida de lixo? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: Qué é isto? 1044 00:56:51,840 --> 00:56:54,740 Non 1045 00:56:54,740 --> 00:56:58,970 Entón, a pregunta era: ten para traballar coa recollida de lixo? 1046 00:56:58,970 --> 00:57:03,470 Entón, Xcode 4 tivo como ARC, que é conta de referencia automática. 1047 00:57:03,470 --> 00:57:06,120 E así, xeralmente cando inicia un novo proxecto, que ía comprobar iso, porque 1048 00:57:06,120 --> 00:57:09,440 ninguén quere xestionar liberación de memoria e outras cousas. 1049 00:57:09,440 --> 00:57:13,720 Pero eu creo que o Xcode 5, non hai sequera esta opción no novo proxecto. 1050 00:57:13,720 --> 00:57:16,750 Entón, el automaticamente fai isto para vostede. 1051 00:57:16,750 --> 00:57:16,920 Si? 1052 00:57:16,920 --> 00:57:20,970 >> Audiencia: Pode exportar un PDF en storyboard? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Si, definitivamente. 1054 00:57:22,020 --> 00:57:28,180 Así, todos estes serán incluídos en código fonte, para que vostedes poden consultar 1055 00:57:28,180 --> 00:57:30,730 o proxecto Xcode real para el. 1056 00:57:30,730 --> 00:57:31,105 Si? 1057 00:57:31,105 --> 00:57:35,944 >> Audiencia: Pero, quero dicir, como, podo imprimir un PDF co meu storyboard? 1058 00:57:35,944 --> 00:57:38,920 Se eu só quero exportar o imaxes para amosar alguén. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: Oh yeah. 1060 00:57:39,160 --> 00:57:41,980 Eu creo que, se cadra, pode simplemente tomar unha captura de pantalla. 1061 00:57:41,980 --> 00:57:44,350 Si, e envialos dunha pantalla tiro ou algo así. 1062 00:57:44,350 --> 00:57:45,600 É. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Entón, imos ver. 1065 00:57:50,570 --> 00:57:56,470 En interese de tempo, eu creo iso é todo o que podo cubrir hoxe. 1066 00:57:56,470 --> 00:57:59,600 Pero sei que é, en realidade, só mal tocando a superficie do IOS 1067 00:57:59,600 --> 00:58:00,370 desenvolvemento. 1068 00:58:00,370 --> 00:58:05,630 Entón, por favor póñase en contacto me se ten algunha dúbida sobre IOS 1069 00:58:05,630 --> 00:58:07,000 desenvolvemento. 1070 00:58:07,000 --> 00:58:12,840 E, con sorte, eu vou ser capaz de limpar un pouco do código para o tipo de letra 1071 00:58:12,840 --> 00:58:16,830 ficheiros de código, de xeito que vai ter algún exemplos moi bo para traballar. 1072 00:58:16,830 --> 00:58:21,020 >> Aparte diso, se vostedes están indo ao CS50 hackathon, eu pode ou 1073 00:58:21,020 --> 00:58:25,730 non estar alí, e podo axudar con algún desenvolvemento IOS, tamén. 1074 00:58:25,730 --> 00:58:26,980 Entón, moitas grazas, persoal. 1075 00:58:26,980 --> 00:58:31,168