1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu Liu: Ei, como é que vai todo o mundo? 3 00:00:13,590 --> 00:00:20,250 E este é o IOS App Programación do obxectivo c seminario. 4 00:00:20,250 --> 00:00:21,520 E meu nome é Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Eu son un Júnior Lowell agora, concentrando-se en ciencia da computación. 6 00:00:26,114 --> 00:00:28,030 Polo tanto, neste seminario que eu son vai ensinar a vostedes 7 00:00:28,030 --> 00:00:30,770 un pouco sobre como facer un app. 8 00:00:30,770 --> 00:00:33,030 Yay, estar animado para el. 9 00:00:33,030 --> 00:00:36,790 >> Así, antes de comezar o mergullo ao lado de programación real, 10 00:00:36,790 --> 00:00:41,840 imos falar sobre moi rapidamente por que pode querer construír un app IOS? 11 00:00:41,840 --> 00:00:43,940 Por que é tan incrible IOS? 12 00:00:43,940 --> 00:00:47,250 Así, o primeiro problema, o primeiro cousa que é moi legal para nós, 13 00:00:47,250 --> 00:00:51,190 especialmente como un CS50 estudante, é que IOS 14 00:00:51,190 --> 00:00:55,860 usa Objective C. Así, hai unha nova linguaxe chamada Swift, 15 00:00:55,860 --> 00:00:58,260 pero nós non imos usar que neste seminario. 16 00:00:58,260 --> 00:01:01,540 Se vostede está interesado en Swift, hai é un seminario independente sobre iso. 17 00:01:01,540 --> 00:01:05,590 Pero Objective C é basicamente un super conxunto de C. Significado 18 00:01:05,590 --> 00:01:10,230 que todo o que se pode usar en C traducirse en Objective C 19 00:01:10,230 --> 00:01:11,630 moi facilmente. 20 00:01:11,630 --> 00:01:15,730 >> Como verás máis tarde, que en realidade hai algunha sintaxe moi básico, son 21 00:01:15,730 --> 00:01:19,790 basicamente exactamente o mesmo, C e Objective C. Entón, 22 00:01:19,790 --> 00:01:22,860 sempre que teña tomado CS50 -Se até aquí, xa 23 00:01:22,860 --> 00:01:26,500 Obxectivo sabe C, polo menos o 40%. 24 00:01:26,500 --> 00:01:30,720 Ademais, Apple ten un realmente API robusto para IOS. 25 00:01:30,720 --> 00:01:33,750 Hai unha morea de moi tolo cousas que podes facer con el. 26 00:01:33,750 --> 00:01:36,760 Un dos cales é alguén realmente creou un app IOS 27 00:01:36,760 --> 00:01:40,600 para coches de control, que é bastante interesante. 28 00:01:40,600 --> 00:01:42,610 Probablemente, un helicóptero é máis emocionante. 29 00:01:42,610 --> 00:01:47,020 Pero iso é o quão poderoso API IOS se pode. 30 00:01:47,020 --> 00:01:49,340 >> E como pode ter descubrín agora, 31 00:01:49,340 --> 00:01:53,000 o estourido de pila é probablemente un dos os máis importantes recursos en liña 32 00:01:53,000 --> 00:01:54,250 dispoñible para ti. 33 00:01:54,250 --> 00:01:58,090 E unha boa nova, para cada único problema que pode, posiblemente, 34 00:01:58,090 --> 00:02:01,840 pensar ao construír o seu proxecto final en Objective C, 35 00:02:01,840 --> 00:02:05,910 é probable que exista unha resposta de estourido de pila. 36 00:02:05,910 --> 00:02:07,420 É simplemente fantástico. 37 00:02:07,420 --> 00:02:12,780 Ademais de que, IOS é realmente unha plataforma 38 00:02:12,780 --> 00:02:16,260 onde pode chegar a unha enorme audiencia con pouco esforzo. 39 00:02:16,260 --> 00:02:20,170 Non é como Android, onde está todo moi fragmentado. 40 00:02:20,170 --> 00:02:22,540 >> Todo IOS é unificado. 41 00:02:22,540 --> 00:02:25,920 E mentres se crea unha aplicación para o iPhone, 42 00:02:25,920 --> 00:02:31,260 Pode facilmente porta que para iPad, iPad mini, ou de diferentes tamaños para iPhone. 43 00:02:31,260 --> 00:02:33,050 Estes son todos realmente cómodo. 44 00:02:33,050 --> 00:02:36,430 E é realmente moi bo para impresionar os seus amigos. 45 00:02:36,430 --> 00:02:38,920 Pode só realizar un iPhone e di ao seu amigo hey, 46 00:02:38,920 --> 00:02:40,250 este é a aplicación que fago. 47 00:02:40,250 --> 00:02:43,860 Podes facelo por calquera aplicacións de escritorio, que é bo. 48 00:02:43,860 --> 00:02:48,870 >> Todo ben, agora imos realmente comezar na linguaxe Objective C. 49 00:02:48,870 --> 00:02:52,910 Entón, por que non comezar con algunha sintaxe moi básico. 50 00:02:52,910 --> 00:02:57,410 Como mencionei antes Obxectivo C É basicamente un super conxunto de C. 51 00:02:57,410 --> 00:03:01,860 Entón, unha morea de sintaxe básica son en realidade, exactamente o mesmo. 52 00:03:01,860 --> 00:03:06,150 Declarando unha variable e adición de dúas variables en conxunto 53 00:03:06,150 --> 00:03:09,440 é exactamente como fixemos no Mario. 54 00:03:09,440 --> 00:03:11,140 Nada novo aquí. 55 00:03:11,140 --> 00:03:17,370 >> Do mesmo xeito, o inquilino é loop e condición tamén é o mesmo. 56 00:03:17,370 --> 00:03:22,370 Pode facer un loop, así como xa fixo nun Mario [inaudível]. 57 00:03:22,370 --> 00:03:26,280 E pode facer condicións así como o que 58 00:03:26,280 --> 00:03:29,240 veñen facendo nos seus sets p anteriores. 59 00:03:29,240 --> 00:03:33,400 Con todo, Objective C non é completamente C, 60 00:03:33,400 --> 00:03:36,640 e non é algo que é unha especie de estraño niso. 61 00:03:36,640 --> 00:03:42,340 >> A primeira delas é que cando está facendo programación C, que normalmente chamamos 62 00:03:42,340 --> 00:03:46,310 incluír e, a continuación, un nome de biblioteca. 63 00:03:46,310 --> 00:03:49,860 Pero en Objective C chama iso de importación. 64 00:03:49,860 --> 00:03:53,100 Basicamente dicindo funcionalidade, só nomes distintos. 65 00:03:53,100 --> 00:03:55,940 E as cordas son en realidade, un pouco raro. 66 00:03:55,940 --> 00:03:58,250 Podes ver que o primeiro cousa que é medio raro 67 00:03:58,250 --> 00:04:04,190 é que ten unha fermosa weird-- sorry-- tes NS moi raro 68 00:04:04,190 --> 00:04:04,960 asinar aquí. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 E a segunda cousa iso é medio raro 71 00:04:09,160 --> 00:04:14,090 se ten unha arroba antes en realidade, declarando a cadea. 72 00:04:14,090 --> 00:04:19,209 Así, o sinal de arroba basicamente significa que unha corda non é só unha corda, 73 00:04:19,209 --> 00:04:20,880 en realidade é un obxecto. 74 00:04:20,880 --> 00:04:22,780 Nós imos explicar que máis tarde, non facer 75 00:04:22,780 --> 00:04:25,800 pánico se non o fai comprender o que iso significa. 76 00:04:25,800 --> 00:04:29,980 E a impresión para a consola é un pouco diferente, porque en C chamamos printf, 77 00:04:29,980 --> 00:04:33,350 pero en Objective C chamamos [inaudível]. 78 00:04:33,350 --> 00:04:35,640 >> Podes estar se pregunta o que é iso. 79 00:04:35,640 --> 00:04:38,070 Isto é, basicamente, printf, só un idioma diferente. 80 00:04:38,070 --> 00:04:41,370 Exactamente o mesmo uso, exactamente a mesma funcionalidade. 81 00:04:41,370 --> 00:04:44,060 Ben, resulta que Objective C, en realidade, 82 00:04:44,060 --> 00:04:50,040 ten un prefixo ns en case todo, todo tipo de datos básicos, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 A razón é que ns realmente significa Next Step, 85 00:04:56,340 --> 00:04:59,980 que é unha empresa que Steve Jobs fundou, 86 00:04:59,980 --> 00:05:03,960 que é unha empresa en que o linguaxe Objective C nace. 87 00:05:03,960 --> 00:05:06,140 Polo tanto, esta é basicamente a tradición. 88 00:05:06,140 --> 00:05:09,010 Sei que é un pouco estraño, pero é Apple. 89 00:05:09,010 --> 00:05:16,840 >> Entón, algo que é aínda máis estraño que iso é unha declaración de función. 90 00:05:16,840 --> 00:05:22,600 Iso é moi diferente do que nós ver en C, porque aquí, en realidade, 91 00:05:22,600 --> 00:05:25,190 non se parece C anymore. 92 00:05:25,190 --> 00:05:28,810 O que ten aqui-- polo forma en que este non é un punto de bala, 93 00:05:28,810 --> 00:05:30,690 este é un sinal de menos. 94 00:05:30,690 --> 00:05:36,440 Ten un paréntese signo menos baleiro e, a continuación, o nome da función. 95 00:05:36,440 --> 00:05:38,450 Nós só dicir que se nós Ola mundo ten, entón 96 00:05:38,450 --> 00:05:42,820 o tipo de retorno sería nula porque devolver nada. 97 00:05:42,820 --> 00:05:44,680 >> O que queda realmente estraño é que cando está 98 00:05:44,680 --> 00:05:49,580 Tendo máis que un parámetro pasando a unha mesma función que 99 00:05:49,580 --> 00:05:53,870 vai ser moi raro, como se mostra aquí. 100 00:05:53,870 --> 00:05:58,230 Temos un nome do método, addInt chamado para [inaudível] 101 00:05:58,230 --> 00:06:00,370 e estamos pasando un parámetro. 102 00:06:00,370 --> 00:06:05,170 Pero despois diso, temos máis chamada nome do método con. 103 00:06:05,170 --> 00:06:08,500 E despois co que estamos pasando o segundo parámetro. 104 00:06:08,500 --> 00:06:11,940 Este é realmente un pouco raro, pero todas estas declaracións de función 105 00:06:11,940 --> 00:06:14,770 seguen o mesmo patrón como este. 106 00:06:14,770 --> 00:06:17,450 >> Temos un sinal de menos para comezar. 107 00:06:17,450 --> 00:06:21,550 O signo negativo pode ser un sinal de máis ás veces con base en que tipo de método 108 00:06:21,550 --> 00:06:22,340 é iso. 109 00:06:22,340 --> 00:06:25,000 Método é basicamente outro nome para a función. 110 00:06:25,000 --> 00:06:26,760 E nós imos explican que máis tarde, cando 111 00:06:26,760 --> 00:06:30,580 estamos a falar de obxecto programación orientada. 112 00:06:30,580 --> 00:06:34,300 Primeiro especificar o retorno escriba parénteses dentro, 113 00:06:34,300 --> 00:06:37,450 tras o cal vén o nome do método. 114 00:06:37,450 --> 00:06:40,310 Está pasando un parámetro. 115 00:06:40,310 --> 00:06:44,750 E se ten máis parámetros cómpre estender o nome do método 116 00:06:44,750 --> 00:06:46,770 e, basicamente, escribir algo máis aquí. 117 00:06:46,770 --> 00:06:48,090 >> Podería ser calquera cousa que sexa. 118 00:06:48,090 --> 00:06:50,140 No noso caso, é con. 119 00:06:50,140 --> 00:06:56,160 Pero podería dicir final, ou, ou, ou abc bar completo, o que quere. 120 00:06:56,160 --> 00:06:59,500 E, despois de que se pasando parámetro b. 121 00:06:59,500 --> 00:07:01,750 Este é realmente un estraño convención, pero estamos 122 00:07:01,750 --> 00:07:05,800 vai ver por que Apple quería para facelo moi rapidamente. 123 00:07:05,800 --> 00:07:10,530 Entón, como chamar a función? 124 00:07:10,530 --> 00:07:15,520 Chamar unha función en Objective C tamén é diferente da C. 125 00:07:15,520 --> 00:07:18,170 >> De feito, chamar un función en Objective C 126 00:07:18,170 --> 00:07:21,030 é máis como se está falando con alguén. 127 00:07:21,030 --> 00:07:27,030 Aquí temos auto, que chámase un obxecto. 128 00:07:27,030 --> 00:07:33,830 Está basicamente dicindo a obxecto de auto de dicir "Ola Mundo!" 129 00:07:33,830 --> 00:07:36,830 Esa é a forma de chamar a función. 130 00:07:36,830 --> 00:07:41,690 Un obxecto e un nome de método combinadas entre si. 131 00:07:41,690 --> 00:07:49,600 E é aí que a extensión estraño para o nome do método realmente entra en xogo. 132 00:07:49,600 --> 00:07:52,150 >> Imos ollar para o segundo exemplo. 133 00:07:52,150 --> 00:07:56,780 Nós acabamos de definir un método chamado addInt con bla bla bla. 134 00:07:56,780 --> 00:08:00,066 Polo tanto, neste caso, cando está chamando que [específico? mensaxe?] que vai 135 00:08:00,066 --> 00:08:02,035 para ollar como auto addInt: 10 en: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Parece Inglés. 138 00:08:08,070 --> 00:08:11,980 Aínda que a función declaración de función é estraño, 139 00:08:11,980 --> 00:08:15,600 Desde o punto de C do Obxectivo método estándar de declaración, 140 00:08:15,600 --> 00:08:18,830 é que cando está chamando a función ou método 141 00:08:18,830 --> 00:08:21,980 vai soar como o inglés real. 142 00:08:21,980 --> 00:08:25,270 Polo tanto, é moi intuitivo unha vez que se acostuma. 143 00:08:25,270 --> 00:08:28,740 >> Especialmente neste caso, onde pode basicamente 144 00:08:28,740 --> 00:08:33,010 ver que o nome da función é tipo de documentación de si mesmo. 145 00:08:33,010 --> 00:08:35,390 Non precisa de ningún máis explicación para ver 146 00:08:35,390 --> 00:08:42,770 o que exactamente está a suceder, o que exactamente un parámetro facendo. 147 00:08:42,770 --> 00:08:48,470 Indo alén diso, imos falar un pouco pouco sobre programación orientada a obxecto. 148 00:08:48,470 --> 00:08:52,160 Programación orientada a obxecto é un dos fundamental de programación 149 00:08:52,160 --> 00:08:57,110 técnicas ou patróns que é usado por Objective C. Objective C 150 00:08:57,110 --> 00:09:03,110 chámase Obxectivo C, non C, por unha razón moi boa. 151 00:09:03,110 --> 00:09:07,560 >> Entón, antes de entrar Sintaxe Objective C, 152 00:09:07,560 --> 00:09:11,670 Imos realmente rápido ollar para o que é exactamente un obxecto. 153 00:09:11,670 --> 00:09:15,480 Nós probablemente teña feito algo como obxecto antes, que 154 00:09:15,480 --> 00:09:19,780 chámase struct cando está implantación dunha árbore ou unha lista ligada 155 00:09:19,780 --> 00:09:25,730 ou [? probar. ?] Entón, é basicamente como un struct, 156 00:09:25,730 --> 00:09:28,560 pero é moito máis poderoso do que iso. 157 00:09:28,560 --> 00:09:33,150 Un obxecto ten métodos e propiedades. 158 00:09:33,150 --> 00:09:35,310 Os métodos son basicamente funcións. 159 00:09:35,310 --> 00:09:39,480 Basicamente funciona que un específico para un determinado obxecto. 160 00:09:39,480 --> 00:09:45,440 >> E as propiedades son basicamente os campo que se especifica no struct. 161 00:09:45,440 --> 00:09:48,500 Así, para cada obxecto temos algunha propiedade 162 00:09:48,500 --> 00:09:53,160 que ten algunhas variables que son específicos para o obxecto. 163 00:09:53,160 --> 00:09:57,170 E nós temos algunhas funcións que tamén son específicas para o obxecto. 164 00:09:57,170 --> 00:10:01,180 E as funcións son chamadas de métodos e as variables son chamadas de propiedades. 165 00:10:01,180 --> 00:10:03,190 É só un nome fantasía. 166 00:10:03,190 --> 00:10:10,440 Mentres feito, cada visión única ve mentres abre un app IOS, 167 00:10:10,440 --> 00:10:17,720 imos só dicir que Twitter ou Facebook, cada única visión que ve é un obxecto. 168 00:10:17,720 --> 00:10:22,110 E aínda todo o app é un obxecto para comezar. 169 00:10:22,110 --> 00:10:25,340 Concepto moi interesante. 170 00:10:25,340 --> 00:10:28,480 >> E por que queremos obxecto programación orientada? 171 00:10:28,480 --> 00:10:33,530 Entón podes imaxinar que cando programa pasa a ser bastante complicado. 172 00:10:33,530 --> 00:10:36,400 Nós só dicir que cando está implantación de taboleiro de xadrez, 173 00:10:36,400 --> 00:10:40,020 a lóxica vai ser realmente complicado. 174 00:10:40,020 --> 00:10:43,280 Ten 36 diferentes pezas, de forma que se 175 00:10:43,280 --> 00:10:48,370 quero escribir lóxica para todos 36 pezas diferentes en xadrez, 176 00:10:48,370 --> 00:10:52,150 que vai ser unha morea de distintas funcións e variables. 177 00:10:52,150 --> 00:10:54,070 É unha morea de problemas. 178 00:10:54,070 --> 00:10:58,980 E, probabelmente, vai escribir método diferente ou función diferente 179 00:10:58,980 --> 00:11:03,950 para cada unha das pezas de exactamente controlar o que eles fan. 180 00:11:03,950 --> 00:11:08,830 >> Pero se fai orientada a obxecto programación, todas estas pezas 181 00:11:08,830 --> 00:11:12,440 pode ser resumido en un único obxecto. 182 00:11:12,440 --> 00:11:16,111 E o obxecto terá algunha común propiedades, como o tipo de peza 183 00:11:16,111 --> 00:11:16,610 é iso? 184 00:11:16,610 --> 00:11:17,740 Cal é a cor? 185 00:11:17,740 --> 00:11:19,480 Como é que pode moverse? 186 00:11:19,480 --> 00:11:24,660 E desta forma ten moito simplificar a lóxica do mesmo. 187 00:11:24,660 --> 00:11:28,480 Entón é só unha boa forma para facer programas complicados, 188 00:11:28,480 --> 00:11:33,700 e relación xerárquica dentro do programa, moi sinxelo. 189 00:11:33,700 --> 00:11:36,800 Como veremos por iso moi rapidamente cando 190 00:11:36,800 --> 00:11:39,660 en realidade estamos facendo programming-- cando estamos realmente 191 00:11:39,660 --> 00:11:42,830 facendo un código S programación sesión máis tarde. 192 00:11:42,830 --> 00:11:48,120 >> Ben ademais de que, programación orientada a obxecto 193 00:11:48,120 --> 00:11:50,030 é só unha morea de diversión. 194 00:11:50,030 --> 00:11:51,990 Ten que crear o seu propio obxecto. 195 00:11:51,990 --> 00:11:56,080 Ten que proxectar o que fai Lo parecido contigo mesmo. 196 00:11:56,080 --> 00:11:58,250 Non hai resposta correcta para iso. 197 00:11:58,250 --> 00:12:02,940 E é totalmente interesante. 198 00:12:02,940 --> 00:12:07,270 Así, en programación orientada a obxectos, dous conceptos fundamentais 199 00:12:07,270 --> 00:12:10,130 será de clase e instancia. 200 00:12:10,130 --> 00:12:13,570 A clase é basicamente un modelo de obxecto. 201 00:12:13,570 --> 00:12:18,070 E un exemplo é basicamente un obxecto específico. 202 00:12:18,070 --> 00:12:21,090 >> Nós só dicir que está facendo unha cookie. 203 00:12:21,090 --> 00:12:24,800 Neste caso, cada cookie que realmente acabar con 204 00:12:24,800 --> 00:12:27,310 vai ser un obxecto. 205 00:12:27,310 --> 00:12:35,830 Pero a tarxeta de cookie que usa para asar todas as cookies serán unha clase. 206 00:12:35,830 --> 00:12:37,880 A clase é basicamente un modelo. 207 00:12:37,880 --> 00:12:46,170 E o exemplo será un específico obxecto creado a partir desa clase. 208 00:12:46,170 --> 00:12:49,970 >> E unha instancia será creada con base na declaración de clase, 209 00:12:49,970 --> 00:12:56,760 como veremos en láminas posteriores. 210 00:12:56,760 --> 00:13:00,010 Entón imos realmente fan un exemplo rápido [inaudível]. 211 00:13:00,010 --> 00:13:04,280 Imos dicir que estamos declarando un obxecto para un gato. 212 00:13:04,280 --> 00:13:07,930 O obxecto debe have-- a clase gato debe 213 00:13:07,930 --> 00:13:11,260 ten algunhas propiedades e métodos. 214 00:13:11,260 --> 00:13:17,300 Que tipo de propiedades deben os clase have-- debe o gato ten? 215 00:13:17,300 --> 00:13:20,580 >> Por exemplo, a cor, idade e raza, os 216 00:13:20,580 --> 00:13:24,440 variables que serán son específicos para cada gato. 217 00:13:24,440 --> 00:13:27,790 E estas son algunhas cousas que usan para describir un gato. 218 00:13:27,790 --> 00:13:31,880 Que tipo de método, ou o que pode facer un gato? 219 00:13:31,880 --> 00:13:37,160 Algúns exemplos rápidos sería persecución rato, comer peixe ou só miar. 220 00:13:37,160 --> 00:13:40,900 Este é realmente un rápido exemplo de clase gato. 221 00:13:40,900 --> 00:13:46,920 E realmente un específico cat obxecto será un gato 222 00:13:46,920 --> 00:13:50,930 onde se especifique o cor, idade e raza. 223 00:13:50,930 --> 00:13:53,790 >> Nese caso, o noso obxectivo é xa non unha clase máis. 224 00:13:53,790 --> 00:14:00,010 Nós copiar o modelo de clase e especificamos cada información específica 225 00:14:00,010 --> 00:14:04,510 para ese obxecto específico para facelo independente. 226 00:14:04,510 --> 00:14:09,350 E cando está chamando un método dentro dun obxecto, 227 00:14:09,350 --> 00:14:16,640 acaba de chamar Meow sobre o obxecto, que é o gato que acaba de crear. 228 00:14:16,640 --> 00:14:19,020 >> Probablemente ha imprimir algo así como "Ola Mundo! 229 00:14:19,020 --> 00:14:20,000 Miau. " 230 00:14:20,000 --> 00:14:22,110 Moi bonito. 231 00:14:22,110 --> 00:14:24,500 Todo ben, imos só entrar nalgúns detalles 232 00:14:24,500 --> 00:14:30,650 e ver o que fai exactamente ese traducir-se en estar programación IOS. 233 00:14:30,650 --> 00:14:36,500 Así, en iOS programando cada clase aplicarase en dous arquivos. 234 00:14:36,500 --> 00:14:41,420 Un arquivo é aquí, que está chamado a interface. 235 00:14:41,420 --> 00:14:45,300 Outro ficheiro é aquí, que chámase execución. 236 00:14:45,300 --> 00:14:48,890 >> Polo xeral a interfaz terá extension.h 237 00:14:48,890 --> 00:14:51,740 como vimos en bibliotecas C. 238 00:14:51,740 --> 00:14:56,340 E ficheiro de implementación é terá extension.n. 239 00:14:56,340 --> 00:14:57,260 É unha especie de estraño. 240 00:14:57,260 --> 00:15:01,270 Pero .n significa, en realidade, .c, non hai diferenza fundamental entre os 241 00:15:01,270 --> 00:15:02,100 dous. 242 00:15:02,100 --> 00:15:06,650 Polo tanto, neste caso, podemos ver que somos declarando interface, Cat: obxecto. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Iso é chamado de herdanza. 245 00:15:13,760 --> 00:15:19,170 Estamos, basicamente, herdando a clase gato da clase de obxecto. 246 00:15:19,170 --> 00:15:24,790 Así, cada propiedade e método que era previamente definido na clase de obxecto 247 00:15:24,790 --> 00:15:28,560 será automaticamente definido nunha clase gato tamén. 248 00:15:28,560 --> 00:15:35,900 >> Ademais, defínese a cor, raza e idade, tres variables. 249 00:15:35,900 --> 00:15:39,360 Isto realmente parece algo que fixo antes. 250 00:15:39,360 --> 00:15:41,770 Parece que struct. 251 00:15:41,770 --> 00:15:44,950 Isto é, basicamente, a sintaxe para declaración struct, 252 00:15:44,950 --> 00:15:47,710 e que é totalmente correcta. 253 00:15:47,710 --> 00:15:51,825 E dende que eu mencionei antes, a diferenza que un struct 254 00:15:51,825 --> 00:15:53,960 e un obxecto, un dos diferenzas fundamentais 255 00:15:53,960 --> 00:15:59,080 é un obxecto que ten método, mentres que só ten unha estrutura variables. 256 00:15:59,080 --> 00:16:03,450 Así, en adición ás propiedades ou variables que creamos para o obxecto, 257 00:16:03,450 --> 00:16:05,700 especificamos algún método. 258 00:16:05,700 --> 00:16:09,720 >> Nós só dicir que temos aquí dous métodos, un é Meow, 259 00:16:09,720 --> 00:16:12,460 outra é rato persecución. 260 00:16:12,460 --> 00:16:18,600 Nós probablemente vai querer estar pasando un parámetro con base no noso método anterior 261 00:16:18,600 --> 00:16:20,440 patrón de declaración. 262 00:16:20,440 --> 00:16:22,160 Probablemente vai querer estar pasando un rato. 263 00:16:22,160 --> 00:16:25,180 E probablemente vai querer para voltar un significante bool 264 00:16:25,180 --> 00:16:30,010 Se o gato ten correctamente colleu o rato ou non. 265 00:16:30,010 --> 00:16:33,170 >> Esta é a interface, pero podemos ver que a interface realmente 266 00:16:33,170 --> 00:16:35,150 non fai nada. 267 00:16:35,150 --> 00:16:40,800 El só di un programa que exists-- o que hai na clase gato. 268 00:16:40,800 --> 00:16:43,640 Así, para que o programa para facer algo, 269 00:16:43,640 --> 00:16:46,680 necesitamos ter arquivos de implementación. 270 00:16:46,680 --> 00:16:51,940 Entón, aquí, o primeiro que facemos é obviamente, nos importan a interface. 271 00:16:51,940 --> 00:16:56,470 Tras descargar o interfaz, defínese o método. 272 00:16:56,470 --> 00:17:00,150 >> Nós só dicir que aquí Miau sería só imprimir 273 00:17:00,150 --> 00:17:01,740 "Ola Mundo!" para a consola. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 E despois da implantación arquivo, que está moi ben feito. 276 00:17:08,460 --> 00:17:14,530 Esta é basicamente unha clase declaración dunha clase. 277 00:17:14,530 --> 00:17:19,970 Entón, agora a cuestión tórnase, Como declarar unha variable? 278 00:17:19,970 --> 00:17:26,880 O xeito no que usa unha clase para crear unha obxecto en Objective C está escrito aquí. 279 00:17:26,880 --> 00:17:30,730 >> Primeiro especificar que este é un punteiro gato, 280 00:17:30,730 --> 00:17:38,700 porque cada obxecto en Objective C finalmente é aplicado como un punteiro. 281 00:17:38,700 --> 00:17:46,210 E chamar a clase, chamalos como distribución, que é basicamente malloc, 282 00:17:46,210 --> 00:17:51,220 dicindo que o sistema operativo que necesita dalgún espazo de memoria para este obxecto. 283 00:17:51,220 --> 00:17:55,780 Despois que ten un obxecto xa e só Inicialize-o. 284 00:17:55,780 --> 00:17:56,780 Esta é só unha convención. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Sei que é un pouco raro, pero este é, en realidade, como Apple fai cousas. 287 00:18:04,410 --> 00:18:07,130 >> Asignación de propiedades é en realidade, moi sinxelo. 288 00:18:07,130 --> 00:18:09,250 É moi semellante ao o que está facendo cando 289 00:18:09,250 --> 00:18:13,780 está atribuíndo algúns específicos campo dentro struct. 290 00:18:13,780 --> 00:18:16,830 Só ten a variable nome, o nome da propiedade, 291 00:18:16,830 --> 00:18:20,140 e asignar un valor específico a el. 292 00:18:20,140 --> 00:18:24,120 E chamando un método é moi semellante. 293 00:18:24,120 --> 00:18:29,080 A chamada dun método é basicamente o que eu falo sobre 294 00:18:29,080 --> 00:18:32,390 para chamar calquera método en Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Está pasando un obxecto, en Neste caso, será myCat, 296 00:18:36,660 --> 00:18:42,490 e está pasando o nome do método. 297 00:18:42,490 --> 00:18:47,130 Como se está falando para o obxecto, myCat, que ten que miar. 298 00:18:47,130 --> 00:18:48,570 É moi interesante. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Despois diso, hai un patrón de deseño máis esencial 301 00:18:55,680 --> 00:18:59,940 que necesitamos falar sobre antes de chegar ao código S real. 302 00:18:59,940 --> 00:19:03,300 Este patrón de deseño é chamado evento dirixido programación. 303 00:19:03,300 --> 00:19:09,660 Isto tamén é, probablemente, un dos máis ideas fundamentais na programación IOS. 304 00:19:09,660 --> 00:19:14,410 >> Entón probablemente non sabe o que é exactamente é a programación do evento conducido, 305 00:19:14,410 --> 00:19:16,990 pero non é realmente tan asustado. 306 00:19:16,990 --> 00:19:20,400 Ben, en realidade, ten xa fixen iso antes. 307 00:19:20,400 --> 00:19:24,894 Esta é unha das liñas que probablemente xa escrito na última [inaudível] 308 00:19:24,894 --> 00:19:26,810 de CS50, google.maps.event.addListener (marcador, 309 00:19:26,810 --> 00:19:27,810 "Prema", function () {}):. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Ao chamar esta liña que está esencialmente dicindo ao ordenador 312 00:19:37,620 --> 00:19:42,650 que sempre que o evento de chamada "Click" acontece no marcador, 313 00:19:42,650 --> 00:19:43,630 usar esta función. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Isto é moi diferente o que fai en mario.c. 316 00:19:50,950 --> 00:19:56,670 En mario.c basta con executar o programa unha vez máis, dálle unha saída, 317 00:19:56,670 --> 00:19:58,590 e está feito. 318 00:19:58,590 --> 00:20:02,590 Trátase de unha especie de como un programas de tiro. 319 00:20:02,590 --> 00:20:05,830 Programas dirixidos por eventos son moi, moi diferente. 320 00:20:05,830 --> 00:20:10,230 Imos imaxinar que, se o Facebook é un programa de tiro non é realmente bo. 321 00:20:10,230 --> 00:20:13,750 Acaba de ir ao Facebook unha vez e está feito. 322 00:20:13,750 --> 00:20:16,700 Dálle algunha saída e nunca logralo de volta. 323 00:20:16,700 --> 00:20:19,380 Vostede non ten nada de máis. 324 00:20:19,380 --> 00:20:23,880 >> Entón, aquí, especialmente o estándar que usan é 325 00:20:23,880 --> 00:20:26,940 evento dirixido, de modo que Cada función 326 00:20:26,940 --> 00:20:31,480 ser pego con base no que evento que pasou. 327 00:20:31,480 --> 00:20:34,670 Por exemplo, se temos un botón e nós especificamos 328 00:20:34,670 --> 00:20:39,870 que sempre que o botón é premendo, chamar a función chamada "Ola Mundo!" 329 00:20:39,870 --> 00:20:47,810 Desta forma podemos realmente xestionar a lóxica función 330 00:20:47,810 --> 00:20:50,560 fluír dun xeito moi flexible. 331 00:20:50,560 --> 00:20:55,840 O usuario pode facer ou chamar unha función que xa foi chamado. 332 00:20:55,840 --> 00:20:59,900 É completamente baseado en que os usuarios fan. 333 00:20:59,900 --> 00:21:04,080 >> Así, podemos ver que este é en realidade, moito mellor que mario.c. 334 00:21:04,080 --> 00:21:07,190 E boa noticia é que é en realidade, non é un concepto novo. 335 00:21:07,190 --> 00:21:12,140 Vós xa fixeron que no último conxunto de problemas. 336 00:21:12,140 --> 00:21:16,640 Así, en Objective C existen tres diagramas diferentes 337 00:21:16,640 --> 00:21:19,030 para evento dirixido programación. 338 00:21:19,030 --> 00:21:21,970 O primeiro diagrama é chamou a acción de destino, 339 00:21:21,970 --> 00:21:26,990 onde conectar un botón prensa con algunha función. 340 00:21:26,990 --> 00:21:31,590 Nós só dicir que, sempre que premer algún botón, chamar algunha función. 341 00:21:31,590 --> 00:21:33,620 Isto é moi simple acción de destino. 342 00:21:33,620 --> 00:21:35,580 >> O segundo é en realidade, o máis difícil, 343 00:21:35,580 --> 00:21:38,450 el chámase delegación no protocolo. 344 00:21:38,450 --> 00:21:41,800 Nós imos explicar que en gran detalle máis tarde. 345 00:21:41,800 --> 00:21:44,420 E a terceira vía é a notificación. 346 00:21:44,420 --> 00:21:46,770 Este non é, en realidade moi importante no que se 347 00:21:46,770 --> 00:21:50,920 como nós estamos preocupados, porque a oportunidade que está indo a usar notificación 348 00:21:50,920 --> 00:21:53,310 no seu proxecto final é moi baixo. 349 00:21:53,310 --> 00:21:56,440 Entón, imos saltar esa parte. 350 00:21:56,440 --> 00:21:59,460 >> E nós estamos indo a mergullo en delegación no protocolo. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Entón, o que é exactamente un protocolo? 353 00:22:04,470 --> 00:22:06,450 Ou o que é exactamente unha delegación? 354 00:22:06,450 --> 00:22:09,670 Imos falar sobre o protocolo para comezar. 355 00:22:09,670 --> 00:22:13,360 Os protocolos son somente eventos. 356 00:22:13,360 --> 00:22:19,230 Pero estes eventos se dan aos vostede por Apple para comezar. 357 00:22:19,230 --> 00:22:22,640 Por exemplo, eu non son completamente seguro cantos de vós 358 00:22:22,640 --> 00:22:27,930 caras uso orixinal de Apple correo aplicación ou contacto, 359 00:22:27,930 --> 00:22:32,180 pero cada vez que se despraza a táboa e prema a célula específica 360 00:22:32,180 --> 00:22:36,130 enriba da mesa, que é un evento. 361 00:22:36,130 --> 00:22:38,330 >> E se quere facer ese evento por si mesmo, 362 00:22:38,330 --> 00:22:40,410 en realidade é un pouco difícil. 363 00:22:40,410 --> 00:22:44,880 Así, Apple deu que, mesmo para ti de modo que pode só usar directamente 364 00:22:44,880 --> 00:22:49,610 o evento para facer algo no seu propio país. 365 00:22:49,610 --> 00:22:52,980 Os protocolos son, en realidade, realmente, realmente moi utilizado 366 00:22:52,980 --> 00:22:58,320 en Objective C. Así en verdade, cada app único 367 00:22:58,320 --> 00:23:00,870 ten algo chamou app delegado. 368 00:23:00,870 --> 00:23:06,330 Dentro delicado é de todo protocolos para cargar o app. 369 00:23:06,330 --> 00:23:12,470 >> Nós só dicir que hai un evento para o app fixo carga. 370 00:23:12,470 --> 00:23:18,200 Entón, o que debe ocorrer despois que creou unha aplicación, tras abrir o app, 371 00:23:18,200 --> 00:23:22,630 despois de pechar a aplicación, ou despois pór o iPhone para durmir. 372 00:23:22,630 --> 00:23:27,480 Estes son todos os eventos que posúe xa foi dado a ti. 373 00:23:27,480 --> 00:23:34,730 E orixinalmente dentro destas partículas haberá ningunha implementación. 374 00:23:34,730 --> 00:23:39,750 Apple acaba de lle dixo que esta función ocorrerá cando ocorrer algún evento, 375 00:23:39,750 --> 00:23:44,380 pero o que fai que función é completamente ata. 376 00:23:44,380 --> 00:23:49,290 >> Delegación é basicamente dicindo a clase 377 00:23:49,290 --> 00:23:53,060 que ten que tratar con estes protocolos. 378 00:23:53,060 --> 00:23:55,340 É un pouco confusa, pero será 379 00:23:55,340 --> 00:23:59,380 moito máis clara cando facemos os códigos s en acción. 380 00:23:59,380 --> 00:24:04,760 Delegación de protocolo é realmente un mecanismo moi robusto no sentido 381 00:24:04,760 --> 00:24:08,160 que se facemos delegación para unha clase específica, 382 00:24:08,160 --> 00:24:12,400 podemos esencialmente xestionar todo tipo de eventos 383 00:24:12,400 --> 00:24:17,040 usando calquera clase que temos, ferramenta moi cómodo. 384 00:24:17,040 --> 00:24:21,530 >> Entón, un exemplo rápido para delegación no protocolo 385 00:24:21,530 --> 00:24:24,120 será que eu acabo de falar. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Este protocolo é chamado especificamente tableview [inaudível] seleccionar papel 388 00:24:30,890 --> 00:24:35,480 no [? índice?] [? pasado. ?] Por tanto, este un evento que sería pego cando 389 00:24:35,480 --> 00:24:39,710 realmente tocar nun específico célula do seu tableview, 390 00:24:39,710 --> 00:24:43,570 imos só dicir que no seu correo electrónico ou na súa aplicación de contactos. 391 00:24:43,570 --> 00:24:48,180 >> Dentro dunha función había orixinalmente non facer nada. 392 00:24:48,180 --> 00:24:51,950 A función non fai facer algo por defecto. 393 00:24:51,950 --> 00:24:55,540 Pero pode especificar que a función fai, 394 00:24:55,540 --> 00:24:59,610 dado o que quere da súa aplicación. 395 00:24:59,610 --> 00:25:01,610 Unha ferramenta moi cómodo. 396 00:25:01,610 --> 00:25:06,840 E con todo isto Dito isto, eu basicamente 397 00:25:06,840 --> 00:25:11,430 cubrir algunha sintaxe moi básico e concepto fundamental para Objective C 398 00:25:11,430 --> 00:25:15,860 programación, e podemos facer un código s. 399 00:25:15,860 --> 00:25:17,980 Moito máis emocionante. 400 00:25:17,980 --> 00:25:21,070 Así s código é realmente un pouco esmagadora 401 00:25:21,070 --> 00:25:23,330 cando abri-lo por primeira vez. 402 00:25:23,330 --> 00:25:26,640 >> Unha nota rápida, por iso, se quere facer o desenvolvemento IOS, 403 00:25:26,640 --> 00:25:29,630 Eu recomendo que ten un Mac. 404 00:25:29,630 --> 00:25:33,930 Porque facendo o desenvolvemento IOS en Windows é moi, moi difícil. 405 00:25:33,930 --> 00:25:37,560 É factible, pero é realmente difícil. 406 00:25:37,560 --> 00:25:40,610 E definitivamente non quere usar g edición. 407 00:25:40,610 --> 00:25:47,950 Así, en s código temos varias áreas diferentes. 408 00:25:47,950 --> 00:25:53,050 Cando se abre por primeira vez s código verás unha área de navegación, 409 00:25:53,050 --> 00:25:57,470 que basicamente mostra toda a arquivos que está no seu proxecto actual. 410 00:25:57,470 --> 00:26:03,590 >> Ten unha superficie de barra de ferramentas, que é basicamente xestionar puntos de vista, 411 00:26:03,590 --> 00:26:08,570 ou algún pequeno e rápido ferramentas preto s propio código. 412 00:26:08,570 --> 00:26:11,140 E esta é a área real editor. 413 00:26:11,140 --> 00:26:15,900 Esta área é moi semellante g editar, pero moito mellor que g edición. 414 00:26:15,900 --> 00:26:21,150 E nesta área do dereito, é chamada a área de utilidade. 415 00:26:21,150 --> 00:26:27,170 A área se fai realmente útil cando está creando interface ou especificando 416 00:26:27,170 --> 00:26:30,070 algunhas opcións rápidas para o seu app. 417 00:26:30,070 --> 00:26:34,570 >> E a área final é a depuración. 418 00:26:34,570 --> 00:26:37,970 Esta área contén a consola. 419 00:26:37,970 --> 00:26:43,170 Así, sempre que di printf, ou NSLog no noso caso, 420 00:26:43,170 --> 00:26:47,330 todos os seus resultados son será impreso aquí. 421 00:26:47,330 --> 00:26:48,260 Todo certo? 422 00:26:48,260 --> 00:26:52,090 Eu creo que podemos realmente facer rapidamente un exemplo para a programación IOS. 423 00:26:52,090 --> 00:26:54,220 E imos realmente abrir código-se s. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Entón, cada vez que abrir o código-se s, é aparecerá algo parecido. 426 00:27:01,346 --> 00:27:03,220 El lle vai preguntar o que quere facer? 427 00:27:03,220 --> 00:27:06,830 Quere comezar algo chou, un parque infantil, basicamente 428 00:27:06,830 --> 00:27:11,250 pode só probar o código sen realmente se comprometer con calquera app. 429 00:27:11,250 --> 00:27:13,020 >> Quere crear un novo proxecto? 430 00:27:13,020 --> 00:27:16,660 Ou quere continuar traballando no proxecto existente? 431 00:27:16,660 --> 00:27:20,270 No noso caso, imos para crear un novo proxecto. 432 00:27:20,270 --> 00:27:22,980 Por iso é moi bo, s código de feito xa ten 433 00:27:22,980 --> 00:27:26,820 -lle dado algúns modelos para a creación de obxectos. 434 00:27:26,820 --> 00:27:32,680 Se queres facer un xogo, o Código en realidade, ten un modelo de xogo para ti, 435 00:27:32,680 --> 00:27:36,890 ten aplicacións de páxina con base, aplicación baseada en pestanas. 436 00:27:36,890 --> 00:27:39,280 Neste caso, imos para facer algo moi sinxelo, 437 00:27:39,280 --> 00:27:43,230 e nós estamos indo a usar un aplicación visión única. 438 00:27:43,230 --> 00:27:48,270 >> Despois diso, só o que quere chamá- seu produto, e cal é o seu nome, 439 00:27:48,270 --> 00:27:52,760 cal é o seu identificador, e o que a linguaxe que usa. 440 00:27:52,760 --> 00:27:57,060 Aquí nós non queremos vaia utilizar o Data Core. 441 00:27:57,060 --> 00:28:00,170 Core Data é basicamente un databasing IOS. 442 00:28:00,170 --> 00:28:05,360 Se fai o Core Data, s código definirá 443 00:28:05,360 --> 00:28:07,710 un lote clases máis complicado para ti. 444 00:28:07,710 --> 00:28:12,740 Polo tanto, para manter todo simple, estamos só vou facer sen Core Data 445 00:28:12,740 --> 00:28:15,290 agora mesmo. 446 00:28:15,290 --> 00:28:18,030 >> O problema que será usar é isso-- o problema 447 00:28:18,030 --> 00:28:23,770 estaremos creando é que nós basicamente quere importar Mario de C 448 00:28:23,770 --> 00:28:25,437 a un app IOS. 449 00:28:25,437 --> 00:28:26,645 Entón, imos chamar iso de Mario-IOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Claro que se especifica o que quere poñer no seu proxecto. 452 00:28:34,880 --> 00:28:37,870 E alí imos nós. 453 00:28:37,870 --> 00:28:41,390 >> Polo tanto, este é un pouco esmagadora, pero esta é realmente 454 00:28:41,390 --> 00:28:43,540 o que acabamos de ver nos diapositivas. 455 00:28:43,540 --> 00:28:49,710 E a primeira área, vemos agora é basicamente configuración do proxecto. 456 00:28:49,710 --> 00:28:53,390 Entón, todo o que quere facer proxecto, que tipo de dispositivo, 457 00:28:53,390 --> 00:28:58,810 imos só dicir que tipo de dispositivo quere o seu app para aparecer? 458 00:28:58,810 --> 00:29:01,280 É iPhone, iPad ou universal? 459 00:29:01,280 --> 00:29:04,660 Así, a orientación do dispositivo, todas esas cousas. 460 00:29:04,660 --> 00:29:08,490 Non é moi importante, pero podería ser, pero esta 461 00:29:08,490 --> 00:29:11,050 É un lugar onde configura seu proxecto, se realmente 462 00:29:11,050 --> 00:29:15,180 quere implantar a tenda de Apple. 463 00:29:15,180 --> 00:29:20,420 >> Todo ben, imos ollar para algo que está dentro do noso código. 464 00:29:20,420 --> 00:29:22,360 Imos percorrer o navegador de ficheiros. 465 00:29:22,360 --> 00:29:30,140 E estes son todos os ficheiros que xa veu co modelo, moi agradable. 466 00:29:30,140 --> 00:29:35,980 Entón, cando nós clic nun deles iso é o que parece. 467 00:29:35,980 --> 00:29:38,530 Moi semellante ao g edición. 468 00:29:38,530 --> 00:29:41,340 Pero podes ver que a destaque de sintaxe é, probablemente, 469 00:29:41,340 --> 00:29:42,780 un pouco máis agradable. 470 00:29:42,780 --> 00:29:45,610 E é realmente moito máis poderoso do que g edición. 471 00:29:45,610 --> 00:29:49,970 E pode auto completa unha morea de cousas para ti, 472 00:29:49,970 --> 00:29:52,370 como veremos moi rapidamente. 473 00:29:52,370 --> 00:29:54,100 >> Imos abrir a área de depuración tamén. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Todo ben, como podemos ver, a consola está ben aquí. 476 00:30:07,000 --> 00:30:13,840 Isto é o que vai ver onde está printf ou nsloging algo. 477 00:30:13,840 --> 00:30:17,155 Así, sen máis delongas, imos realmente compilar a aplicación e ver que pasa. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Unha característica esencial para s código, é que s código 480 00:30:23,410 --> 00:30:25,850 ven con un simulador de iPhone. 481 00:30:25,850 --> 00:30:29,820 Así que non ter un iPhone para probar o seu proxecto, 482 00:30:29,820 --> 00:30:34,440 s código pode simular que, para vostede, como podemos ver no momento. 483 00:30:34,440 --> 00:30:36,406 >> É moi bo. 484 00:30:36,406 --> 00:30:38,640 Está tardando un pouco pouco de tempo para compilar 485 00:30:38,640 --> 00:30:43,040 e, basicamente, temos unha aplicación baleiro, 486 00:30:43,040 --> 00:30:44,640 que en realidade non fai nada. 487 00:30:44,640 --> 00:30:46,175 Pero compila. 488 00:30:46,175 --> 00:30:47,380 É bastante impresionante. 489 00:30:47,380 --> 00:30:50,200 É moito mellor que C, hein? 490 00:30:50,200 --> 00:30:52,130 Todo ben, entón imos tentar engadir algo. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Un arquivo que é un pouco estraño aquí chámase storyboard. 493 00:31:02,650 --> 00:31:08,020 Este é realmente un gran, característica impresionante para s código. 494 00:31:08,020 --> 00:31:14,170 Porque en s código, pode realmente arrastrar e soltar elementos no interfaz 495 00:31:14,170 --> 00:31:17,430 e vai amosar directamente cara arriba. 496 00:31:17,430 --> 00:31:18,055 Imos tentar que. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Nós deixamos caer unha etiqueta aquí, "Ola mundo !!!" 499 00:31:27,236 --> 00:31:29,740 Podemos centralizar iso. 500 00:31:29,740 --> 00:31:30,970 Moi legal. 501 00:31:30,970 --> 00:31:33,915 Agora imos realizar esta simulación stop. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Aquí temos "Ola mundo !!!" 504 00:31:38,700 --> 00:31:40,810 Nós nin sequera facer calquera codificación aínda. 505 00:31:40,810 --> 00:31:42,750 Que diaños está a suceder? 506 00:31:42,750 --> 00:31:45,880 Este é o quão poderoso Interface Builder pode ser. 507 00:31:45,880 --> 00:31:48,030 Alguén chegou a dicir que Probablemente, pode só 508 00:31:48,030 --> 00:31:52,800 completar un app sen escribir probablemente mil liñas de código 509 00:31:52,800 --> 00:31:54,820 só usando a interface build. 510 00:31:54,820 --> 00:31:59,680 Pero probablemente non é o mellor xeito de facelo. 511 00:31:59,680 --> 00:32:01,670 >> Agora imos realmente comezar a codificación. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Así, a estrutura do ficheiro é realmente moi interesante 514 00:32:08,330 --> 00:32:15,610 porque, como se pode ver, hai ningunha función principal en calquera lugar. 515 00:32:15,610 --> 00:32:17,466 Vexa? 516 00:32:17,466 --> 00:32:19,340 Como mencionamos anteriormente, verás que esta 517 00:32:19,340 --> 00:32:22,830 é un ficheiro de implementación para unha clase específica. 518 00:32:22,830 --> 00:32:25,690 Pero non hai ningún lugar principal. 519 00:32:25,690 --> 00:32:27,490 Entón, onde é o principal? 520 00:32:27,490 --> 00:32:31,970 De feito, hai un principal, pero o principal é, en realidade, agochada de vós. 521 00:32:31,970 --> 00:32:34,560 O principal é aquí. 522 00:32:34,560 --> 00:32:37,120 Isto parece familiar. 523 00:32:37,120 --> 00:32:41,000 >> Entón, basicamente o IOS está facendo dentro principal 524 00:32:41,000 --> 00:32:43,540 é que, sempre que é principal chamado, que é basicamente 525 00:32:43,540 --> 00:32:49,000 sempre que a aplicación é executado, el crea un obxecto chamado AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Como mencionei antes, a todo app é realmente un obxecto por si só. 528 00:32:57,350 --> 00:33:02,270 Polo tanto, desta forma, basicamente, a IOS app está dicindo o compilador 529 00:33:02,270 --> 00:33:05,540 que OK, eu estou indo a crear un produto chamado AppDelegate, 530 00:33:05,540 --> 00:33:07,620 e que vai ser o meu app. 531 00:33:07,620 --> 00:33:09,640 Entón, ten que ir que a través AppDelegate 532 00:33:09,640 --> 00:33:12,040 e ver o que este cara está facendo. 533 00:33:12,040 --> 00:33:14,850 O meu traballo está feito por min. 534 00:33:14,850 --> 00:33:22,070 >> E en AppDelegate verás que hai algunhas funcións realmente estraños, 535 00:33:22,070 --> 00:33:25,290 ben, en realidade, métodos, que Apple xa lle deu. 536 00:33:25,290 --> 00:33:27,464 Quen son eses? 537 00:33:27,464 --> 00:33:31,010 Estes son realmente só protocolos que eu estaba falando. 538 00:33:31,010 --> 00:33:35,670 Entón, eses son os eventos que Apple deulle para comezar. 539 00:33:35,670 --> 00:33:38,050 Non hai nada de algunha das funcións agora, 540 00:33:38,050 --> 00:33:40,820 pero se queremos arrincar algo para o noso app 541 00:33:40,820 --> 00:33:46,140 antes de entrar en carteleira calquera punto de vista, nós facemos iso aquí. 542 00:33:46,140 --> 00:33:51,150 >> Pode só ler o nome e eu creo que o evento é realmente moi clara. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Entón, agora principal creou un obxecto para AppDelegate. 545 00:33:58,350 --> 00:34:05,220 E o que AppDelegate fará é, en realidade, tamén oculto de ti. 546 00:34:05,220 --> 00:34:09,250 O AppDelegate comezará a carga do stock ViewController. 547 00:34:09,250 --> 00:34:13,170 Entón, é basicamente comezará a carga de todos os puntos de vista que ten 548 00:34:13,170 --> 00:34:17,500 e só procesar a visión con base na xerarquía. 549 00:34:17,500 --> 00:34:21,280 >> Polo tanto, neste caso, só temos un punto de vista, o que está aquí. 550 00:34:21,280 --> 00:34:25,060 Entón, esa é a única vista que vai ser chamado. 551 00:34:25,060 --> 00:34:28,159 A lóxica ViewController está ben aquí. 552 00:34:28,159 --> 00:34:32,159 Este é o código que realmente controla o punto de vista que acabamos de ver. 553 00:34:32,159 --> 00:34:33,679 Todo ben, imos facer algo aquí. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Entón viewDidLoad soa como un evento, cando en realidade este é tamén un delegado, 556 00:34:50,560 --> 00:34:52,500 este é tamén un protocolo. 557 00:34:52,500 --> 00:34:56,350 >> Así, calquera que sexa o punto de vista é cargado, todo dentro da función 558 00:34:56,350 --> 00:34:57,920 chamarase. 559 00:34:57,920 --> 00:35:02,840 Neste caso, hai que ver "Ola Tianyu! "Se executar o programa. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Está quedando un pouco lento a compilación dos ficheiros storyboard. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Ben, en realidade, nós vemos unha saída para el. 564 00:35:18,190 --> 00:35:20,720 É moi legal. 565 00:35:20,720 --> 00:35:22,000 Agora imos realmente facer Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Eu estou indo a definir o funcionar moi rapidamente. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: Resultados (int) nivel. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Todo ben, este é realmente o impresionante recurso de s código de auto realización. 572 00:36:06,410 --> 00:36:10,680 Entón, cando escribe para e escriba entrar, el xa desistiu do modelo 573 00:36:10,680 --> 00:36:12,325 para ti, o que é moi legal. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Isto debe ollar realmente familiar para vós. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Sentímolo, iso é culpa miña. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Todo ben, legal. 580 00:37:18,120 --> 00:37:22,710 Esa lóxica que mirar moi familiar para vós, especialmente só Mario. 581 00:37:22,710 --> 00:37:26,140 >> Pero agora imos imprimir a a consola en cada momento, 582 00:37:26,140 --> 00:37:29,280 porque queremos manter dalgún xeito a par do que estamos imprimindo. 583 00:37:29,280 --> 00:37:31,810 Nós imos empregar o resulta de algunha maneira, máis tarde, 584 00:37:31,810 --> 00:37:35,010 para amosar a impresión a producir para o usuario. 585 00:37:35,010 --> 00:37:37,730 Entón, en vez, somos só nslogging todo, 586 00:37:37,730 --> 00:37:42,410 que estamos almacenando todo nun resultado chamada de función, 587 00:37:42,410 --> 00:37:44,070 pero a lóxica é exactamente o mesmo. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Despois que rematar, nós pode imprimir os nosos resultados. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> E aquí en vez de imprimir o meu nome, imos chamar unha función. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Imos ver que pasa. 594 00:38:18,090 --> 00:38:21,240 Oops, obviamente. 595 00:38:21,240 --> 00:38:24,320 Temos un bo pouco pirámide aquí fóra. 596 00:38:24,320 --> 00:38:28,370 Este é basicamente C, somos só manipulación de onde chamar unha función 597 00:38:28,370 --> 00:38:30,010 e como é que unha función parecida. 598 00:38:30,010 --> 00:38:31,560 Non hai nada de diferente. 599 00:38:31,560 --> 00:38:34,040 Pero esta é realmente non moi emocionante aquí, 600 00:38:34,040 --> 00:38:37,500 porque non estamos vendo nada da aplicación para iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Entón, se realmente ten un iPhone app-- se realmente ten dereito Mario iOS 602 00:38:42,120 --> 00:38:45,080 Agora, non vai para ver todo o que 603 00:38:45,080 --> 00:38:49,450 ten algo que ver con Mario porque todas aquelas saídas nun consola 604 00:38:49,450 --> 00:38:51,620 están escondidos dun usuario. 605 00:38:51,620 --> 00:38:53,850 Isto é o que ve, que é "Ola mundo !!!" 606 00:38:53,850 --> 00:38:55,720 Non é bo. 607 00:38:55,720 --> 00:39:03,090 Agora imos tratar de facer que o usuario vexa o que exactamente estamos imprimindo. 608 00:39:03,090 --> 00:39:06,000 Entón, nós non necesitamos rotular máis. 609 00:39:06,000 --> 00:39:09,800 Imos tentar descubrir algo outra cousa que poida ser útil. 610 00:39:09,800 --> 00:39:12,140 >> De feito, hai unha elemento que se chama 611 00:39:12,140 --> 00:39:16,460 campo de texto, o que podería ser moi útil para nós. 612 00:39:16,460 --> 00:39:19,880 Basicamente, exhibe unha rexión de texto que se pode editar. 613 00:39:19,880 --> 00:39:22,320 Así que parece realmente útil. 614 00:39:22,320 --> 00:39:23,810 Agora imos arrastralo lo e soltalo. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Guau, temos unha visión de texto a noso ver, moi chique. 617 00:39:32,670 --> 00:39:35,430 Isto é un pouco grande de máis. 618 00:39:35,430 --> 00:39:38,150 Imos facelo menor. 619 00:39:38,150 --> 00:39:40,290 Poñelas ao centro. 620 00:39:40,290 --> 00:39:43,760 Facelo menor tamén. 621 00:39:43,760 --> 00:39:50,110 >> Agora temos unha vista de texto, o que poderiamos pode empregar para mostrar o noso resultado final. 622 00:39:50,110 --> 00:39:52,860 Pero agora é definitivamente non vai funcionar 623 00:39:52,860 --> 00:39:56,970 porque non é o Não-- ViewController acabamos 624 00:39:56,970 --> 00:40:03,010 definido non sabe que hai unha exhibición de texto por aí. 625 00:40:03,010 --> 00:40:06,550 Entón, necesitamos de algunha maneira conectar a exhibición de texto que acabamos 626 00:40:06,550 --> 00:40:11,660 creado coa clase que xa veu coa xente. 627 00:40:11,660 --> 00:40:14,860 >> A nosa forma de facelo é en realidade, realmente máxico. 628 00:40:14,860 --> 00:40:18,190 Entón abra storyboard. 629 00:40:18,190 --> 00:40:22,220 Hai un especial [inaudível] chamado [? asistente?] [inaudível]. 630 00:40:22,220 --> 00:40:25,190 Cando fai clic en que, se abrirá dous arquivos. 631 00:40:25,190 --> 00:40:29,425 Un deles é unha clase e outra é unha vista que corresponde para iso. 632 00:40:29,425 --> 00:40:31,920 É moi, moi útil. 633 00:40:31,920 --> 00:40:35,950 E imos só atravesa o ficheiro .h. 634 00:40:35,950 --> 00:40:39,110 Control, este é [inaudível] a lóxica. 635 00:40:39,110 --> 00:40:47,280 Prema a tecla Control e arrastra o exhibición de texto para a declaración. 636 00:40:47,280 --> 00:40:48,780 Imos chamar ese outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Póñase-se. 639 00:40:53,670 --> 00:40:59,420 Entón, aquí temos declarado un novo propiedade para a nosa clase ViewController. 640 00:40:59,420 --> 00:41:02,300 E a nova propiedade é só o punto de vista de texto 641 00:41:02,300 --> 00:41:05,000 creamos no edificio interface. 642 00:41:05,000 --> 00:41:07,990 Entón, desta forma poderíamos o acceso de todos os datos 643 00:41:07,990 --> 00:41:13,630 e manipular todo o que está dentro o punto de vista de produción, que é incrible. 644 00:41:13,630 --> 00:41:19,260 >> Así, no noso código actual, imos facer algo con el. 645 00:41:19,260 --> 00:41:23,810 Entón, neste momento en que somos como impresión o resultado final para Mario, 646 00:41:23,810 --> 00:41:28,020 estamos en non rexistrando nada. 647 00:41:28,020 --> 00:41:30,080 Quero dicir que podería manter a declaración de rexistro. 648 00:41:30,080 --> 00:41:41,490 Ademais, nós enviar a lectura que acabamos 649 00:41:41,490 --> 00:41:47,622 creado para a visualización de saída, que é unha UI textview que acabamos de crear. 650 00:41:47,622 --> 00:41:48,746 Agora imos ver que pasa. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Guau. 653 00:41:56,620 --> 00:41:59,130 Temos unha pirámide no app agora. 654 00:41:59,130 --> 00:42:06,720 >> Así, o usuario pode ver a nosa saída, pois copiamos a saída do noso código 655 00:42:06,720 --> 00:42:08,045 para a nosa interface. 656 00:42:08,045 --> 00:42:10,950 É moi bo. 657 00:42:10,950 --> 00:42:14,990 En realidade non é que excitante porque can-- 658 00:42:14,990 --> 00:42:18,250 Todo o app está facendo é mostrando unha pirámide para ti, 659 00:42:18,250 --> 00:42:20,520 e non hai nada que poida facer sobre iso. 660 00:42:20,520 --> 00:42:22,330 Non é particularmente emocionante. 661 00:42:22,330 --> 00:42:27,840 Entón agora imos facer un botón que borrará os puntos de vista. 662 00:42:27,840 --> 00:42:30,290 Parece que un botón será útil. 663 00:42:30,290 --> 00:42:33,270 Arrastre e solte. 664 00:42:33,270 --> 00:42:33,900 Un botón. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Botón dous. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Entón, cando eu premer á esquerda botón, a vista que limpar. 669 00:42:52,052 --> 00:42:53,635 Non debe haber nada na pantalla. 670 00:42:53,635 --> 00:42:56,970 E cando nós prema o botón dereito, Mario, 671 00:42:56,970 --> 00:42:59,740 a vista aparecerá de novo. 672 00:42:59,740 --> 00:43:05,510 Así, deste xeito tamén nós facemos o material máxico, control e arrastra 673 00:43:05,510 --> 00:43:08,740 á declaración de clase no asistente director-- 674 00:43:08,740 --> 00:43:11,600 no asistente de espectador. 675 00:43:11,600 --> 00:43:18,620 Neste caso, estamos especificando que esta debe ser unha acción. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> Entón, aquí xa creamos unha acción chamada clearMario, 679 00:43:26,830 --> 00:43:34,210 que é o método que sería chamada sempre que premer o botón claro. 680 00:43:34,210 --> 00:43:41,030 Así, no noso código, en realidade, imos só poñer o texto de saída ea vista de saída 681 00:43:41,030 --> 00:43:44,620 en nada, e de que xeito vai aparecer para ser claro. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Ademais, imos crear outro método chamado runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh, desculpe, iso non debe ser unha propiedade. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Todo ben, que debería ser unha acción ben. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> E cando esa función é chamado, nós só executar Mario dez. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Esperemos que isto vai estar ben. 692 00:44:39,780 --> 00:44:41,120 Será que compilar? 693 00:44:41,120 --> 00:44:43,920 Si. 694 00:44:43,920 --> 00:44:45,090 Agora temos unha visión. 695 00:44:45,090 --> 00:44:46,560 Temos unha saída. 696 00:44:46,560 --> 00:44:50,040 E imos ver que pasa. 697 00:44:50,040 --> 00:44:52,590 Isto acabou. 698 00:44:52,590 --> 00:44:54,500 Está de volta de novo. 699 00:44:54,500 --> 00:44:57,620 Polo tanto, temos aquí especificado que tipo de función 700 00:44:57,620 --> 00:45:00,400 ha ser chamado cando nós escribir algo, 701 00:45:00,400 --> 00:45:03,160 cando se presiona un botón específico. 702 00:45:03,160 --> 00:45:07,890 Este é basicamente o programa de acción branco 703 00:45:07,890 --> 00:45:12,510 para evento dirixido programación en Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Ademais de que, non é moi emocionante 705 00:45:15,030 --> 00:45:19,810 porque non podemos realmente cambiar ; alto da pirámide será, 706 00:45:19,810 --> 00:45:23,640 por iso, probablemente vai querer dalgún xeito obter unha entrada do usuario 707 00:45:23,640 --> 00:45:29,490 e cambiar a altura do pirámide con base no que saída. 708 00:45:29,490 --> 00:45:32,900 Entón nós imos facelo. 709 00:45:32,900 --> 00:45:38,720 Entón, esta vez cando chamamos runMario, nós non só chamar Mario directamente. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 O título deste un. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegado. 714 00:46:23,700 --> 00:46:25,160 Isto é moi interesante. 715 00:46:25,160 --> 00:46:26,720 ¿Que é un delegado? 716 00:46:26,720 --> 00:46:28,950 Vou poñer auto aquí. 717 00:46:28,950 --> 00:46:31,038 E veremos o que iso significa máis tarde. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Entón aquí creamos basicamente un instancia específica chamada de alerta UI 720 00:46:51,120 --> 00:46:52,210 view. 721 00:46:52,210 --> 00:46:54,440 A exhibición de alerta é UI basicamente o que quere 722 00:46:54,440 --> 00:46:58,940 ve cada vez que algo Pops -Se e pídelle á entrada, 723 00:46:58,940 --> 00:47:03,080 como o que vai pasar cando estás para mercar algo nunha tenda de aplicacións. 724 00:47:03,080 --> 00:47:14,250 >> Ademais de que, despois de crealo, nós só mostrar a alerta. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Todo ben, imos só rapidamente proba iso vai funcionar ou non. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Iso é moi legal. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Agora imos realmente crear unha campo de entrada para a alerta de UI. 731 00:47:59,120 --> 00:48:01,170 Esta é o xeito no que facemos isto. 732 00:48:01,170 --> 00:48:07,490 E temos que ter un vista de entrada para a alerta. 733 00:48:07,490 --> 00:48:09,020 Moi legal. 734 00:48:09,020 --> 00:48:12,330 Nós só dicir que 10. 735 00:48:12,330 --> 00:48:14,900 >> Non está facendo nada dereito agora, porque a chamada, en realidade, 736 00:48:14,900 --> 00:48:17,770 non se alterou para a execución de Mario. 737 00:48:17,770 --> 00:48:23,470 Polo tanto, este tornouse un pouco pouco raro porque sempre 738 00:48:23,470 --> 00:48:30,790 nós premer un botón para abaixo, sempre que premer un botón na pantalla de alerta, 739 00:48:30,790 --> 00:48:35,560 algo acontecer, pero iso non acontece. 740 00:48:35,560 --> 00:48:37,220 Como é que imos coller iso? 741 00:48:37,220 --> 00:48:41,280 Como sabemos que un usuario rexeitou unha exhibición de alerta 742 00:48:41,280 --> 00:48:45,630 e xa entrou nun número, porque agora nada está realmente a suceder. 743 00:48:45,630 --> 00:48:50,450 >> Ben, ten que ter difícil de adiviñar Lo dereito, a delegación. 744 00:48:50,450 --> 00:48:55,440 Así, ademais de todo estas declaracións, 745 00:48:55,440 --> 00:49:03,190 necesitamos engadir unha nova delegación de que chamou de UI vista alerta delegado. 746 00:49:03,190 --> 00:49:06,440 Así que cada interacción ou evento 747 00:49:06,440 --> 00:49:10,190 que nós imos ter coa exhibición de alerta UI 748 00:49:10,190 --> 00:49:14,100 vai ser tratada pola nosa clase tamén. 749 00:49:14,100 --> 00:49:26,297 >> Así, ademais de que, será botón de previsualización prema alerta no índice. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Isto é alcanzar. 752 00:49:37,730 --> 00:49:42,020 Así, nese caso, temos já-- polo que temos 753 00:49:42,020 --> 00:49:46,210 descubrín un protocolo que enfrontará o evento cando 754 00:49:46,210 --> 00:49:51,320 prememos no botón Feito na exhibición de alerta. 755 00:49:51,320 --> 00:49:55,976 Entón, cada vez que dimitir o exhibición de alerta, que debe acontecer. 756 00:49:55,976 --> 00:49:57,350 Déixeme só probalo moi rapidamente. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Ben, en realidade, chegamos aquí. 759 00:50:19,300 --> 00:50:22,210 >> Entón, aquí, o que non vai en realidade é, en realidade, 760 00:50:22,210 --> 00:50:43,120 obter as-- Por iso, queremos saír o texto que temos anteriormente 761 00:50:43,120 --> 00:50:45,350 entrou na exhibición de alerta. 762 00:50:45,350 --> 00:50:48,505 E con base en texto, estamos vai amosar Mário. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Isto transforma moi rapidamente para fóra se realmente funciona ou non. 765 00:50:55,480 --> 00:50:59,476 Entón, nese caso, se a entrada, imos dicir, 10, debemos ver 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Moi bo, temos un número aquí. 768 00:51:05,210 --> 00:51:06,470 É moi bo. 769 00:51:06,470 --> 00:51:16,840 Agora, a última etapa será ser-- Así, o último paso que necesitamos facer agora 770 00:51:16,840 --> 00:51:21,100 é só unha chamada con Mario con base no nivel de entrada 771 00:51:21,100 --> 00:51:23,270 que temos colocado en carteleira de alerta. 772 00:51:23,270 --> 00:51:26,920 Entón, necesitamos converter esa cadea para IOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Rebosar estático é moi impresionante. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 E, despois, é só chamar auto valor marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Imos ver o que vai realmente funciona ou non. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Nós xa estamos dada unha pirámide. 781 00:52:01,550 --> 00:52:04,785 Imos tentar cambiar a altura. 782 00:52:04,785 --> 00:52:06,530 Que realmente funciona. 783 00:52:06,530 --> 00:52:07,610 É moi legal. 784 00:52:07,610 --> 00:52:10,420 De xeito que agora pode só entrada de calquera valor que quere. 785 00:52:10,420 --> 00:52:12,440 Nós só dicir que catro. 786 00:52:12,440 --> 00:52:14,260 Iso é moi legal. 787 00:52:14,260 --> 00:52:17,090 Polo tanto, este é basicamente un exemplo moi rápido 788 00:52:17,090 --> 00:52:23,170 Para saber como crear un proxecto en código s e como fío realmente rápido 789 00:52:23,170 --> 00:52:26,220 algúns eventos realmente sinxelo e funcións. 790 00:52:26,220 --> 00:52:28,840 >> Así, a fonte está indo para ser colocadas en liña máis tarde. 791 00:52:28,840 --> 00:52:33,400 Entón, se vostede está interesado en Mario funciona como iOS, 792 00:52:33,400 --> 00:52:38,360 Vou poñer exactamente o mesmo proxectos para o sitio web do CS50 máis tarde. 793 00:52:38,360 --> 00:52:41,260 Somos feitos, basicamente, coa verán, e antes de rematar 794 00:52:41,260 --> 00:52:45,190 Eu só quero que apunte a mozos algunhas características realmente impresionantes de que 795 00:52:45,190 --> 00:52:47,550 están dispoñibles en liña. 796 00:52:47,550 --> 00:52:52,270 >> Obviamente, a documentación de Apple vai ser moi útil. 797 00:52:52,270 --> 00:52:57,630 Pero, ademais, I especialmente Recomendamos catro fontes, escola de código, 798 00:52:57,630 --> 00:53:02,120 casa na árbore, e AppCoda WWDC vídeos. 799 00:53:02,120 --> 00:53:07,270 Código escola e casa da árbore son dous sitios Educadoras en liña, 800 00:53:07,270 --> 00:53:10,210 que especificamente concentrarse en enxeñaría de software. 801 00:53:10,210 --> 00:53:16,930 Especialmente para a escola código, eles ten realmente bo tutorial en iOS. 802 00:53:16,930 --> 00:53:19,550 >> Este é un exemplo moi rápido para el. 803 00:53:19,550 --> 00:53:22,980 Eles, de feito, crear un realmente cute-- ollar para aquel pequeno iPhone bonito 804 00:53:22,980 --> 00:53:24,920 gajo alí, é bastante impresionante. 805 00:53:24,920 --> 00:53:31,010 E a forma como eles explican Obxectivo Sintaxe C é perfectamente claro. 806 00:53:31,010 --> 00:53:32,230 Casa na árbore é o mesmo. 807 00:53:32,230 --> 00:53:34,660 E AppCoda é un foro. 808 00:53:34,660 --> 00:53:38,130 En realidade, é un blog que se executou por un moi experimentado Objective C 809 00:53:38,130 --> 00:53:39,120 programador. 810 00:53:39,120 --> 00:53:43,950 E todos eses tutoriais en AppCoda son moi curto e fácil de implementar, 811 00:53:43,950 --> 00:53:45,390 altamente recomendable. 812 00:53:45,390 --> 00:53:47,700 >> E se é un programador, definitivamente ir comprobar 813 00:53:47,700 --> 00:53:55,660 como os vídeos da WWDC, onde podes aprender sobre a última programación iOS 814 00:53:55,660 --> 00:53:58,250 técnicas, APIs e bibliotecas. 815 00:53:58,250 --> 00:54:02,850 Entón, iso é moi fermoso Lo ao seminario. 816 00:54:02,850 --> 00:54:03,820 Moitas grazas. 817 00:54:03,820 --> 00:54:08,040 E eu espero que divertirse crear o seu propio app IOS. 818 00:54:08,040 --> 00:54:09,302