1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Benvenuto vedi CS50 seminario - 3 00:00:09,800 --> 00:00:11,630 Introduzione a iOS. 4 00:00:11,630 --> 00:00:13,290 Grazie a tutti per essere venuti. 5 00:00:13,290 --> 00:00:16,610 Spero che tu sia altrettanto entusiasti come io sono su iOS. 6 00:00:16,610 --> 00:00:22,300 L'anno scorso, ho preso CS50 come un sophomore, e ho praticamente imparato iOS per il mio 7 00:00:22,300 --> 00:00:23,490 progetto finale. 8 00:00:23,490 --> 00:00:26,350 Ed era abbastanza - 9 00:00:26,350 --> 00:00:30,530 bene, non è stato facile, ma ci sono un sacco di tutorial di supporto online. 10 00:00:30,530 --> 00:00:33,760 E spero davvero che con questo seminario, ti darò ragazzi una testa 11 00:00:33,760 --> 00:00:36,750 avviare lo sviluppo iOS 12 00:00:36,750 --> 00:00:40,490 >> Quindi, in termini di sviluppo iOS, ci sono due cose principali che 13 00:00:40,490 --> 00:00:42,090 voler coprire oggi. 14 00:00:42,090 --> 00:00:43,290 In primo luogo, il linguaggio - 15 00:00:43,290 --> 00:00:46,650 la lingua sarà in Objective-C. Ci sentiamo davvero 16 00:00:46,650 --> 00:00:47,750 qualcosa di veramente eccitante. 17 00:00:47,750 --> 00:00:51,500 Quindi, è possibile unire tutta la Mela comunità di sviluppatori e costruire qualche 18 00:00:51,500 --> 00:00:52,940 applicazioni davvero impressionante. 19 00:00:52,940 --> 00:00:58,670 >> Inoltre, iOS 7 è bella, si spera, per alcuni di voi. 20 00:00:58,670 --> 00:01:01,130 Ma è discutibile, lo so. 21 00:01:01,130 --> 00:01:05,349 E soprattutto, quello che voglio fare è di guida attraverso Objective-C, e anche 22 00:01:05,349 --> 00:01:10,650 Xcode, che è integrata ambiente di sviluppo che sarete 23 00:01:10,650 --> 00:01:13,460 lavora in per iOS. 24 00:01:13,460 --> 00:01:19,140 >> E così, solo una parola su Objective-C. Fondamentalmente, è esattamente lo stesso come C, 25 00:01:19,140 --> 00:01:22,790 ma con un sacco di altre cose. 26 00:01:22,790 --> 00:01:27,710 E così, più propriamente, in realtà è un super-set di C. Quindi, tutto ciò che si 27 00:01:27,710 --> 00:01:32,280 può fare in C in questo momento, che è fondamentalmente come pset 0 a 6, si 28 00:01:32,280 --> 00:01:34,170 può fare in Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Quindi, non aver paura di questo nuovo lingua che si sta andando a imparare. 30 00:01:38,620 --> 00:01:42,120 Hai già coperto un sacco di esso, perché hai tutto fatto C lo scorso 31 00:01:42,120 --> 00:01:45,880 semestre, solo che adesso si sta andando per avere molto di più per lavorare. 32 00:01:45,880 --> 00:01:49,270 E sto solo andando a condurre l'utente attraverso un paio di esempi per evidenziare alcuni 33 00:01:49,270 --> 00:01:53,920 delle principali differenze che ho trovato erano molto importante quando ho imparato 34 00:01:53,920 --> 00:01:57,180 Objective-C lo scorso anno. 35 00:01:57,180 --> 00:02:00,910 >> Ebbene realtà, così, l'altro punto è, Objective-C è, ovviamente, 36 00:02:00,910 --> 00:02:02,200 object-oriented. 37 00:02:02,200 --> 00:02:06,340 E parleremo un po ' su che cosa significa più tardi. 38 00:02:06,340 --> 00:02:11,340 In sostanza, è come come hai lavorato con struct in questo pset passato, con 39 00:02:11,340 --> 00:02:13,360 nodi e altri simili cose del genere. 40 00:02:13,360 --> 00:02:17,110 Tranne che, in Objective-C, tutto è un oggetto, e si sta andando ad essere 41 00:02:17,110 --> 00:02:20,720 passando intorno puntatori a oggetti piuttosto che i valori stessi. 42 00:02:20,720 --> 00:02:25,050 Quindi, è solo qualcosa di importante da tenere a mente. 43 00:02:25,050 --> 00:02:29,140 >> Allora, perché non iniziamo con un paio di differenze di sintassi tra C e 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Voglio evidenziare il # include, si sapere, io.h standard C e C + +, con 46 00:02:38,310 --> 00:02:44,030 la versione Objective-C di quella, che è # import, e quindi una sorta di 47 00:02:44,030 --> 00:02:44,790 file di intestazione. 48 00:02:44,790 --> 00:02:48,165 In questo caso, sarebbe UIKit, sai, tagliare UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Potrebbe anche essere, sai, MKMapview a voi slash MKMapview.h se si desidera 50 00:02:53,560 --> 00:02:56,370 per fare, come, una mappa all'interno della vostra applicazione. 51 00:02:56,370 --> 00:02:57,110 Cose simili come tale. 52 00:02:57,110 --> 00:03:01,250 >> Quindi, la cosa importante è includere ora ha cambiato da importare. 53 00:03:01,250 --> 00:03:04,340 Ma l'idea rimane. 54 00:03:04,340 --> 00:03:10,460 Stai andando a essere importatrice qualche tipo del file di intestazione nel vostro programma. 55 00:03:10,460 --> 00:03:14,550 >> Voglio anche sottolineare la differenza tra printf e NSLog. 56 00:03:14,550 --> 00:03:19,760 Tuttavia, come abbiamo già detto, Objective-C è un severo super-set di 57 00:03:19,760 --> 00:03:22,800 C, il che significa che esiste printf in Objective-C, troppo. 58 00:03:22,800 --> 00:03:24,340 Ma la maggior parte delle persone non usano quella. 59 00:03:24,340 --> 00:03:28,245 Molte persone utilizzano questo NSLog perché ti dà un timestamp, e vedremo 60 00:03:28,245 --> 00:03:29,780 in azione successiva. 61 00:03:29,780 --> 00:03:33,560 Ma, è generalmente una più utile modo per stampare le variabili. 62 00:03:33,560 --> 00:03:38,220 >> E voglio anche sottolineare che NSLog prende proprio nello stesso 63 00:03:38,220 --> 00:03:41,650 valori segnaposto come printf fa - 64 00:03:41,650 --> 00:03:45,900 così% d è per un int, % F è per un galleggiante. 65 00:03:45,900 --> 00:03:49,750 Tuttavia, voglio sottolineare questo ultimo - 66 00:03:49,750 --> 00:03:52,960 NSLog% a sign - 67 00:03:52,960 --> 00:03:55,390 che è un segnaposto per un oggetto. 68 00:03:55,390 --> 00:04:01,160 E come ho detto in precedenza, le offerte di Objective-C più o meno lo più in oggetti, 69 00:04:01,160 --> 00:04:05,020 e quindi questo arriverà in uso quando si vuole stampare, forse, forse un 70 00:04:05,020 --> 00:04:08,390 NSArray, o NSDictionary, o un NSString. 71 00:04:08,390 --> 00:04:13,750 >> Così, inoltre, notare che, nel nostro NSLog affermazione, abbiamo un a segno davanti 72 00:04:13,750 --> 00:04:15,380 della citazione - 73 00:04:15,380 --> 00:04:20,769 vale a significare che le stringhe, ora, in Objective-C sono oggetti. 74 00:04:20,769 --> 00:04:23,310 Non sono più stelle semplicemente char. 75 00:04:23,310 --> 00:04:25,530 Sono oggetti e sono trattato come tale. 76 00:04:25,530 --> 00:04:28,690 >> Quindi, è davvero importante che quando si utilizza NSLog prende in NS 77 00:04:28,690 --> 00:04:32,580 stringa, il che significa che dovrete per includere un a fronte del 78 00:04:32,580 --> 00:04:34,270 virgolette. 79 00:04:34,270 --> 00:04:38,290 Ed è per questo che si vede, qui, in tutte le la mia funzione chiamate a questo NSLog, ho 80 00:04:38,290 --> 00:04:42,400 avere a fronte delle citazioni, anche se la% d e f di% sono 81 00:04:42,400 --> 00:04:45,200 tutti uguali da C. 82 00:04:45,200 --> 00:04:47,930 >> Tutte le domande finora? 83 00:04:47,930 --> 00:04:50,920 Cercherò di passare attraverso questa fretta così che possiamo avere più tempo per lavorare 84 00:04:50,920 --> 00:04:55,210 con Xcode e Objective-C, in modo che voi potete ottenere di più 85 00:04:55,210 --> 00:04:57,630 familiarità con esso. 86 00:04:57,630 --> 00:05:01,900 >> Avanti, voglio evidenziare qualcosa concettualmente importante. 87 00:05:01,900 --> 00:05:05,130 Quindi, in C, la maggior parte delle cose sono funzioni. 88 00:05:05,130 --> 00:05:06,280 Facciamo una chiamata di funzione. 89 00:05:06,280 --> 00:05:10,190 Dichiariamo funzioni in questo modo, con digitare il ritorno, poi la 90 00:05:10,190 --> 00:05:13,570 nome della funzione, tra parentesi, e quindi qualunque argomenti e il tipo di 91 00:05:13,570 --> 00:05:15,590 questi argomenti vogliamo passare dentro 92 00:05:15,590 --> 00:05:19,970 E Objective-C, perché tutto è un oggetto o una classe - 93 00:05:19,970 --> 00:05:23,970 così classe e oggetto sono due termini che sono per lo più sinonimo con l'altro, 94 00:05:23,970 --> 00:05:28,270 così io li usa in modo intercambiabile tutto il seminario. 95 00:05:28,270 --> 00:05:34,090 >> Ma, vedrete che abbiamo metodi Objective-C, piuttosto che funzioni. 96 00:05:34,090 --> 00:05:36,390 E metodi appartengono agli oggetti. 97 00:05:36,390 --> 00:05:38,950 Così come, magari prendere per esempio, il nodo - 98 00:05:38,950 --> 00:05:40,250 il nostro tipo [incomprensibile] 99 00:05:40,250 --> 00:05:44,390 nodo da pset 6 o 5 - 100 00:05:44,390 --> 00:05:49,590 abbiamo la parola, la proprietà, o il puntatore nodo successivo. 101 00:05:49,590 --> 00:05:53,880 I metodi sono semplicemente funzioni all'interno di una sorta di struttura. 102 00:05:53,880 --> 00:05:57,510 >> Quindi, in questo caso, la struttura sarebbe l'oggetto, e quindi il metodo è 103 00:05:57,510 --> 00:05:59,260 qualcosa che appartiene a un oggetto. 104 00:05:59,260 --> 00:06:02,650 Ed è così che si dovrebbe dichiarare, sorta di, un metodo. 105 00:06:02,650 --> 00:06:07,990 Si potrebbe cominciare con, ancora una volta, il ritorno tipo - così, ho cercato di colore 106 00:06:07,990 --> 00:06:12,990 codificare le parole chiave qui in modo che voi ragazzi può vedere l', almeno, la formattazione 107 00:06:12,990 --> 00:06:17,650 somiglianze tra funzione dichiarazioni e dichiarazioni dei metodi. 108 00:06:17,650 --> 00:06:21,990 Quindi, si inizia con, sai, un ritorno tipo - in questo caso, si tratta di un array, o 109 00:06:21,990 --> 00:06:23,910 un puntatore NSArray - 110 00:06:23,910 --> 00:06:26,710 e poi hai questo metodo. 111 00:06:26,710 --> 00:06:30,900 E poi, ciò che è interessante qui è che invece di avere parentesi, abbiamo 112 00:06:30,900 --> 00:06:32,900 avere questi due punti. 113 00:06:32,900 --> 00:06:38,450 E poi, davanti ai nostri argomenti, abbiamo mettere, ancora una volta, tra parentesi il tipo di 114 00:06:38,450 --> 00:06:39,370 del nostro ragionamento. 115 00:06:39,370 --> 00:06:43,160 >> Così, adesso sto cercando di fare il confronto tra, sai, n e 116 00:06:43,160 --> 00:06:45,450 numero, perché sono entrambi interi come. 117 00:06:45,450 --> 00:06:49,580 E poi, l'altra è un tipo NSUInteger. 118 00:06:49,580 --> 00:06:56,390 E poi, con Objective-C, quando si vogliono avere più argomenti 119 00:06:56,390 --> 00:07:00,030 la vostra clausola metodo, è, una sorta di, separarli fuori un po 'come questo - 120 00:07:00,030 --> 00:07:03,790 Io non sono molto sicuro come descriverlo, ma questo è un buon esempio di come si 121 00:07:03,790 --> 00:07:06,530 può avere più argomenti in là. 122 00:07:06,530 --> 00:07:10,360 >> Si potrebbe, naturalmente, proprio tutto ignorare il colon andArray NSArray 123 00:07:10,360 --> 00:07:13,240 matrice se si voleva solo un metodo che prende in un argomento. 124 00:07:13,240 --> 00:07:13,677 Sì, domanda. 125 00:07:13,677 --> 00:07:18,701 >> AUDIENCE: sono entrambi NSUInteger e NSArray argomenti che possono essere adottate in 126 00:07:18,701 --> 00:07:21,530 all'interno del NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: sì. 128 00:07:22,060 --> 00:07:23,400 Quindi, lasciatemi spiegare. 129 00:07:23,400 --> 00:07:23,790 Quindi, sì. 130 00:07:23,790 --> 00:07:30,260 Quindi, la domanda era sono NSUInteger e NSArray * tipi di argomenti, 131 00:07:30,260 --> 00:07:31,570 e questo è corretto. 132 00:07:31,570 --> 00:07:35,700 Quindi, si vuole sempre di specificare quali il tipo di argomento è. 133 00:07:35,700 --> 00:07:41,570 E qui, sto cercando di presentarvi ad alcune delle sintassi e vocabolario di 134 00:07:41,570 --> 00:07:45,910 Objective-C, quindi quelli sono tipi effettivi che avrete a che fare con. 135 00:07:45,910 --> 00:07:48,970 >> E come noterete, array non sono più, una sorta di, 136 00:07:48,970 --> 00:07:50,780 semplici cose staffa. 137 00:07:50,780 --> 00:07:52,060 Sono oggetti. 138 00:07:52,060 --> 00:07:56,700 Anche se, se andiamo alla prossima diapositiva, possiamo vedere che possiamo 139 00:07:56,700 --> 00:08:02,510 hard-code un NSArray in Objective-C con semplicemente un simbolo a fronte di 140 00:08:02,510 --> 00:08:04,190 le staffe. 141 00:08:04,190 --> 00:08:08,650 Io non sono, in realtà, del tutto sicuro se I sintatticamente hard-coded un array 142 00:08:08,650 --> 00:08:16,020 correttamente per la versione C, ma che è dovrebbe essere in una matrice C. 143 00:08:16,020 --> 00:08:19,760 >> Quindi, questo è come si dovrebbe, si sa, forse utilizzare le funzioni o le 144 00:08:19,760 --> 00:08:21,990 metodi che abbiamo creato in precedenza. 145 00:08:21,990 --> 00:08:22,250 Giusto? 146 00:08:22,250 --> 00:08:25,340 Quindi, questo è dove noi dichiariamo la nostra funzione e il nostro metodo. 147 00:08:25,340 --> 00:08:28,020 Ed ora vogliamo usarli in nostro programma, e questo è 148 00:08:28,020 --> 00:08:29,450 come vorremmo farlo. 149 00:08:29,450 --> 00:08:32,400 Quindi, in C, si avrebbe, sai, forse, un bool b, e si imposta 150 00:08:32,400 --> 00:08:36,549 eguagliare la funzione, e poi si passa negli argomenti. 151 00:08:36,549 --> 00:08:39,190 >> In Objective-C, è piuttosto la stessa cosa. 152 00:08:39,190 --> 00:08:43,370 Hai NSArray * my_array, ed è andando ad eguagliare - ora, l'unico 153 00:08:43,370 --> 00:08:47,460 differenza qui è questo oggetto cosa, che ho evidenziato in giallo, e 154 00:08:47,460 --> 00:08:51,180 come si può vedere, in C, non c'è nessun altra parola giallo. 155 00:08:51,180 --> 00:08:54,170 Ed è perché i metodi appartengono con un certo oggetto. 156 00:08:54,170 --> 00:08:59,800 Ecco perché ho bisogno di avere un oggetto che, in una sorta di, chiama questo metodo su 157 00:08:59,800 --> 00:09:04,360 il numero zero, e poi la NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Hai domande su questo? 159 00:09:05,350 --> 00:09:12,190 >> Vedremo questi concetti in azione abbastanza presto quando andiamo in una demo. 160 00:09:12,190 --> 00:09:13,400 OK. 161 00:09:13,400 --> 00:09:17,170 Ora, voglio parlare un po 'breve su Xcode 5, che è la 162 00:09:17,170 --> 00:09:21,160 ambiente di sviluppo integrato che lavorerete con. 163 00:09:21,160 --> 00:09:26,160 So che molti di voi, o alcuni di voi, non hanno Mac, che è un problema 164 00:09:26,160 --> 00:09:30,490 perché Xcode non è disponibile per Windows e PC. 165 00:09:30,490 --> 00:09:32,785 Non chiedetemi perché, ma probabilmente - 166 00:09:32,785 --> 00:09:33,730 sì, aziendale. 167 00:09:33,730 --> 00:09:35,290 Qualunque cosa. 168 00:09:35,290 --> 00:09:39,360 Ma comunque, così, mi scuso se alcuni di c'è bisogno di scaricare una sorta di 169 00:09:39,360 --> 00:09:43,000 macchina virtuale per Mac Per eseguire Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Ma è un piuttosto carino software da utilizzare. 171 00:09:46,460 --> 00:09:51,280 >> E così, prima di tuffarci in qualsiasi tipo di demo, voglio solo visualizzare 172 00:09:51,280 --> 00:09:55,700 foto di ciò che Xcode assomiglia in finestra, e poi parlare anche di 173 00:09:55,700 --> 00:09:57,670 ciò intero questo spazio è. 174 00:09:57,670 --> 00:10:01,600 Quindi, è un po 'come imparare a utilizzare Microsoft Word, salvo che si desidera 175 00:10:01,600 --> 00:10:04,675 familiarizzare con tutte le cose diverse che 176 00:10:04,675 --> 00:10:06,250 stanno succedendo qui. 177 00:10:06,250 --> 00:10:11,160 >> Quindi, prima, voglio puntare alla barra degli strumenti in alto. 178 00:10:11,160 --> 00:10:14,450 Vedrai che, in alto, avrete il nome del file - 179 00:10:14,450 --> 00:10:18,100 o, in realtà, il nome del progetto e poi il nome del file. 180 00:10:18,100 --> 00:10:20,940 Prendere nota del gioco e i pulsanti di arresto. 181 00:10:20,940 --> 00:10:24,210 Questi sono quelli che sarete in usando per eseguire l'applicazione sul 182 00:10:24,210 --> 00:10:25,600 simulatore - 183 00:10:25,600 --> 00:10:26,550 il simulatore iOS. 184 00:10:26,550 --> 00:10:29,940 Questo avviene automaticamente con Xcode 5, in modo da non dovete preoccuparvi di 185 00:10:29,940 --> 00:10:32,070 il download di una sorta di simulatore. 186 00:10:32,070 --> 00:10:34,700 Basta premere play e poi corre tua app. 187 00:10:34,700 --> 00:10:39,230 E si può giocare con voi, e vedrete come funziona tardi. 188 00:10:39,230 --> 00:10:42,690 >> E poi, al centro, naturalmente, è in cui tutto il codice bello è 189 00:10:42,690 --> 00:10:44,240 per andare. 190 00:10:44,240 --> 00:10:48,340 E poi, sul lato sinistro, ti avere questo, una sorta di, cartella - 191 00:10:48,340 --> 00:10:50,340 navigazione - 192 00:10:50,340 --> 00:10:53,970 e poi, si vedrà anche che, insieme con l'icona della cartella, ci sono un 193 00:10:53,970 --> 00:10:57,680 mucchio di altre icone lì che sarà utile in seguito. 194 00:10:57,680 --> 00:11:04,710 >> E poi, sul lato destro è un'utilità zona dove si può lavorare con 195 00:11:04,710 --> 00:11:09,620 alcuni degli oggetti e specificare, si sapere, che cosa il colore deve essere, cosa 196 00:11:09,620 --> 00:11:12,040 il carattere del testo dovrebbe essere, et cetera. 197 00:11:12,040 --> 00:11:15,890 Anche se, tutto quello che fate nella zona di servizio, è possibile 198 00:11:15,890 --> 00:11:17,480 fare in codice pure. 199 00:11:17,480 --> 00:11:21,630 E così, andrò attraverso due esempi di utilizzo, semplicemente, nessun codice a 200 00:11:21,630 --> 00:11:23,730 tutti - o codice molto minimale - 201 00:11:23,730 --> 00:11:28,290 versi tutto il codice, così che voi ragazzi sa cosa si può e non può fare a 202 00:11:28,290 --> 00:11:29,260 Xcode e Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> E poi, infine, giù in fondo, si ha la zona di debug. 204 00:11:32,770 --> 00:11:37,270 Quindi, non è più necessario eseguire GDB, et cetera, sui programmi. 205 00:11:37,270 --> 00:11:39,180 Lo fa automaticamente per voi. 206 00:11:39,180 --> 00:11:42,880 E si può anche stampare roba da questa zona. 207 00:11:42,880 --> 00:11:46,790 Quindi, in realtà, più tardi, andremo attraverso mario.c, se voi ragazzi ricordano ancora 208 00:11:46,790 --> 00:11:49,000 che, in Xcode. 209 00:11:49,000 --> 00:11:50,360 Così che dovrebbe essere divertente. 210 00:11:50,360 --> 00:11:55,870 >> E poi, giusto per riportarlo a Objective-C, voglio evidenziare quello che 211 00:11:55,870 --> 00:11:57,440 si può fare con se dichiarazioni. 212 00:11:57,440 --> 00:12:03,160 Quindi, sai, perché Objective-C è un superset del C, tutto quello che fai è, 213 00:12:03,160 --> 00:12:06,890 letteralmente, lo stesso C. Basta lievi differenze. 214 00:12:06,890 --> 00:12:10,810 Quindi, si noterà la forma di un se affermazione è sempre la stessa - avete 215 00:12:10,810 --> 00:12:14,280 se, e poi ci sono le parentesi con una condizione all'interno di, e poi 216 00:12:14,280 --> 00:12:17,150 le parentesi graffe per quello che voglia di fare all'interno di lì. 217 00:12:17,150 --> 00:12:21,680 >> Tuttavia, ho voluto mettere questa diapositiva in su qui, semplicemente per illustrare che, 218 00:12:21,680 --> 00:12:25,680 perché abbiamo a che fare con gli oggetti ora, dovremo usare queste cose 219 00:12:25,680 --> 00:12:31,240 chiamato così, è pari a stringa, che è, casualmente, un metodo di un 220 00:12:31,240 --> 00:12:33,710 stringa o un oggetto NSString. 221 00:12:33,710 --> 00:12:38,600 Quindi, parola, in questo caso, è un NSString oggetto, ed ha un metodo chiamato è 222 00:12:38,600 --> 00:12:44,150 pari a stringa, e poi stiamo passando in una stringa hard-coded vedere 223 00:12:44,150 --> 00:12:48,110 se quelli sono uguali l'uno all'altro. 224 00:12:48,110 --> 00:12:51,580 >> Tutte le domande finora? 225 00:12:51,580 --> 00:12:52,440 OK. 226 00:12:52,440 --> 00:12:56,190 E, voglio andare oltre una per anche la dichiarazione. 227 00:12:56,190 --> 00:13:01,420 >> Così, per esempio, se volessimo ciclo sulla lunghezza di una stringa in C, questo 228 00:13:01,420 --> 00:13:03,710 dovrebbe essere familiare a voi. 229 00:13:03,710 --> 00:13:07,840 E, in Objective-C, che voglio evidenziare questo, una sorta di, 230 00:13:07,840 --> 00:13:09,235 metodo chiamato conteggio. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Beh, in realtà, mi permetta basta prendere quella posteriore. 233 00:13:15,550 --> 00:13:17,200 Count è un metodo di matrice. 234 00:13:17,200 --> 00:13:21,070 Tuttavia, è più precisamente un proprietà di matrice, è per questo che 235 00:13:21,070 --> 00:13:22,380 può utilizzare la notazione del punto. 236 00:13:22,380 --> 00:13:25,870 Ma io non voglio entrare troppo questa roba concettuale, voglio solo 237 00:13:25,870 --> 00:13:30,140 per mostrare come le cose sarebbero come in Objective-C rispetto a C. 238 00:13:30,140 --> 00:13:35,400 >> E poi, voglio sottolineare che anche se ho usato NSUInteger 239 00:13:35,400 --> 00:13:39,860 di fronte a tutti i miei i di in Objective-C, è anche possibile utilizzare int, int perché è 240 00:13:39,860 --> 00:13:42,290 totalmente valide in Objective-C, anche. 241 00:13:42,290 --> 00:13:42,475 Sì? 242 00:13:42,475 --> 00:13:44,350 >> PUBBLICO: E 'solo stilistica, o è - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Già. 244 00:13:44,760 --> 00:13:46,060 Quindi, come si vedrà - 245 00:13:46,060 --> 00:13:49,390 così, la domanda era che solo una questione stilistica. 246 00:13:49,390 --> 00:13:54,820 Come vedrete, ho una, sorta di, stella asterisco cosa giù in fondo, e 247 00:13:54,820 --> 00:13:59,870 che link rimanda a uno Stack Overflow formare, dove qualcuno spiega 248 00:13:59,870 --> 00:14:03,640 la differenza tra un int in NSInteger e NSUInteger. 249 00:14:03,640 --> 00:14:05,540 E così, si può leggere più tardi. 250 00:14:05,540 --> 00:14:07,640 Queste diapositive saranno, naturalmente, a vostra disposizione. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Vediamo. 253 00:14:11,280 --> 00:14:12,150 OK, impressionante. 254 00:14:12,150 --> 00:14:15,410 Quindi, questo è anche incluso nella diapositiva perché ho pensato che questo era un ottimo 255 00:14:15,410 --> 00:14:19,370 sito web che si presenta alla sintassi Objective-C. 256 00:14:19,370 --> 00:14:24,410 Quindi, in realtà, perché non ci muoviamo a Chrome e controllare questo sito? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Giusto. 259 00:14:31,300 --> 00:14:36,670 Quindi, quello che voglio mostrarvi ragazzi qui è questa immagine. 260 00:14:36,670 --> 00:14:41,630 Quindi, questo è, più o meno, sarà quello si sta andando a vedere all'interno di qualsiasi 261 00:14:41,630 --> 00:14:42,890 File di Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 In realtà, perché non ci basta prendere un momento, una sorta di, prendere questo dentro 264 00:14:51,430 --> 00:14:53,470 >> Quindi, questo libro - 265 00:14:53,470 --> 00:14:55,880 che è l'oggetto che abbiamo a che fare. 266 00:14:55,880 --> 00:14:59,680 E allora, è, ovviamente, sarà ereditato da qualche altro oggetto, ma 267 00:14:59,680 --> 00:15:01,810 non dovete preoccuparvi di questo. 268 00:15:01,810 --> 00:15:04,430 E poi, forse, ha alcune variabili membro. 269 00:15:04,430 --> 00:15:09,160 >> La cosa importante che voglio mostrarvi sono i metodi di istanza, qui. 270 00:15:09,160 --> 00:15:12,670 Quindi, metodi di istanza sono indicati da questo segno meno. 271 00:15:12,670 --> 00:15:15,550 E poi, come si noterà, siamo già iniziando a vedere il paradigma 272 00:15:15,550 --> 00:15:17,670 per dichiarazione di metodo, giusto? 273 00:15:17,670 --> 00:15:22,670 Il tipo di ritorno, il nome del metodo, e poi il tipo di argomento, e 274 00:15:22,670 --> 00:15:24,660 quindi il nome dell'argomento. 275 00:15:24,660 --> 00:15:29,090 E questo segno meno significa che si tratta di un metodo di istanza, il che significa che 276 00:15:29,090 --> 00:15:32,270 questi metodi sono disponibili solo per oggetti che sono stati istanziati. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Per contrasto, che metodi con un plus segno di fronte a loro sono classe 279 00:15:39,100 --> 00:15:43,640 metodi, il che significa che è possibile chiamare questi metodi, anche se non si dispone di 280 00:15:43,640 --> 00:15:45,970 un oggetto ancora creata. 281 00:15:45,970 --> 00:15:51,600 Così, per un chiaro esempio, NSString è una classe. 282 00:15:51,600 --> 00:15:55,850 E si può chiamare, per esempio, metodi della classe di NSString - 283 00:15:55,850 --> 00:15:58,660 l'attuale, come, parola NSString. 284 00:15:58,660 --> 00:16:02,050 >> Tuttavia, al fine di utilizzare questi metodi, è in realtà 285 00:16:02,050 --> 00:16:03,460 necessario creare una stringa. 286 00:16:03,460 --> 00:16:08,980 Ad esempio, stella stringa NSString uguale a virgoletta, ciao mondo. 287 00:16:08,980 --> 00:16:10,910 E poi, è possibile utilizzare questi metodi - 288 00:16:10,910 --> 00:16:11,990 metodi di istanza - 289 00:16:11,990 --> 00:16:14,790 su tale stringa mondo ciao. 290 00:16:14,790 --> 00:16:17,825 Quindi, questa è la differenza tra metodi di istanza e metodi di classe. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> E, abbiamo appena coperto questa parte. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Le proprietà sono un'altra cosa che sono all'interno di oggetti, sostanzialmente. 295 00:16:33,750 --> 00:16:37,530 E li dichiara con la parola chiave at struttura. 296 00:16:37,530 --> 00:16:39,940 Avete queste opzioni, qui, che spiegherò più avanti, quando 297 00:16:39,940 --> 00:16:43,110 andiamo in una demo. 298 00:16:43,110 --> 00:16:43,660 Sì? 299 00:16:43,660 --> 00:16:43,950 Ciao. 300 00:16:43,950 --> 00:16:45,440 >> AUDIENCE: Potrebbe zoom, per favore? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: Oh, sì. 302 00:16:46,130 --> 00:16:46,560 Scusi. 303 00:16:46,560 --> 00:16:49,140 >> AUDIENCE: Grazie. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Questo dovrebbe essere molto meglio. 305 00:16:50,005 --> 00:16:51,240 >> AUDIENCE: Già. 306 00:16:51,240 --> 00:16:53,940 Grazie. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Sì, vi prego di ricordare se Mi dimentico di ingrandire o rimpicciolire. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Quindi, questo è tutto quello che volevo visualizzare per - 310 00:17:03,570 --> 00:17:05,970 whoa, che è molto - 311 00:17:05,970 --> 00:17:06,790 per questo sito. 312 00:17:06,790 --> 00:17:12,210 Allora, torniamo alle nostre diapositive. 313 00:17:12,210 --> 00:17:17,819 >> In realtà, ora facciamo un attimo per tuffarsi in una demo. 314 00:17:17,819 --> 00:17:25,490 Così, inizieremo con un nuovo progetto Xcode. 315 00:17:25,490 --> 00:17:33,040 Quindi, se ti apre Xcode su tutti le macchine, si dovrebbe prendere qualche 316 00:17:33,040 --> 00:17:36,720 pagina in cui si dice, come, sia aperto di un progetto esistente o un nuovo 317 00:17:36,720 --> 00:17:39,230 progetto, e si dovrebbe fare clic su un nuovo progetto. 318 00:17:39,230 --> 00:17:41,477 E poi, dovrebbe richiedere a questa schermata. 319 00:17:41,477 --> 00:17:41,593 Sì? 320 00:17:41,593 --> 00:17:44,279 >> AUDIENCE: Se non abbiamo un Mac, abbiamo solo tipo di raffreddiamo? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: Or guardare con qualcuno, sì. 322 00:17:46,870 --> 00:17:47,740 Già. 323 00:17:47,740 --> 00:17:50,660 È possibile rilassarsi, troppo. 324 00:17:50,660 --> 00:17:51,570 OK. 325 00:17:51,570 --> 00:17:55,410 >> Allora, che cosa stiamo andando a fare prima, ora, è, in realtà, stiamo andando a fare un 326 00:17:55,410 --> 00:17:56,600 domanda unica vista. 327 00:17:56,600 --> 00:18:01,340 Quindi, se noterete, ciò che è grande su Xcode e il supporto Apple per 328 00:18:01,340 --> 00:18:05,690 Gli sviluppatori è che hai un sacco di modelli per lavorare con già. 329 00:18:05,690 --> 00:18:09,210 Si potrebbe, per esempio, fare un applicazione master-detail. 330 00:18:09,210 --> 00:18:10,920 Si può fare un gioco - 331 00:18:10,920 --> 00:18:13,860 e in realtà, io non entrerò nei giochi, perché i giochi sono una storia diversa 332 00:18:13,860 --> 00:18:15,320 per lo sviluppo iOS. 333 00:18:15,320 --> 00:18:18,930 E stanno sorta di separazione, così io non entrerò in quello. 334 00:18:18,930 --> 00:18:22,580 >> Allora, avete basato page applicazioni. 335 00:18:22,580 --> 00:18:24,010 Si dispone di un'applicazione scheda - 336 00:18:24,010 --> 00:18:29,350 così come, per esempio, Bank of America Probabilmente ha, come un app schede. 337 00:18:29,350 --> 00:18:32,140 Si tratta di quelli in cui avete i pulsanti nella parte inferiore. 338 00:18:32,140 --> 00:18:34,750 E poi, avete un kit di gioco Sprite. 339 00:18:34,750 --> 00:18:38,670 >> Oppure si può lavorare da zero, che è quello che faremo in seguito. 340 00:18:38,670 --> 00:18:42,470 Ma andiamo, in primo luogo, iniziare con una singola applicazione vista. 341 00:18:42,470 --> 00:18:48,590 Poi, sarà chiedere il nome del prodotto, e possiamo solo fare test. 342 00:18:48,590 --> 00:18:50,190 Nome dell'organizzazione - 343 00:18:50,190 --> 00:18:54,140 così, il nome dell'organizzazione, azienda identifier - 344 00:18:54,140 --> 00:18:58,100 quelli sono importanti se si sta andando per mettere la vostra applicazione su App Store. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Oltre a questo, il codice sta per eseguire assolutamente bene senza questo. 347 00:19:05,116 --> 00:19:09,940 >> Ciò sta andando essere importante se si vuole - così, di per sé, come, mettere la vostra app 348 00:19:09,940 --> 00:19:14,080 sul vostro telefono o qualcosa del genere, e prova fuori, si sa, nella vita reale - 349 00:19:14,080 --> 00:19:15,360 questo sarà importante. 350 00:19:15,360 --> 00:19:20,110 Questo tende ad essere di solito associato una sorta di account sviluppatore 351 00:19:20,110 --> 00:19:20,970 con Apple. 352 00:19:20,970 --> 00:19:24,740 >> E così, lo so, probabilmente, molti di voi non avrà alcun account sviluppatore. 353 00:19:24,740 --> 00:19:26,460 So che l'università ha uno. 354 00:19:26,460 --> 00:19:27,630 Penso CS ha uno. 355 00:19:27,630 --> 00:19:32,770 Ma, potete scrivermi e io provare per capire che per voi. 356 00:19:32,770 --> 00:19:38,210 Ma in questo momento, ho appena messo in alcune cose segnaposto qui. 357 00:19:38,210 --> 00:19:41,250 >> E si può, ovviamente, qui, scegliere se si vuole che sia solo in 358 00:19:41,250 --> 00:19:44,410 iPhone, in iPad, o entrambi - 359 00:19:44,410 --> 00:19:46,630 applicazione universale. 360 00:19:46,630 --> 00:19:56,170 Quindi, per ora, facciamolo universale, basta vedere entrambi i lati della piattaforma. 361 00:19:56,170 --> 00:19:57,120 >> Vediamo. 362 00:19:57,120 --> 00:20:01,510 Così, in questo momento, sto andando a salvare in una sorta di cartella. 363 00:20:01,510 --> 00:20:04,500 Non importa dove - si può sempre spostare in un secondo momento. 364 00:20:04,500 --> 00:20:09,380 E, ora, siamo portati al nostro progetto Xcode. 365 00:20:09,380 --> 00:20:12,890 Io non mi preoccuperei di tutto questo. 366 00:20:12,890 --> 00:20:17,510 Vorrei suggerire che non tocca nessuna delle questo, se non sai esattamente cosa 367 00:20:17,510 --> 00:20:18,260 si sta facendo. 368 00:20:18,260 --> 00:20:21,750 Quindi, tutto questo, basta ignorare per la maggior parte. 369 00:20:21,750 --> 00:20:26,940 Non avrete bisogno di toccarlo, e se fare sbagli alcune cose qui, 370 00:20:26,940 --> 00:20:28,600 diventa un po 'difficile. 371 00:20:28,600 --> 00:20:32,480 >> Allora, perché non guardiamo i file sul 372 00:20:32,480 --> 00:20:34,700 lato sinistro nel nostro navigatore. 373 00:20:34,700 --> 00:20:37,060 Qui, abbiamo AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Abbiamo AppDelegate.m Quindi, come avrete avviso, abbiamo intestazione dei file, che 375 00:20:43,430 --> 00:20:45,720 concluderà nel punto h, e abbiamo attuazione - 376 00:20:45,720 --> 00:20:46,970 in realtà, mi permetta lo zoom dentro 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 OK. 379 00:20:57,060 --> 00:20:59,940 Lasciatemi lo zoom dentro 380 00:20:59,940 --> 00:21:05,810 >> A destra, in modo da avere i file di intestazione e si dispone di file di implementazione. 381 00:21:05,810 --> 00:21:07,060 In realtà - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 OK. 384 00:21:09,240 --> 00:21:11,800 Questo è un po 'strano, ma abbiate pazienza con me. 385 00:21:11,800 --> 00:21:16,140 Poi, perché abbiamo scelto una singola vista applicazione, stiamo per essere 386 00:21:16,140 --> 00:21:17,340 lavoro con storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Quindi, storyboard è qualcosa che Apple ha messo a punto per aiutare veramente 388 00:21:22,140 --> 00:21:26,550 Gli sviluppatori in rapida prototipazione loro applicazioni. 389 00:21:26,550 --> 00:21:29,410 Quindi, questo è dove è possibile creare un app senza scrivere una 390 00:21:29,410 --> 00:21:31,710 singola riga di codice. 391 00:21:31,710 --> 00:21:35,390 Tuttavia, nella nostra applicazione vista singola, noi, naturalmente, abbiamo una 392 00:21:35,390 --> 00:21:41,270 file per la nostra vista, che è un controller della vista. 393 00:21:41,270 --> 00:21:45,150 Quindi, abbiamo l'intestazione e il file di implementazione, qui. 394 00:21:45,150 --> 00:21:52,350 >> E, ho intenzione di diminuire ora perché abbiamo bisogno di lavorare nello storyboard. 395 00:21:52,350 --> 00:21:55,190 Quindi, ecco la nostra vista. 396 00:21:55,190 --> 00:22:00,120 Se noi, semplicemente, eseguire l'applicazione in questo momento, non c'è molto eccitante in corso. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Quindi, vedrete questa schermata bianca. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> E, nella nostra zona utilities, possiamo aggiungere un mucchio di cose diverse ad esso. 401 00:22:14,010 --> 00:22:19,290 Così, quando hai a che fare con schermi in iOS, vista controllori sono il 402 00:22:19,290 --> 00:22:23,150 oggetti che incapsulano, sorta di, le vostre opinioni. 403 00:22:23,150 --> 00:22:26,980 Quindi, un controller della vista sempre ha una proprietà chiamata vista. 404 00:22:26,980 --> 00:22:29,610 E questo punto di vista, in genere, contiene, si sa, quello che si 405 00:22:29,610 --> 00:22:30,810 voglio vedere su uno schermo. 406 00:22:30,810 --> 00:22:39,210 >> Quindi, bene, facciamo solo cominciamo mettendo, forse, forse un etichetta. 407 00:22:39,210 --> 00:22:41,450 Quindi, cerchiamo di mettere un'etichetta in là - 408 00:22:41,450 --> 00:22:44,080 bastone nel mezzo. 409 00:22:44,080 --> 00:22:49,560 Così, ora che ho cliccato su etichetta, I può andare nella finestra di ispezione Proprietà 410 00:22:49,560 --> 00:22:51,510 e cominciare a cambiare il suo valore. 411 00:22:51,510 --> 00:22:55,040 Chiamiamolo CS50 Colours. 412 00:22:55,040 --> 00:22:58,220 >> E, posso anche cambiare il tipo di carattere. 413 00:22:58,220 --> 00:23:02,630 Così, invece di fare sistema, che è il default, si può fare uno personalizzato. 414 00:23:02,630 --> 00:23:03,770 Possiamo cambiare - 415 00:23:03,770 --> 00:23:06,453 si sa, UltraLight, rendono 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 E poi, possiamo fare il nostro box più grande. 418 00:23:11,370 --> 00:23:14,410 >> AUDIENCE: Pensi che puoi ingrandire in appena un po 'di più, forse? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: Sì? 420 00:23:14,810 --> 00:23:16,196 OK. 421 00:23:16,196 --> 00:23:17,450 >> AUDIENCE: Basta toccarlo? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Vediamo. 423 00:23:19,020 --> 00:23:20,382 Fa questo lavoro? 424 00:23:20,382 --> 00:23:22,270 >> AUDIENCE: Basta passare la Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Certo. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 OK. 428 00:23:25,940 --> 00:23:26,275 Impressionante. 429 00:23:26,275 --> 00:23:27,072 >> PUBBLICO: L'etichetta sotto? 430 00:23:27,072 --> 00:23:28,920 L'etichetta? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: Che cos'è? 432 00:23:29,480 --> 00:23:32,050 >> AUDIENCE: Cosa discesa era l'etichetta sotto? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Allora, la domanda era, che cosa discesa era l'etichetta sotto? 434 00:23:35,170 --> 00:23:37,260 Si deve, semplicemente, essere sotto qui. 435 00:23:37,260 --> 00:23:39,330 Credo che sia una cosa cubo. 436 00:23:39,330 --> 00:23:40,910 Ma di solito, questo è il default - 437 00:23:40,910 --> 00:23:43,250 Sto solo andando qui finché non trovo una etichetta. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Già. 440 00:23:47,730 --> 00:23:48,950 >> Così ora, abbiamo la nostra etichetta. 441 00:23:48,950 --> 00:23:51,040 Diciamo centrarlo. 442 00:23:51,040 --> 00:23:56,410 E Xcode ci dà le linee guida per il centraggio oggetti. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Così, ora corriamo di nuovo il nostro codice. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Ci andiamo. 447 00:24:08,800 --> 00:24:10,310 Quindi, abbiamo CS50 Colours. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 E ora, mettiamo un pulsante in là, giusto? 450 00:24:15,420 --> 00:24:17,480 Perché vogliamo fare questo interattivo. 451 00:24:17,480 --> 00:24:19,410 Quindi, cerchiamo di mettere un pulsante qui. 452 00:24:19,410 --> 00:24:39,020 E chiameremo questo pulsante "tap qui per continuare. "Ci centrare, anche 453 00:24:39,020 --> 00:24:39,990 In realtà, è già centrato. 454 00:24:39,990 --> 00:24:40,630 Già. 455 00:24:40,630 --> 00:24:43,130 >> Così, ora abbiamo un pulsante. 456 00:24:43,130 --> 00:24:53,000 E se corriamo di nuovo, stiamo andando di avere qui un bottone bel po '. 457 00:24:53,000 --> 00:24:56,520 E posso clic su di esso, ma non fa niente, perché non abbiamo fatto 458 00:24:56,520 --> 00:24:58,500 nulla con il tasto ancora. 459 00:24:58,500 --> 00:25:01,740 >> Quindi, creiamo un altro punto di vista, giusto? 460 00:25:01,740 --> 00:25:04,160 Quindi, diciamo che voglio toccare quel pulsante e voglio 461 00:25:04,160 --> 00:25:05,730 passare a un'altra pagina - 462 00:25:05,730 --> 00:25:06,820 un'altra vista. 463 00:25:06,820 --> 00:25:14,440 Quello che ho intenzione di fare è, posso creare un controller di vista, giusto? 464 00:25:14,440 --> 00:25:19,690 Ora io clicco sul mio pulsante, quindi, la cosa importante è che ho intenzione di 465 00:25:19,690 --> 00:25:20,910 fare clic su - o - 466 00:25:20,910 --> 00:25:23,660 sì, regolazione premere sulla mia tastiera. 467 00:25:23,660 --> 00:25:24,880 Controllo. 468 00:25:24,880 --> 00:25:27,005 Fare clic sul pulsante, quindi trascinare. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Quindi, ricordatevi di tenere premuto il tasto di controllo. 471 00:25:33,550 --> 00:25:35,160 Facciamo di nuovo. 472 00:25:35,160 --> 00:25:40,930 Quindi, tenere il controllo, fare clic e trascinare a ciò che si vuole fare. 473 00:25:40,930 --> 00:25:41,520 OK. 474 00:25:41,520 --> 00:25:43,610 >> E ora, ho diverse opzioni qui. 475 00:25:43,610 --> 00:25:47,900 Mi può spingere, o posso fare un modale, o posso fare una consuetudine. 476 00:25:47,900 --> 00:25:50,900 Spingere è solo se si dispone di un controller di navigazione. 477 00:25:50,900 --> 00:25:54,270 In questo momento, la nostra prima visione controllore non è all'interno di qualsiasi 478 00:25:54,270 --> 00:25:55,610 controller di navigazione. 479 00:25:55,610 --> 00:25:59,500 Quindi, il controller di navigazione è quello che ti dà il pulsante indietro 480 00:25:59,500 --> 00:26:03,910 l'app iOS in cui si dispone, si sa, che la parte superiore, una sorta di, bar spessore - 481 00:26:03,910 --> 00:26:06,480 dove si può tornare indietro, o avanti, et cetera. 482 00:26:06,480 --> 00:26:07,740 Al momento, non ho questo. 483 00:26:07,740 --> 00:26:11,050 E così, ecco perché non posso fare una spinta. 484 00:26:11,050 --> 00:26:12,480 >> Così, ho cliccato sul pulsante accidentalmente, qui. 485 00:26:12,480 --> 00:26:16,480 E in realtà, corriamo il codice, e dovrebbe bloccarsi su di me. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Solo se premo il tasto però, quindi - 488 00:26:22,960 --> 00:26:23,420 destra. 489 00:26:23,420 --> 00:26:26,480 Quindi, questo è male. 490 00:26:26,480 --> 00:26:31,330 >> E, come potete vedere, qui, abbiamo avere il messaggio di errore. 491 00:26:31,330 --> 00:26:35,460 Quindi, "segues push possono essere utilizzati solo quando source controller è gestito da un 492 00:26:35,460 --> 00:26:40,700 istanza di controller di navigazione dell'interfaccia utente. " Quindi, perché non era all'interno di un 493 00:26:40,700 --> 00:26:44,030 controller di navigazione, Non ho potuto farlo. 494 00:26:44,030 --> 00:26:48,782 >> Così, adesso, sto tornando al cartella, risalente al storyboard. 495 00:26:48,782 --> 00:26:51,680 >> AUDIENCE: Qual è la navigazione controllore, di nuovo? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Allora, adesso ti faccio vedere. 497 00:26:55,260 --> 00:26:56,200 Vediamo. 498 00:26:56,200 --> 00:27:00,510 Così, vado a cliccare su questo punto di vista controller, quindi ho intenzione di andare 499 00:27:00,510 --> 00:27:03,920 fino al prodotto - 500 00:27:03,920 --> 00:27:06,240 in realtà, no, mi dispiace - redattore. 501 00:27:06,240 --> 00:27:08,360 E ho intenzione di andare in - 502 00:27:08,360 --> 00:27:09,350 in realtà, ho fatto clic su di esso? 503 00:27:09,350 --> 00:27:10,070 No. 504 00:27:10,070 --> 00:27:11,080 Ci andiamo. 505 00:27:11,080 --> 00:27:16,270 Ho intenzione di andare fino in montaggio, scendo per incorporare, e poi la navigazione 506 00:27:16,270 --> 00:27:17,520 controllore. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> OK. 509 00:27:20,720 --> 00:27:27,750 E, il mio lavoro sembra davvero disordinato, quindi cerchiamo di Ripuliamolo. 510 00:27:27,750 --> 00:27:29,000 Quindi, tutto questo è storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 E in questo modo - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, stop - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Posso costruire rapidamente qualcosa come questo. 517 00:27:50,860 --> 00:27:53,020 E poi, ora posso tornare indietro, sai? 518 00:27:53,020 --> 00:27:55,730 >> Ma questo è un po 'noioso, giusto? 519 00:27:55,730 --> 00:28:03,020 Quindi, quello che voglio fare è, non voglio fare, semplicemente, una vista 520 00:28:03,020 --> 00:28:03,870 controllore. 521 00:28:03,870 --> 00:28:07,720 Diciamo che volevo realmente fare un controller della vista tabella, così posso mettere in 522 00:28:07,720 --> 00:28:12,110 alcuni colori piacevoli, nella tabella. 523 00:28:12,110 --> 00:28:16,210 >> Così, ora che ho messo nel mio vista tabella controllore, ho bisogno di collegarlo indietro 524 00:28:16,210 --> 00:28:18,560 da questo pulsante per la View Controller. 525 00:28:18,560 --> 00:28:21,780 Quindi ho bisogno di fare il mio controllo, click, drag cosa di nuovo. 526 00:28:21,780 --> 00:28:27,318 E ora posso fare spinta, perché io incorporare all'interno di un controller di navigazione. 527 00:28:27,318 --> 00:28:32,210 >> AUDIENCE: controller di navigazione solo permette di andare da un posto all'altro? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: sì. 529 00:28:33,540 --> 00:28:38,670 Quindi, più tecnicamente, è un oggetto in cui - 530 00:28:38,670 --> 00:28:43,150 così, all'interno della navigazione oggetto controller, 531 00:28:43,150 --> 00:28:44,780 tiene traccia di una matrice. 532 00:28:44,780 --> 00:28:48,300 E tale matrice contiene tutte le successive visualizzare controllori. 533 00:28:48,300 --> 00:28:51,560 Ecco perché quando si preme indietro, torna alla pagina precedente. 534 00:28:51,560 --> 00:28:55,260 Poiché il controller di navigazione oggetto, o il codice che si prende cura di 535 00:28:55,260 --> 00:28:58,890 questo oggetto, ha una matrice che mantiene tenere traccia di questi controller di vista, e 536 00:28:58,890 --> 00:29:01,870 possono poi, si sa, dq la vista controller e vi darà indietro il 537 00:29:01,870 --> 00:29:02,750 precedente. 538 00:29:02,750 --> 00:29:05,200 >> Quindi, questa è roba tecnica, ma - 539 00:29:05,200 --> 00:29:07,505 e io vi mostrerò più avanti in codice, se abbiamo tempo. 540 00:29:07,505 --> 00:29:10,270 Sto tipo di esecuzione fuori in tempo, ma - 541 00:29:10,270 --> 00:29:15,610 >> Così, con la visualizzazione della tabella, quello che possiamo fare è - 542 00:29:15,610 --> 00:29:18,440 Di solito è impostato automaticamente Dynamic Prototype - 543 00:29:18,440 --> 00:29:20,640 stiamo andando a renderlo celle statiche, altrimenti andremo a 544 00:29:20,640 --> 00:29:22,920 incorrere in alcuni problemi. 545 00:29:22,920 --> 00:29:28,470 >> E poi, diciamo che sto avere una sezione. 546 00:29:28,470 --> 00:29:31,000 Così, le sezioni è come - 547 00:29:31,000 --> 00:29:35,160 se hai mai visto l'app musica, quando avete artisti, sezioni sarebbe 548 00:29:35,160 --> 00:29:37,830 essere l'una del tramite Z's - 549 00:29:37,830 --> 00:29:38,780 le lettere - 550 00:29:38,780 --> 00:29:42,600 e poi, si sa, l'individuo righe sarebbero i nomi degli artisti. 551 00:29:42,600 --> 00:29:47,460 E così, ciò che è freddo qui, è che posso accedere a tutti gli oggetti all'interno 552 00:29:47,460 --> 00:29:50,430 del mio storyboard attraverso questo menu a discesa, troppo. 553 00:29:50,430 --> 00:29:56,600 >> Così, vado a cliccare su mia sezione, e voglio, sai, forse cinque righe. 554 00:29:56,600 --> 00:30:00,770 E poi, all'interno di ogni riga, Voglio mettere una etichetta. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 E ho intenzione di chiamare questo blu. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 E poi, voglio mettere una vista dell'interfaccia utente, è so, forse perché, come, una piccola scatola. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> In modo che posso mostrare alla gente un'anteprima del colore. 561 00:30:28,710 --> 00:30:34,150 E io tornerò alla proprietà e cambiare quel colore, oh, io non lo faccio 562 00:30:34,150 --> 00:30:35,510 sapere, questo. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> E poi, notare anche, qui, quando ho gli accessori, che possono avere un sacco 565 00:30:43,150 --> 00:30:46,160 dei vari accessori che in genere si vede. 566 00:30:46,160 --> 00:30:55,250 L'indicatore di divulgazione, al dettaglio, o segno di spunta, o semplicemente dettagli. 567 00:30:55,250 --> 00:30:59,080 Così, forse possiamo fare, come, una rivelazione indicatore, per esempio. 568 00:30:59,080 --> 00:31:03,540 >> E allora, perché non prendiamo questi, copia incollarli, e metterli in 569 00:31:03,540 --> 00:31:06,740 successiva riga della tabella. 570 00:31:06,740 --> 00:31:08,115 Quindi, possiamo chiamare questo giallo. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 E avrei potuto estendere questo. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Facciamo giallo. 575 00:31:17,290 --> 00:31:20,610 E in questo modo, possiamo copiare incolla nostro modo in giù. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Che cosa è stato? 578 00:31:25,370 --> 00:31:26,620 Viola. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Quindi, questi sono tutti i CS50 tipico colori che avete visto in classe - 581 00:31:34,740 --> 00:31:37,160 in realtà, mi dispiace - 582 00:31:37,160 --> 00:31:38,410 o sul sito web. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Speriamo che voi potete vedere quello che sto facendo qui. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 OK. 587 00:31:57,890 --> 00:31:58,490 Ultimo. 588 00:31:58,490 --> 00:32:02,040 >> AUDIENCE: Come hai aggiunto la riga inizialmente? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Allora, la domanda era, come ho aggiungo la riga inizialmente? 590 00:32:04,740 --> 00:32:07,500 Sono entrato in questa sezione tabella - o comunque posso 591 00:32:07,500 --> 00:32:09,200 selezionare la sezione della tabella - 592 00:32:09,200 --> 00:32:11,250 e poi, qui, ho aggiornato il numero di righe. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> E, lasciatemi sperare che questo funziona. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 OK. 597 00:32:31,480 --> 00:32:32,870 Vediamo se funziona. 598 00:32:32,870 --> 00:32:34,000 Oh, perfetto, fantastico. 599 00:32:34,000 --> 00:32:35,300 OK. 600 00:32:35,300 --> 00:32:40,330 Mentre stavo costruendo il mio demo, alcuni le cose non erano allineati, così, grazie per 601 00:32:40,330 --> 00:32:42,510 l'applauso. 602 00:32:42,510 --> 00:32:42,920 >> Già. 603 00:32:42,920 --> 00:32:44,770 Allora, vediamo. 604 00:32:44,770 --> 00:32:47,550 Faremo questo nove solo per fare tutto - o addirittura, facciamo solo 605 00:32:47,550 --> 00:32:51,420 trasformare tutti questi in comunicazione indicatori. 606 00:32:51,420 --> 00:32:55,790 E poi, quello che voglio mostrarvi, troppo, ero come posso prendere ciascuno di questi 607 00:32:55,790 --> 00:32:59,230 righe e farli interagire - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 No. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> Oh. 612 00:33:06,030 --> 00:33:07,230 Inoltre, voglio mostrarvi - 613 00:33:07,230 --> 00:33:13,080 qui, posso mettere il titolo del mio controller di navigazione, giusto? 614 00:33:13,080 --> 00:33:17,090 Quindi, in realtà, si noterà, non appena ho integrato il controller di vista all'interno 615 00:33:17,090 --> 00:33:22,010 del controller di navigazione, vediamo questa barra di navigazione nella parte superiore della nostra 616 00:33:22,010 --> 00:33:25,340 Rappresentazione storyboard di un controller della vista. 617 00:33:25,340 --> 00:33:29,270 E così, questo ci dà, come, un visual, sorta di, guida al nostro schermo visibile. 618 00:33:29,270 --> 00:33:34,360 Questo è, ovviamente, sta per la barra di navigazione. 619 00:33:34,360 --> 00:33:40,950 >> E quello che voglio fare in fretta, ora, viene messo in un altro - 620 00:33:40,950 --> 00:33:45,880 quindi questo controller della vista tabella che ho fatto da prendere uno di questi e trascinandolo 621 00:33:45,880 --> 00:33:49,800 qui, e questo è ciò che mi ha permesso di rapidamente, in realtà, creare una vista tabella 622 00:33:49,800 --> 00:33:50,850 controllore. 623 00:33:50,850 --> 00:33:54,100 Se abbiamo il tempo, però, ti vedo che, a livello di programmazione, è una 624 00:33:54,100 --> 00:33:57,660 po 'più difficile da creare una tabella View Controller, perché ci 625 00:33:57,660 --> 00:34:02,520 sono un paio di metodi che sono necessaria affinchè, una sorta di, scrive 626 00:34:02,520 --> 00:34:07,130 in ordine per la vista tabella controller per essere visualizzato correttamente. 627 00:34:07,130 --> 00:34:15,340 >> Tuttavia, voglio solo mostrarvi, ora, un esempio di dove, se prendo questo, 628 00:34:15,340 --> 00:34:15,920 per esempio - 629 00:34:15,920 --> 00:34:18,290 Ho messo in un altro controller della vista. 630 00:34:18,290 --> 00:34:27,320 E ora, diciamo che voglio controllare alt mio primo blu 631 00:34:27,320 --> 00:34:28,980 riga della tabella a qui. 632 00:34:28,980 --> 00:34:31,070 E voglio chiamare questo blu. 633 00:34:31,070 --> 00:34:32,570 E poi - 634 00:34:32,570 --> 00:34:34,159 vediamo. 635 00:34:34,159 --> 00:34:41,050 Sono al punto di vista ora, e posso cambiare lo sfondo blu. 636 00:34:41,050 --> 00:34:45,945 >> E così, avviso, qui, questa discesa menu fornisce anche una gerarchia di tutti 637 00:34:45,945 --> 00:34:47,040 di questi oggetti. 638 00:34:47,040 --> 00:34:50,530 Quindi, una cosa importante da notare, qui, è che tutte queste cose, qui - 639 00:34:50,530 --> 00:34:54,330 questo controller vista tabella, la tabella Vista, sezione vista tabella, vista tabella 640 00:34:54,330 --> 00:34:57,169 cell - tutte queste sono oggetti, nel codice. 641 00:34:57,169 --> 00:35:03,752 Quindi, si sa, una etichetta in questo momento è in fase di la visualizzazione del contenuto, et cetera. 642 00:35:03,752 --> 00:35:05,020 Così via e così via. 643 00:35:05,020 --> 00:35:08,765 >> Quindi, se corriamo questo codice, si dovrebbe vedere qualcosa - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 vediamo se questo - sì. 646 00:35:17,870 --> 00:35:18,670 Quindi, ci andiamo. 647 00:35:18,670 --> 00:35:22,120 Ma, se noi non lo facciamo, nessuno di queste altre cose. 648 00:35:22,120 --> 00:35:22,500 Giusto? 649 00:35:22,500 --> 00:35:23,800 Quindi solo questo funziona. 650 00:35:23,800 --> 00:35:29,100 E, per motivi di tempo, non lo farò andare in, si sa, mettendo 651 00:35:29,100 --> 00:35:29,770 le altre. 652 00:35:29,770 --> 00:35:32,020 E questa è la fine, una sorta di, storyboard - 653 00:35:32,020 --> 00:35:33,400 quello che volevo mostrare voi per storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> E, ho un esempio elaborato, in realtà, proprio qui. 656 00:35:43,490 --> 00:35:48,090 Quindi, questo è lo storyboard che ho fatto in precedenza. 657 00:35:48,090 --> 00:35:52,740 Quindi, come potete vedere, questo è stato il mio controller di navigazione. 658 00:35:52,740 --> 00:35:57,040 Poi ho avuto il mio primo controller della vista, poi ho avuto il mio controller della vista tabella, 659 00:35:57,040 --> 00:35:58,980 e poi ho avuto tutti questi - 660 00:35:58,980 --> 00:36:01,180 così in precedenza, stavo facendo qualcosa di molto diverso. 661 00:36:01,180 --> 00:36:04,450 Quindi, scusate queste cose. 662 00:36:04,450 --> 00:36:07,930 Probabilmente io pulisco più tardi prima Mando via alla produzione. 663 00:36:07,930 --> 00:36:12,800 >> Ma, se corriamo questo, vedremo che tutte le opzioni sono 664 00:36:12,800 --> 00:36:14,050 a nostra disposizione. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Tranne che non ho fatto gli sfondi quei colori. 667 00:36:21,320 --> 00:36:26,510 Così, bella semplice applicazione. 668 00:36:26,510 --> 00:36:28,340 >> Ora, proviamo ad affrontare questo livello di programmazione. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 OK. 671 00:36:32,130 --> 00:36:37,570 Così, per fare questo, stiamo solo andando ad avviare un nuovo progetto Xcode. 672 00:36:37,570 --> 00:36:41,920 Noi faremo un'applicazione vuota ora, perché non vogliamo avere la 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Quindi, sto semplicemente me stesso limitando a non utilizzare uno storyboard e un 675 00:36:46,590 --> 00:36:49,170 un'applicazione vuota non sarà dammi uno storyboard. 676 00:36:49,170 --> 00:36:52,256 Questo è solo per prevenire me stesso da barare. 677 00:36:52,256 --> 00:36:54,428 Vediamo. 678 00:36:54,428 --> 00:36:55,360 Aspetta. 679 00:36:55,360 --> 00:36:55,960 Did I - 680 00:36:55,960 --> 00:36:56,448 Sì. 681 00:36:56,448 --> 00:36:57,698 OK. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Giusto. 684 00:37:09,180 --> 00:37:16,790 Così, qui, ci ritroviamo con altro che codice. 685 00:37:16,790 --> 00:37:19,460 Quindi, mi permetta di spostare questa finestra poco più. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Giusto. 688 00:37:22,260 --> 00:37:28,160 Come potete vedere qui, gli unici file stiamo dato sono AppDelegate.h e dot 689 00:37:28,160 --> 00:37:30,500 m, e non abbiamo storyboard più. 690 00:37:30,500 --> 00:37:39,580 >> Quindi, se corriamo questo, stiamo ancora andando a arrivare alla schermata bianca, grazie a Dio. 691 00:37:39,580 --> 00:37:42,280 OK - schermo bianco, ma nient'altro. 692 00:37:42,280 --> 00:37:45,260 Ed ecco la parte importante. 693 00:37:45,260 --> 00:37:47,810 Questo è dove avviene l'azione. 694 00:37:47,810 --> 00:37:51,410 Nelle versioni precedenti, non c'è solito nessun codice qui, ma la 695 00:37:51,410 --> 00:37:55,600 storyboard prevede essenzialmente il codice per questa parte. 696 00:37:55,600 --> 00:37:57,470 Non voglio entrare nei dettagli su come. 697 00:37:57,470 --> 00:38:02,890 >> E quello che vogliamo fare ora è, vogliamo per andare in qui, e questo piccolo spazio 698 00:38:02,890 --> 00:38:05,050 inizia a creare nuovamente la nostra applicazione. 699 00:38:05,050 --> 00:38:06,092 So - 700 00:38:06,092 --> 00:38:06,318 yes? 701 00:38:06,318 --> 00:38:07,450 >> AUDIENCE: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Si ', certo. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 OK. 706 00:38:14,520 --> 00:38:17,380 Sarò scrivendo, quindi questo non dovrebbe importa troppo. 707 00:38:17,380 --> 00:38:17,940 OK. 708 00:38:17,940 --> 00:38:22,720 >> Quindi, in primo luogo, ricordiamo abbiamo voluto creare un controller di navigazione, giusto? 709 00:38:22,720 --> 00:38:27,090 E anche, come potete vedere qui, Xcode fa davvero un grande lavoro di 710 00:38:27,090 --> 00:38:28,070 auto-riempimento. 711 00:38:28,070 --> 00:38:31,650 Quindi, come si noterà, i nomi dei tutto sono molto più a lungo 712 00:38:31,650 --> 00:38:33,910 al solito, ma Xcode lo riempie in per voi. 713 00:38:33,910 --> 00:38:35,710 Quindi posso solo premere Invio. 714 00:38:35,710 --> 00:38:40,180 >> Quindi, voglio creare una navigazione dell'interfaccia utente puntatore del controller, e posso chiamare 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 Ora, cosa faccio adesso? 718 00:38:44,470 --> 00:38:49,510 Dopo questo segno uguale, ho bisogno, in primo luogo, creare all'interno della memoria. 719 00:38:49,510 --> 00:38:53,790 Così, ho intenzione di fare navigationController alloc - 720 00:38:53,790 --> 00:38:56,640 così, questo è simile a malloc, che voi ragazzi utilizzate in C - 721 00:38:56,640 --> 00:38:58,400 e poi, ho intenzione di init esso. 722 00:38:58,400 --> 00:39:03,670 >> Quindi, è molto importante che ogni oggetto che si crea, si vuole 723 00:39:03,670 --> 00:39:04,940 alloc e init esso. 724 00:39:04,940 --> 00:39:08,600 Che sta andando a creare e instantialize all'interno della memoria, e 725 00:39:08,600 --> 00:39:10,480 ora è possibile utilizzarlo. 726 00:39:10,480 --> 00:39:10,780 Va bene? 727 00:39:10,780 --> 00:39:14,360 Se non lo fai, l'oggetto non non esisti, e si incorrerà in un mucchio 728 00:39:14,360 --> 00:39:17,290 di problemi. 729 00:39:17,290 --> 00:39:20,250 >> E poi, voglio creare un controller di vista, giusto? 730 00:39:20,250 --> 00:39:25,580 Quindi, voglio creare un UIViewController stella - 731 00:39:25,580 --> 00:39:29,620 così, tutto è un puntatore Objective-C, e ho intenzione di fare 732 00:39:29,620 --> 00:39:31,600 qualcosa di simile, qui - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 OK. 736 00:39:40,150 --> 00:39:43,450 >> E allora che cosa ho intenzione di fare è, io sono andare - così, ricordate quando abbiamo fatto 737 00:39:43,450 --> 00:39:45,360 l'embed in controller di navigazione? 738 00:39:45,360 --> 00:39:46,920 Questo è come si fa nel codice. 739 00:39:46,920 --> 00:39:54,550 Stai andando a fare navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> AUDIENCE: [incomprensibile]. 742 00:39:57,636 --> 00:39:59,030 Sarà questo accadere per noi, o -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: Oh, sì. 744 00:40:00,080 --> 00:40:00,550 No. 745 00:40:00,550 --> 00:40:02,740 Mi piace meglio. 746 00:40:02,740 --> 00:40:04,670 No, funzionerà anche per te. 747 00:40:04,670 --> 00:40:06,700 Quindi, questi sono tutti i metodi. 748 00:40:06,700 --> 00:40:10,400 Quindi pushViewController è un metodo, e inoltre, più specificamente, è un 749 00:40:10,400 --> 00:40:13,590 metodo della UI istanza controller di navigazione. 750 00:40:13,590 --> 00:40:20,030 Perché ho dovuto creare la mia navigazione dell'interfaccia utente regolatore stella, e poi ho 751 00:40:20,030 --> 00:40:24,510 può chiamare questo pushViewController sul mio specifica istanza di una navigazione dell'interfaccia utente 752 00:40:24,510 --> 00:40:25,010 controllore. 753 00:40:25,010 --> 00:40:29,490 >> AUDIENCE: Dobbiamo fare l'esatto parola, o ha già esiste per esso? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Sì, perché è un metodo. 755 00:40:31,380 --> 00:40:32,200 E 'come una funzione. 756 00:40:32,200 --> 00:40:33,330 E 'come printf. 757 00:40:33,330 --> 00:40:34,390 E 'come scanf. 758 00:40:34,390 --> 00:40:36,250 E 'come strcompare. 759 00:40:36,250 --> 00:40:40,310 Tranne che sa quello che si potrebbe desiderare di tipo, e notare che essa sarà sempre 760 00:40:40,310 --> 00:40:42,740 venire con le cose che sono legalmente consentito per voi. 761 00:40:42,740 --> 00:40:47,620 Quindi, se non si presenta qui, allora qualcosa non va. 762 00:40:47,620 --> 00:40:50,550 >> Quindi, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Così, ora, voglio spingere la mia nuova creazione 764 00:40:52,580 --> 00:40:56,850 UIViewController, e poi, animato - 765 00:40:56,850 --> 00:40:57,470 forse no. 766 00:40:57,470 --> 00:41:00,110 Perché questo sta per essere il primo controller della vista. 767 00:41:00,110 --> 00:41:03,210 Voglio dire, anche se ho fatto animazione, probabilmente non apparirà, perché 768 00:41:03,210 --> 00:41:05,050 è la prima schermata. 769 00:41:05,050 --> 00:41:06,540 >> E ricordate le staffe. 770 00:41:06,540 --> 00:41:08,850 Quindi, ricordiamo quanto abbiamo usato le staffe? 771 00:41:08,850 --> 00:41:11,870 E all'interno delle parentesi, il oggetto invita un metodo - 772 00:41:11,870 --> 00:41:15,910 così il nostro oggetto è la navigazione controllore, e il metodo è una spinta 773 00:41:15,910 --> 00:41:17,210 View Controller animato. 774 00:41:17,210 --> 00:41:21,920 E vedere come ci vogliono in due argomenti, e sono separati dal, una sorta di, 775 00:41:21,920 --> 00:41:24,390 parole e due punti. 776 00:41:24,390 --> 00:41:28,300 Così, Objective-C cerca di farlo bello e facile per voi a leggere ad alta voce - 777 00:41:28,300 --> 00:41:33,020 il codice - e lo hanno semi, sorta di, un senso. 778 00:41:33,020 --> 00:41:37,150 >> Tuttavia, facendo proprio questo non è sufficiente. 779 00:41:37,150 --> 00:41:39,780 Lasciatemi Zoom Out momento. 780 00:41:39,780 --> 00:41:44,210 Facendo solo questo non basta otteniamo quello che abbiamo ottenuto in precedenza. 781 00:41:44,210 --> 00:41:48,580 Così qui, noterete che non c'è in realtà non sta per essere qualsiasi tipo di 782 00:41:48,580 --> 00:41:50,190 bar, qui, giusto? 783 00:41:50,190 --> 00:41:54,680 Non c'è nessuna barra di navigazione, il che significa che non abbiamo ancora ottenuto esso. 784 00:41:54,680 --> 00:41:58,850 >> E possiamo provare che fuori, anche, da, forse, cambiando lo sfondo 785 00:41:58,850 --> 00:42:00,460 ViewController, giusto? 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 Così, vedere come ViewController non ha avuto un colore di sfondo, anche se 790 00:42:07,690 --> 00:42:08,780 voluto accedervi? 791 00:42:08,780 --> 00:42:14,080 E questo perché ViewController è un contenitore per la vista. 792 00:42:14,080 --> 00:42:19,490 Quindi, ha una proprietà della vista, che poi ha un colore di sfondo. 793 00:42:19,490 --> 00:42:25,510 >> E, posso impostare, una sorta di noiosamente, chiamando il colore 794 00:42:25,510 --> 00:42:28,130 sull'oggetto UIColor. 795 00:42:28,130 --> 00:42:33,210 Quindi, avviso qui, redcolor è un metodo. 796 00:42:33,210 --> 00:42:36,750 E 'un metodo della classe di UIColor. 797 00:42:36,750 --> 00:42:40,820 Perché io non ho dovuto creare un istanza effettiva di un UIColor in ordine 798 00:42:40,820 --> 00:42:42,020 per chiamare il metodo su di esso. 799 00:42:42,020 --> 00:42:45,050 Ho solo, semplicemente, chiamai il nome del tipo simile. 800 00:42:45,050 --> 00:42:49,620 Io, come, chiamato a int, int se aveva, come, un metodo ad esso, per esempio. 801 00:42:49,620 --> 00:42:52,380 >> E così, se corriamo questo codice, faremo si noti che lo sfondo è 802 00:42:52,380 --> 00:42:53,540 in realtà non rosso. 803 00:42:53,540 --> 00:42:54,790 E 'ancora bianco. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 E come possiamo aggirare cioè, notare come c'è il self.window. 806 00:43:04,550 --> 00:43:08,260 Cioè, come, il contenitore finale per l'applicazione. 807 00:43:08,260 --> 00:43:11,630 È l'ultima cosa che contiene tutto sullo schermo, per un 808 00:43:11,630 --> 00:43:13,650 iPhone o iPad applicazione. 809 00:43:13,650 --> 00:43:20,970 >> E, convenientemente, self.window ha questa proprietà chiamata 810 00:43:20,970 --> 00:43:22,650 RootViewController. 811 00:43:22,650 --> 00:43:26,480 E che sta per essere il puntatore il primo controller della vista all'interno 812 00:43:26,480 --> 00:43:27,270 della vostra applicazione. 813 00:43:27,270 --> 00:43:32,000 Allora, che cosa vogliamo fare qui, ora, è per impostare la parità alla nostra navigazione 814 00:43:32,000 --> 00:43:32,710 controllore. 815 00:43:32,710 --> 00:43:33,760 Giusto? 816 00:43:33,760 --> 00:43:37,490 Perché, tecnicamente, la navigazione controller è la nostra prima visione 817 00:43:37,490 --> 00:43:38,770 controllore. 818 00:43:38,770 --> 00:43:46,160 Tiene traccia di una serie di altri vista regolatori, e abbiamo spinto questa 819 00:43:46,160 --> 00:43:49,810 View Controller in quella matrice nel controller di navigazione. 820 00:43:49,810 --> 00:43:52,640 >> Quindi, non si vuole fare questo. 821 00:43:52,640 --> 00:43:54,225 Non sarebbe davvero aiutare. 822 00:43:54,225 --> 00:43:58,040 Si vuole fare questo, se si voleva fare un controller di navigazione, che più 823 00:43:58,040 --> 00:44:01,100 di voi probabilmente si, perché si vorrà a, sorta di, avere una sorta di, 824 00:44:01,100 --> 00:44:04,840 come, menu per tornare o qualche homepage per tornare, piuttosto che un 825 00:44:04,840 --> 00:44:05,470 schermo vuoto. 826 00:44:05,470 --> 00:44:05,920 Sì? 827 00:44:05,920 --> 00:44:11,460 >> PUBBLICO: E 'scomodo per di zoomare sul - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Già. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Quindi, sì. 831 00:44:15,720 --> 00:44:22,370 Questo è il codice, e ora cerchiamo di provarlo. 832 00:44:22,370 --> 00:44:27,920 >> Quindi, ci andiamo. 833 00:44:27,920 --> 00:44:29,170 Magia. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Quindi, OK. 836 00:44:32,690 --> 00:44:34,420 Grazie. 837 00:44:34,420 --> 00:44:35,000 OK. 838 00:44:35,000 --> 00:44:38,690 Così ora, quello che vogliamo fare è - così, stiamo genere di limitati, qui, giusto? 839 00:44:38,690 --> 00:44:45,130 Potenzialmente Potremmo scrivere tutto all'interno di questa funzione. 840 00:44:45,130 --> 00:44:48,470 Ma, non è così che lo sviluppo iOS di solito funziona. 841 00:44:48,470 --> 00:44:53,030 >> Quindi, quello che andremo a fare è che siamo andando a creare dei nuovi file. 842 00:44:53,030 --> 00:44:57,110 Ma, più in particolare, stiamo andando a creare un'altra classe Objective-C, o 843 00:44:57,110 --> 00:44:58,010 un altro oggetto - 844 00:44:58,010 --> 00:45:00,700 classe e gli oggetti sono intercambiabili qui. 845 00:45:00,700 --> 00:45:06,460 Ed ecco come ho potuto, potenzialmente, creare un'altra classe di controllori U. 846 00:45:06,460 --> 00:45:12,030 >> Quindi, si tratta di una sotto-classe, come si noterà, qui, è una sotto-classe del 847 00:45:12,030 --> 00:45:15,910 Controller di vista dell'interfaccia utente, ma non posso chiamare qualsiasi altro nome qui. 848 00:45:15,910 --> 00:45:19,400 Potrei chiamare questo CS50, potrei chiamare questo controller della vista, potrei chiamare 849 00:45:19,400 --> 00:45:21,640 questo punto di vista regolatore blah - 850 00:45:21,640 --> 00:45:22,400 tutto quello che voglio. 851 00:45:22,400 --> 00:45:24,140 Questo è solo il nome della classe. 852 00:45:24,140 --> 00:45:27,020 Tuttavia, sarà importante perché, in sostanza, quello che sto facendo 853 00:45:27,020 --> 00:45:29,720 è qui, sto creando un altro nome della classe. 854 00:45:29,720 --> 00:45:34,140 Quindi, sarà, come alcuni specie di tipo o di un oggetto. 855 00:45:34,140 --> 00:45:35,910 Quindi, dovrebbe essere un po 'generico. 856 00:45:35,910 --> 00:45:37,225 Non sta andando essere molto specifico. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> E poi, voglio sottolineare queste due opzioni. 859 00:45:44,480 --> 00:45:48,430 Perché stiamo facendo tutto dentro di codice, a volte è molto più facile 860 00:45:48,430 --> 00:45:53,540 di portare in un file di interfaccia, tale che Posso letteralmente trascinare e rilasciare, come 861 00:45:53,540 --> 00:45:54,960 abbiamo fatto in precedenza con storyboard - 862 00:45:54,960 --> 00:45:57,810 si sa, un'etichetta o un pulsante, o qualsiasi altra cosa. 863 00:45:57,810 --> 00:46:01,950 E così, xibs sono file che consentono di fai quello, e dovete collegarlo 864 00:46:01,950 --> 00:46:04,310 a questo file controller della vista. 865 00:46:04,310 --> 00:46:06,540 >> Così, ho intenzione di deliberatamente Non controllare questo. 866 00:46:06,540 --> 00:46:12,510 Di solito Vorrei verificare questo, e se io solo fatto questo per iPhone o iPad, I 867 00:46:12,510 --> 00:46:16,340 sarebbe controllare questo e semplicemente avere uno per, si sa, l'iPhone o l'iPad. 868 00:46:16,340 --> 00:46:19,750 Ma dal momento che sto facendo universale, vado per creare due di quelli più tardi. 869 00:46:19,750 --> 00:46:22,220 Così, ho intenzione di deliberatamente deselezionare questa. 870 00:46:22,220 --> 00:46:23,940 >> Anche questo è molto importante. 871 00:46:23,940 --> 00:46:27,490 Un sacco di volte, ho avuto i bug dove questo non è stato verificato. 872 00:46:27,490 --> 00:46:31,930 E così, ovviamente, questo file non è, specie di, come, inclusi o importati 873 00:46:31,930 --> 00:46:33,740 all'interno di questa cartella test. 874 00:46:33,740 --> 00:46:38,180 E così, il mio codice ha assolutamente idea l'esistenza di questo file, e 875 00:46:38,180 --> 00:46:41,080 che provoca un sacco di dolore e ore di debugging. 876 00:46:41,080 --> 00:46:44,360 Ma, basta assicurarsi che questo sia selezionata in modo che, si sa, l'obiettivo di questa 877 00:46:44,360 --> 00:46:47,510 file è per questa applicazione. 878 00:46:47,510 --> 00:46:48,310 >> OK. 879 00:46:48,310 --> 00:46:51,680 Così, ora abbiamo creato due nuovi file. 880 00:46:51,680 --> 00:46:54,050 E questi file sembrano quasi vuoto. 881 00:46:54,050 --> 00:46:59,550 E, in realtà, diamo anche continuare sulle creando dei file XI ter. 882 00:46:59,550 --> 00:47:03,690 Così, in precedenza, ero in Cocoa Touch discesa. 883 00:47:03,690 --> 00:47:06,880 Ora, ho intenzione di andare in User Interfaccia touch, e come potete vedere, ho 884 00:47:06,880 --> 00:47:08,120 può creare uno storyboard. 885 00:47:08,120 --> 00:47:11,710 >> Quindi, anche ho iniziato con un vuoto applicazione, posso ancora usare un 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Anche se, diventa difficile in termini di come si desidera collegare 888 00:47:15,480 --> 00:47:16,820 che, per il codice. 889 00:47:16,820 --> 00:47:18,230 Quindi, io non ci andrò. 890 00:47:18,230 --> 00:47:22,160 >> Ma, che cosa vogliamo fare ora è creare una vista. 891 00:47:22,160 --> 00:47:25,720 E si può scegliere per un iPhone o un iPad. 892 00:47:25,720 --> 00:47:30,180 E in genere, per indicare la differenza - se stai facendo un 893 00:47:30,180 --> 00:47:31,950 applicazione universale - 894 00:47:31,950 --> 00:47:35,980 hai messo un iPhone sottolineatura, o si può fare un Twiddly. 895 00:47:35,980 --> 00:47:36,980 Non ha molta importanza. 896 00:47:36,980 --> 00:47:40,890 E 'semplicemente di differenziare che vista è per quale dispositivo. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> E così, ora guarda. 899 00:47:44,430 --> 00:47:47,550 Ho una schermata che posso lavorare. 900 00:47:47,550 --> 00:47:53,530 E così, per esempio, posso mettere una etichetta qui, lo sai, e posso anche mettere 901 00:47:53,530 --> 00:47:54,820 un altro pulsante qui. 902 00:47:54,820 --> 00:47:58,730 Non mi dilungherò cambiare i valori qui. 903 00:47:58,730 --> 00:48:09,050 >> Ma, ciò che è importante qui è che il proprietario del file - 904 00:48:09,050 --> 00:48:13,660 così, io sono dentro di iPhone vista, file di iPhone XI ter. 905 00:48:13,660 --> 00:48:18,050 E in questa zona di navigazione o menu a discesa, voglio andare al 906 00:48:18,050 --> 00:48:19,090 proprietario del file. 907 00:48:19,090 --> 00:48:22,630 E questa è la realtà importante passo qui. 908 00:48:22,630 --> 00:48:27,780 Voglio fare la vista di classe controllore, in modo che questo file XI ter è 909 00:48:27,780 --> 00:48:30,030 andando da associare il mio controller della vista. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 E tutto ciò che faccio dentro la mia vista regolatore di programmazione è 912 00:48:39,360 --> 00:48:42,800 andando a riflettersi qui. 913 00:48:42,800 --> 00:48:46,270 >> Così, però, notare che - 914 00:48:46,270 --> 00:48:55,995 in realtà, facciamo questo punto di vista sfondo blu, per esempio. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 O verde. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 E poi, quindi se noterete, nel questo codice, questo è dove siamo arrivati ​​alla nostra 919 00:49:07,950 --> 00:49:09,200 controller di navigazione. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Anche se abbiamo fatto questo passo, è ancora in corso di essere rosso, non verde. 922 00:49:18,310 --> 00:49:20,350 E c'è un motivo. 923 00:49:20,350 --> 00:49:28,090 E 'perché, quando abbiamo inited il nostro controller della vista, qui - 924 00:49:28,090 --> 00:49:30,010 scusate, è un po 'pazzo - 925 00:49:30,010 --> 00:49:34,520 quando abbiamo inited nostro controller della vista qui, abbiamo inited esso del tipo generale 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 Quindi non abbiamo neanche fare con questa classe. 929 00:49:40,560 --> 00:49:42,030 >> Quindi ricordate, questo è come una classe ora. 930 00:49:42,030 --> 00:49:47,160 Può essere pensato come un tipo, basta come UIViewController è un tipo. 931 00:49:47,160 --> 00:49:51,080 E per utilizzare tale, ciò che dobbiamo fare è importarlo - 932 00:49:51,080 --> 00:49:52,520 import ViewController - 933 00:49:52,520 --> 00:49:55,750 e, come potete vedere, AutoFills per me. 934 00:49:55,750 --> 00:49:56,570 Quindi, ViewController - 935 00:49:56,570 --> 00:50:02,070 e ora, qui, posso cambiare questo UIViewController a ViewController. 936 00:50:02,070 --> 00:50:05,050 Ed ora, qui, posso cambiare questo ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Corriamo di nuovo. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 E 'ancora rosso. 941 00:50:19,690 --> 00:50:23,370 E il motivo per cui è ancora rosso è perché - 942 00:50:23,370 --> 00:50:26,230 woah, che cosa è successo lì? 943 00:50:26,230 --> 00:50:31,500 Abbiamo voluto associare questa XI ter file con il controller della vista. 944 00:50:31,500 --> 00:50:37,540 Tuttavia, al fine di fare effettivamente che, abbiamo bisogno di andare in questo. 945 00:50:37,540 --> 00:50:42,980 E quando facciamo la init, che vogliamo fare initWithnibName, e poi vogliamo 946 00:50:42,980 --> 00:50:48,910 fare la stringa a View_iPhone, per esempio. 947 00:50:48,910 --> 00:50:51,700 È possibile ignorare il pacchetto qui. 948 00:50:51,700 --> 00:50:54,965 >> E questo sta andando per consentire noi, in realtà - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, c'è un problema. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Giusto. 953 00:51:09,980 --> 00:51:17,670 >> E così, c'è un problema perché, in il nostro file vista XI ter, abbiamo un'etichetta e 954 00:51:17,670 --> 00:51:18,720 abbiamo un pulsante. 955 00:51:18,720 --> 00:51:23,660 Tuttavia, anche se abbiamo collegato quei due, non c'è niente dentro di 956 00:51:23,660 --> 00:51:27,440 ViewController.h o ViewController.m che riflettono quelle 957 00:51:27,440 --> 00:51:29,160 bottoni o le etichette. 958 00:51:29,160 --> 00:51:32,425 Quindi, abbiamo bisogno di scrivere quelle come proprietà del controller della vista. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Quindi, questo è come si dichiara una proprietà. 961 00:51:39,490 --> 00:51:43,422 Prende in, di solito, queste due opzioni. 962 00:51:43,422 --> 00:51:48,690 Ai fini di noi e questo seminario, Direi che, in generale, 963 00:51:48,690 --> 00:51:52,250 la maggior parte delle proprietà sono nonatomic e conservare. 964 00:51:52,250 --> 00:51:55,420 Si può leggere da Google la ricerca, si sa, la differenza tra 965 00:51:55,420 --> 00:51:58,620 nonatomic e mantenere in poi, conoscere, Google o qualcosa del genere. 966 00:51:58,620 --> 00:52:01,090 E io ti porto a, come, Catasta Overflow, dove le persone avranno 967 00:52:01,090 --> 00:52:03,605 risposte per le differenze tra quelli. 968 00:52:03,605 --> 00:52:07,000 Ma per ora, questo è quello che vogliono essere interessato. 969 00:52:07,000 --> 00:52:12,790 >> E noi vogliamo fare una etichetta UI, stella, e si può chiamare quello che vogliamo. 970 00:52:12,790 --> 00:52:15,710 Possiamo chiamare questa, si sa, etichetta. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 E, creeremo un altro uno per il pulsante. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 E ricordatevi di includere l'asterisco, perché abbiamo a che fare con i puntatori 975 00:52:29,910 --> 00:52:36,740 praticamente ovunque all'interno di Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Tuttavia, tale volontà non ancora risolvere il problema, come potete vedere qui. 977 00:52:42,110 --> 00:52:50,540 E il motivo è perché, ogni volta che desidera collegare un'etichetta di file XI ter o un 978 00:52:50,540 --> 00:52:55,690 pulsante per il programma, o l'intestazione e file di implementazione, vogliamo 979 00:52:55,690 --> 00:52:58,255 aggiungere questo pezzo di codice - 980 00:52:58,255 --> 00:53:00,610 presa. 981 00:53:00,610 --> 00:53:03,600 Si noti che si tratta di una parola chiave. 982 00:53:03,600 --> 00:53:07,970 >> E, appena finisco di battitura che fuori, dovrebbe avere queste 983 00:53:07,970 --> 00:53:09,100 due cerchi, qui. 984 00:53:09,100 --> 00:53:11,200 Di solito, non sono compilati dentro 985 00:53:11,200 --> 00:53:12,920 Io non sono sicuro perché sono. 986 00:53:12,920 --> 00:53:21,370 Ma di solito, dovrete manualmente collegarli andando a questa parte 987 00:53:21,370 --> 00:53:23,530 l'area utilities. 988 00:53:23,530 --> 00:53:28,430 >> E così, adesso, ho la mia etichetta selezionato, e voglio trascinare questo nuovo 989 00:53:28,430 --> 00:53:33,910 riferimento sbocco per il proprietario del mio file, e quindi fare clic su Etichetta. 990 00:53:33,910 --> 00:53:40,230 Così ora, finalmente, questa etichetta è collegato a questa etichetta. 991 00:53:40,230 --> 00:53:44,950 E questa etichetta è quello che stiamo andando a utilizzare a livello di programmazione per cambiare la sua 992 00:53:44,950 --> 00:53:49,250 testo, il suo carattere, il suo sfondo colore, et cetera. 993 00:53:49,250 --> 00:53:52,430 >> Quindi, perché non facciamo l' stesso per il pulsante? 994 00:53:52,430 --> 00:53:54,770 E come si noterà, per il pulsante, è un po 'più complicato. 995 00:53:54,770 --> 00:53:59,060 Perché, voglio dire, si suppone di premere un pulsante, quindi ha un sacco 996 00:53:59,060 --> 00:54:02,950 di opzioni per come gli utenti possibile premere su un pulsante. 997 00:54:02,950 --> 00:54:06,570 E poi, vedremo in seguito che ci si può collegare questo alla nostra 998 00:54:06,570 --> 00:54:09,140 codice per farlo funzionare. 999 00:54:09,140 --> 00:54:12,770 >> Quindi, per ora, però, vogliamo collegare al pulsante effettiva 1000 00:54:12,770 --> 00:54:13,570 all'interno del nostro codice. 1001 00:54:13,570 --> 00:54:19,640 Così andiamo al nuovo outlet referenziamento, e poi fare il pulsante. 1002 00:54:19,640 --> 00:54:22,068 Ora, corriamo di nuovo. 1003 00:54:22,068 --> 00:54:23,040 Uh oh. 1004 00:54:23,040 --> 00:54:23,890 OK. 1005 00:54:23,890 --> 00:54:25,140 Non so cosa sta succedendo qui ora. 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 Solo un attimo, qui. 1010 00:54:58,960 --> 00:55:02,490 >> In realtà, perché non prendiamo un guardare un altro esempio in 1011 00:55:02,490 --> 00:55:05,800 l'interesse di tempo. 1012 00:55:05,800 --> 00:55:06,200 OK. 1013 00:55:06,200 --> 00:55:10,610 Quindi, ecco il più prontamente preparato esempio per ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Come potete vedere qui, ho incluso le proprietà per l' 1016 00:55:17,110 --> 00:55:18,460 etichetta e il pulsante. 1017 00:55:18,460 --> 00:55:20,370 E poi, questo pezzo di codice qui - 1018 00:55:20,370 --> 00:55:21,830 questo IBAction - 1019 00:55:21,830 --> 00:55:27,740 era un collegamento a questo pulsante qui. 1020 00:55:27,740 --> 00:55:33,940 Quindi, come potete vedere qui, Touch Up Dentro è collegato al selettore 1021 00:55:33,940 --> 00:55:37,390 chiamato pulsante premuto. 1022 00:55:37,390 --> 00:55:41,700 >> Quindi, possiamo effettivamente passare attraverso il movimento di nuovo, qui, prendendo Touch Up 1023 00:55:41,700 --> 00:55:48,750 Dentro e trascinandolo Proprietario del file, e quindi 1024 00:55:48,750 --> 00:55:51,570 Fare clic sul pulsante premuto. 1025 00:55:51,570 --> 00:55:52,820 Ora, corriamo il nostro codice. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Così ora, questo pulsante ora funziona e ci porterà alla pagina successiva. 1028 00:56:02,020 --> 00:56:08,430 >> E, in termini del nostro controller della vista, questo è il pezzo di codice che ha 1029 00:56:08,430 --> 00:56:10,000 cura del pulsante premuto. 1030 00:56:10,000 --> 00:56:14,260 Ed è importante notare qui, che Ho creato un altro tipo di vista 1031 00:56:14,260 --> 00:56:16,330 controllore chiamato un tavolo View Controller. 1032 00:56:16,330 --> 00:56:19,900 Quindi, questo era simile per eseguire in storyboard, quando ho trascinato una delle 1033 00:56:19,900 --> 00:56:23,450 questi controllori vista tabella nella storyboard. 1034 00:56:23,450 --> 00:56:24,470 Sto creando un altro 1035 00:56:24,470 --> 00:56:30,000 >> Puntatore al controller della vista tabella, alloc e init-dola, e poi fare 1036 00:56:30,000 --> 00:56:34,490 controller di navigazione auto dot, spingere ViewController, questo nuovo 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 E ho impostato l'animazione di sì, perché ora all'interno della mia app, e ho 1039 00:56:39,750 --> 00:56:45,670 vogliono vedere effettivamente l'animazione in corso dalla home page alla tavola 1040 00:56:45,670 --> 00:56:46,920 View Controller. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> AUDIENCE: Ti preoccupi ancora in merito a garbage collection? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: Che cos'è? 1044 00:56:51,840 --> 00:56:54,740 No. 1045 00:56:54,740 --> 00:56:58,970 Quindi, la domanda era, avete lavorare con garbage collection? 1046 00:56:58,970 --> 00:57:03,470 Quindi, Xcode 4 aveva come ARC, che è conteggio dei riferimenti automatico. 1047 00:57:03,470 --> 00:57:06,120 E così, di solito quando si inizia un nuovo progetto, si potrebbe verificare che, in quanto 1048 00:57:06,120 --> 00:57:09,440 nessuno vuole davvero affrontare liberando memoria e roba. 1049 00:57:09,440 --> 00:57:13,720 Ma credo che in Xcode 5, non c'è nemmeno tale opzione sul nuovo progetto. 1050 00:57:13,720 --> 00:57:16,750 Quindi, automaticamente che fa per voi. 1051 00:57:16,750 --> 00:57:16,920 Sì? 1052 00:57:16,920 --> 00:57:20,970 >> PUBBLICO: Si può esportare un PDF nel vostro storyboard? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Sì, assolutamente. 1054 00:57:22,020 --> 00:57:28,180 Quindi, tutti questi saranno inclusi nella il codice sorgente, in modo che voi ragazzi può controllare 1055 00:57:28,180 --> 00:57:30,730 progetto Xcode effettivo per esso. 1056 00:57:30,730 --> 00:57:31,105 Sì? 1057 00:57:31,105 --> 00:57:35,944 >> Pubblico: Ma, voglio dire, come posso stampare un PDF con il mio storyboard? 1058 00:57:35,944 --> 00:57:38,920 Se voglio solo esportare l' le immagini per mostrare a qualcuno. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: Oh yeah. 1060 00:57:39,160 --> 00:57:41,980 Penso che, forse, si può solo catturare una schermata. 1061 00:57:41,980 --> 00:57:44,350 Gia ', e inviare loro una schermata colpo o qualcosa del genere. 1062 00:57:44,350 --> 00:57:45,600 Già. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Allora, vediamo. 1065 00:57:50,570 --> 00:57:56,470 Nell'interesse del tempo, credo questo è tutto l in grado di coprire oggi. 1066 00:57:56,470 --> 00:57:59,600 Ma, io so che è, in realtà, basta appena tocca la superficie di iOS 1067 00:57:59,600 --> 00:58:00,370 sviluppo. 1068 00:58:00,370 --> 00:58:05,630 Quindi, non esitate a contattarmi se avete domande su iOS 1069 00:58:05,630 --> 00:58:07,000 sviluppo. 1070 00:58:07,000 --> 00:58:12,840 E, si spera, sarò in grado di pulire up parte del codice per l'origine 1071 00:58:12,840 --> 00:58:16,830 file di codice, in modo che avrete un po ' veramente bello esempi per lavorare. 1072 00:58:16,830 --> 00:58:21,020 >> Oltre a questo, se voi ragazzi stanno andando al CS50 Hackathon, mi può o 1073 00:58:21,020 --> 00:58:25,730 non essere lì, e posso dare una mano con qualche sviluppo iOS, troppo. 1074 00:58:25,730 --> 00:58:26,980 Così, grazie mille, ragazzi. 1075 00:58:26,980 --> 00:58:31,168