1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> Rhed SHI: Bine ați venit la vezi seminar CS50 - 3 00:00:09,800 --> 00:00:11,630 Introducere în iOS. 4 00:00:11,630 --> 00:00:13,290 Vă mulțumesc tuturor că ați venit. 5 00:00:13,290 --> 00:00:16,610 Sper că ești la fel de incantati ca eu sunt de iOS. 6 00:00:16,610 --> 00:00:22,300 Anul trecut, am luat CS50 ca un al doilea de studentie, și am învățat practic iOS pentru meu 7 00:00:22,300 --> 00:00:23,490 final al proiectului. 8 00:00:23,490 --> 00:00:26,350 Și a fost destul de - 9 00:00:26,350 --> 00:00:30,530 bine, nu a fost ușor, dar există o mulțime de tutoriale de asistență online. 10 00:00:30,530 --> 00:00:33,760 Și eu chiar sper că cu această seminar, eu voi da voi un cap 11 00:00:33,760 --> 00:00:36,750 începe la dezvoltarea iOS 12 00:00:36,750 --> 00:00:40,490 >> Deci, în ceea ce privește dezvoltarea iOS, există două lucruri principale noi 13 00:00:40,490 --> 00:00:42,090 Vreau pentru a acoperi astăzi. 14 00:00:42,090 --> 00:00:43,290 În primul rând, limba - 15 00:00:43,290 --> 00:00:46,650 limba va fi în Objective-C. Vom auzi de fapt 16 00:00:46,650 --> 00:00:47,750 ceva cu adevarat interesant. 17 00:00:47,750 --> 00:00:51,500 Deci, vă puteți alătura tot Apple, comunitate de dezvoltatori și de a construi unele 18 00:00:51,500 --> 00:00:52,940 aplicații într-adevăr minunat. 19 00:00:52,940 --> 00:00:58,670 >> De asemenea, iOS 7 este frumos, sperăm, pentru unii dintre voi. 20 00:00:58,670 --> 00:01:01,130 Dar este controversat, știu. 21 00:01:01,130 --> 00:01:05,349 Și, în principal, ceea ce vreau să fac este ghidul te prin Objective-C, și, de asemenea, 22 00:01:05,349 --> 00:01:10,650 Xcode, care este integrat mediu de dezvoltare care va fi 23 00:01:10,650 --> 00:01:13,460 care lucrează în pentru iOS. 24 00:01:13,460 --> 00:01:19,140 >> Și astfel, doar un cuvânt pe Objective-C. Practic, este exact același ca și C, 25 00:01:19,140 --> 00:01:22,790 dar cu o mulțime de alte lucruri. 26 00:01:22,790 --> 00:01:27,710 Și astfel, mai strict, este de fapt o super-set de C. Deci, tot ceea ce ai 27 00:01:27,710 --> 00:01:32,280 se poate face în C, chiar acum, care este ca practic PSET 0 la 6, te 28 00:01:32,280 --> 00:01:34,170 se poate face în Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Deci, nu se simt frică despre acest nou limbă pe care ai de gând să învețe. 30 00:01:38,620 --> 00:01:42,120 Te-am acoperit deja o mulțime de ea, pentru că voi toți ați făcut C acest trecut 31 00:01:42,120 --> 00:01:45,880 semestru, cu excepția acum te duci pentru a avea o mult mai mult pentru a lucra cu. 32 00:01:45,880 --> 00:01:49,270 Și Mă duc să vă conducă, printr-o câteva exemple pentru a sublinia unele 33 00:01:49,270 --> 00:01:53,920 de diferențele cheie pe care le-am găsit au fost când foarte important am învățat 34 00:01:53,920 --> 00:01:57,180 Objective-C, anul trecut. 35 00:01:57,180 --> 00:02:00,910 >> Ei bine, de fapt, așa, un alt punct este, Objective-C este, în mod evident, 36 00:02:00,910 --> 00:02:02,200 orientat-obiect. 37 00:02:02,200 --> 00:02:06,340 Și vom discuta un pic despre ceea ce înseamnă că mai târziu. 38 00:02:06,340 --> 00:02:11,340 Practic, e ca și cum ai lucrat cu structs în acest PSET trecut, cu 39 00:02:11,340 --> 00:02:13,360 noduri și alte similare lucruri de genul asta. 40 00:02:13,360 --> 00:02:17,110 Cu excepția, în Objective-C, totul este un obiect, și vei fi 41 00:02:17,110 --> 00:02:20,720 trecând în jurul valorii de indicii pentru a obiectelor mai degrabă decât valorile înșiși. 42 00:02:20,720 --> 00:02:25,050 Deci, e doar ceva important de a păstra în minte. 43 00:02:25,050 --> 00:02:29,140 >> Deci, de ce nu începem cu câteva diferențele de sintaxă între C și 44 00:02:29,140 --> 00:02:30,540 Obiectiv-C? 45 00:02:30,540 --> 00:02:38,310 Vreau să subliniez # include, te știu, io.h standard, în C și C + +, cu 46 00:02:38,310 --> 00:02:44,030 versiunea Objective-C din care este # import, iar apoi un fel de 47 00:02:44,030 --> 00:02:44,790 fișier antet. 48 00:02:44,790 --> 00:02:48,165 În acest caz, ar fi UIKit, Știi, slash UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Ar putea fi, de asemenea, stii, MKMapview pentru a vă reduce MKMapview.h dacă doriți 50 00:02:53,560 --> 00:02:56,370 de a face, cum ar fi, o hartă interiorul app dumneavoastră. 51 00:02:56,370 --> 00:02:57,110 Lucruri similare, cum ar fi faptul că. 52 00:02:57,110 --> 00:03:01,250 >> Deci, cel mai important lucru este să includă sa schimbat acum să importe. 53 00:03:01,250 --> 00:03:04,340 Dar ideea rămâne. 54 00:03:04,340 --> 00:03:10,460 Ai de gând să fie importul un fel de fișier header în programul tău. 55 00:03:10,460 --> 00:03:14,550 >> De asemenea, vreau să subliniez diferența între printf și NSLog. 56 00:03:14,550 --> 00:03:19,760 Cu toate acestea, așa cum am spus mai devreme, Objective-C este un super-set strict de 57 00:03:19,760 --> 00:03:22,800 C, ceea ce înseamnă că există printf în Objective-C, de asemenea. 58 00:03:22,800 --> 00:03:24,340 Dar, majoritatea oamenilor nu folosesc asta. 59 00:03:24,340 --> 00:03:28,245 Cei mai mulți oameni folosesc acest NSLog deoarece vă oferă o ștampilă de timp, și vom vedea 60 00:03:28,245 --> 00:03:29,780 l în acțiune mai târziu. 61 00:03:29,780 --> 00:03:33,560 Dar, este, în general, o mai util modalitate de a imprima variabile. 62 00:03:33,560 --> 00:03:38,220 >> Și eu, de asemenea, doresc să sublinieze că NSLog ia în la fel 63 00:03:38,220 --> 00:03:41,650 Valorile substituent ca printf o face - 64 00:03:41,650 --> 00:03:45,900 astfel% d este pentru un int, % F este un float. 65 00:03:45,900 --> 00:03:49,750 Cu toate acestea, eu nu vreau să evidențieze acest lucru foarte ultima - 66 00:03:49,750 --> 00:03:52,960 NSLog% la semn - 67 00:03:52,960 --> 00:03:55,390 care este un substituent pentru un obiect. 68 00:03:55,390 --> 00:04:01,160 Și, după cum am spus mai devreme, Objective-C oferte destul de mult cea mai mare parte din obiecte, 69 00:04:01,160 --> 00:04:05,020 și astfel aceasta va veni în uz atunci când doresc să imprime, poate, poate o 70 00:04:05,020 --> 00:04:08,390 NSArray, sau NSDictionary, sau un NSString. 71 00:04:08,390 --> 00:04:13,750 >> Deci, de asemenea, observa că, în NSLog nostru afirmație, avem un la semn în față 72 00:04:13,750 --> 00:04:15,380 citatului - 73 00:04:15,380 --> 00:04:20,769 că este pentru a semnifica faptul că siruri de caractere, acum, în Objective-C sunt obiecte. 74 00:04:20,769 --> 00:04:23,310 Ei nu mai sunt pur și simplu stele char. 75 00:04:23,310 --> 00:04:25,530 Sunt obiecte și sunt tratată ca atare. 76 00:04:25,530 --> 00:04:28,690 >> Deci, este foarte important ca, atunci când utilizați NSLog este nevoie într-o NS 77 00:04:28,690 --> 00:04:32,580 șir, ceea ce înseamnă că veți avea să includă o puțin în fața ta 78 00:04:32,580 --> 00:04:34,270 ghilimele. 79 00:04:34,270 --> 00:04:38,290 Și de aceea vedeți, aici, în toate Funcția mea cheamă la acest NSLog, am 80 00:04:38,290 --> 00:04:42,400 au o la în fața citate, chiar deși% d și% F sunt 81 00:04:42,400 --> 00:04:45,200 toate la fel de la C. 82 00:04:45,200 --> 00:04:47,930 >> Orice întrebări până acum? 83 00:04:47,930 --> 00:04:50,920 Voi încerca să treacă prin acest rapid, astfel că putem avea mai mult timp la locul de muncă 84 00:04:50,920 --> 00:04:55,210 cu Xcode și Objective-C, așa că voi putea obține mai mult 85 00:04:55,210 --> 00:04:57,630 familiarizat cu ea. 86 00:04:57,630 --> 00:05:01,900 >> Apoi, vreau să subliniez ceva conceptual de important. 87 00:05:01,900 --> 00:05:05,130 Deci, în C, cele mai multe lucruri sunt funcții. 88 00:05:05,130 --> 00:05:06,280 Facem un apel de funcție. 89 00:05:06,280 --> 00:05:10,190 Noi declarăm funcții în acest fel, cu revenirea primul tip, atunci 90 00:05:10,190 --> 00:05:13,570 nume de funcție, între paranteze, și apoi indiferent de argumente și de tipul de 91 00:05:13,570 --> 00:05:15,590 aceste argumente ne-am dori să treacă inch 92 00:05:15,590 --> 00:05:19,970 Și Objective-C, deoarece totul este un obiect sau o clasă - 93 00:05:19,970 --> 00:05:23,970 atât de clasă și obiect sunt doi termeni care sunt în mare parte sinonim cu altele, 94 00:05:23,970 --> 00:05:28,270 așa că am putea să le utilizați interschimbabil pe parcursul seminarului. 95 00:05:28,270 --> 00:05:34,090 >> Dar, veți vedea că avem metode de Obiectiv-C și nu la funcții. 96 00:05:34,090 --> 00:05:36,390 Și metode fac parte din obiecte. 97 00:05:36,390 --> 00:05:38,950 Deci, doar ca, poate să ia de exemplu, nod - 98 00:05:38,950 --> 00:05:40,250 tip nostru [inaudibil] 99 00:05:40,250 --> 00:05:44,390 nod din PSET 6 sau 5 - 100 00:05:44,390 --> 00:05:49,590 avem cuvântul, proprietatea, sau următorul nod indicatorul. 101 00:05:49,590 --> 00:05:53,880 Metodele sunt pur și simplu funcții în interiorul de un fel de structură. 102 00:05:53,880 --> 00:05:57,510 >> Deci, în acest caz, structura va fi obiect, apoi metoda este 103 00:05:57,510 --> 00:05:59,260 ceva ce aparține unui obiect. 104 00:05:59,260 --> 00:06:02,650 Și acest lucru este modul în care s-ar declara, un fel de, o metodă. 105 00:06:02,650 --> 00:06:07,990 V-ar începe cu, din nou, revenirea tip - deci, am încercat să culoare 106 00:06:07,990 --> 00:06:12,990 cod cuvintele cheie aici, pentru ca voi se poate vedea, cel puțin, formatarea 107 00:06:12,990 --> 00:06:17,650 similarități între funcția Declaratii metodă. 108 00:06:17,650 --> 00:06:21,990 Deci, începe cu, știți, o revenire tip - în acest caz, este o matrice, sau 109 00:06:21,990 --> 00:06:23,910 un pointer NSArray - 110 00:06:23,910 --> 00:06:26,710 și apoi ai această metodă. 111 00:06:26,710 --> 00:06:30,900 Și atunci, ce e interesant aici este că, în loc de a avea paranteze, am 112 00:06:30,900 --> 00:06:32,900 au aceste două puncte. 113 00:06:32,900 --> 00:06:38,450 Și apoi, în fața argumentelor noastre, ne-am pus, din nou, în paranteze tipul 114 00:06:38,450 --> 00:06:39,370 a argumentului nostru. 115 00:06:39,370 --> 00:06:43,160 >> Deci, acum am încercat să facă comparație între, știi, n și 116 00:06:43,160 --> 00:06:45,450 număr, pentru că sunt ambele int, cum ar fi. 117 00:06:45,450 --> 00:06:49,580 Apoi, cealaltă este un tip NSUInteger. 118 00:06:49,580 --> 00:06:56,390 Și apoi, cu Objective-C, atunci când doresc să aibă mai multe argumente în 119 00:06:56,390 --> 00:07:00,030 clauza metoda, tu, un fel de, separa-le un fel de acest lucru - 120 00:07:00,030 --> 00:07:03,790 Eu nu sunt destul de sigur cum să-l descrie, dar acest lucru este un bun exemplu de modul în care 121 00:07:03,790 --> 00:07:06,530 poate avea mai multe argumente acolo. 122 00:07:06,530 --> 00:07:10,360 >> Ai putea, desigur, doar în totalitate ignora de colon andArray NSArray 123 00:07:10,360 --> 00:07:13,240 matrice dacă ai vrut doar o metodă care să ia într-un singur argument. 124 00:07:13,240 --> 00:07:13,677 Da, întrebare. 125 00:07:13,677 --> 00:07:18,701 >> Audiența: Sunt atât NSUInteger și NSArray argumente care pot fi luate în 126 00:07:18,701 --> 00:07:21,530 în NSArray? 127 00:07:21,530 --> 00:07:22,060 >> Rhed SHI: Da. 128 00:07:22,060 --> 00:07:23,400 Deci, lasă-mă să explic. 129 00:07:23,400 --> 00:07:23,790 Deci, da. 130 00:07:23,790 --> 00:07:30,260 Deci, întrebarea a fost sunt NSUInteger și NSArray * tipuri de argumente, 131 00:07:30,260 --> 00:07:31,570 și asta e corect. 132 00:07:31,570 --> 00:07:35,700 Deci, vrei mereu să precizeze ce Tipul de argument este. 133 00:07:35,700 --> 00:07:41,570 Și aici, eu încerc să vă prezint la o parte din sintaxa și Vocab de 134 00:07:41,570 --> 00:07:45,910 Objective-C, astfel încât acestea sunt tipuri reale că veți fi de-a face cu. 135 00:07:45,910 --> 00:07:48,970 >> Și, după cum veți observa, tablouri nu mai sunt, un fel de, 136 00:07:48,970 --> 00:07:50,780 suport lucruri simple. 137 00:07:50,780 --> 00:07:52,060 Sunt obiecte. 138 00:07:52,060 --> 00:07:56,700 Deși, dacă mergem la următoarea diapozitiv, putem vedea că putem 139 00:07:56,700 --> 00:08:02,510 tare-un cod NSArray în Objective-C cu pur și simplu un simbol la în fața 140 00:08:02,510 --> 00:08:04,190 paranteze. 141 00:08:04,190 --> 00:08:08,650 Eu nu sunt, de fapt, destul de sigur dacă I punct de vedere sintactic hard-coded o matrice 142 00:08:08,650 --> 00:08:16,020 corect pentru versiunea C, dar asta e ar trebui să fie într-o gamă C. 143 00:08:16,020 --> 00:08:19,760 >> Deci, acesta este modul în care ar fi, stii, poate folosi funcțiile sau 144 00:08:19,760 --> 00:08:21,990 Metodele pe care le-am creat mai devreme. 145 00:08:21,990 --> 00:08:22,250 Corect? 146 00:08:22,250 --> 00:08:25,340 Deci, acest lucru este în cazul în care ne declarăm nostru funcția și metoda noastră. 147 00:08:25,340 --> 00:08:28,020 Și acum vrem să le utilizeze în programul nostru, iar acest lucru este 148 00:08:28,020 --> 00:08:29,450 cum ne-ar face-o. 149 00:08:29,450 --> 00:08:32,400 Deci, în C, le-ar fi, știți, probabil, o bool b, și l-ați setat pentru a 150 00:08:32,400 --> 00:08:36,549 egală funcția, și apoi treci în argumentele. 151 00:08:36,549 --> 00:08:39,190 >> În Objective-C, este destul de cam același lucru. 152 00:08:39,190 --> 00:08:43,370 Ai NSArray * my_array, și este mergi la egal - acum, singura 153 00:08:43,370 --> 00:08:47,460 Diferența aici este acest lucru obiect, pe care le-am evidențiat în galben, și 154 00:08:47,460 --> 00:08:51,180 după cum puteți vedea, în C, nu e nici un alt cuvânt galben. 155 00:08:51,180 --> 00:08:54,170 Și pentru că metodele aparțin cu un anumit obiect. 156 00:08:54,170 --> 00:08:59,800 Deci, de aceea am nevoie pentru a avea un obiect că, un fel de, solicită această metodă pe 157 00:08:59,800 --> 00:09:04,360 numărul de zero, și apoi NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Orice întrebări cu privire la asta? 159 00:09:05,350 --> 00:09:12,190 >> Vom vedea aceste concepte în acțiune destul de curând, când vom merge într-un demo. 160 00:09:12,190 --> 00:09:13,400 OK. 161 00:09:13,400 --> 00:09:17,170 Acum, vreau să vorbesc un pic scurt despre Xcode 5, care este 162 00:09:17,170 --> 00:09:21,160 mediu de dezvoltare integrat că veți fi de lucru cu. 163 00:09:21,160 --> 00:09:26,160 Știu o mulțime de tine, sau unii dintre voi, nu au Mac-uri, care este o problemă 164 00:09:26,160 --> 00:09:30,490 deoarece Xcode nu este disponibil pentru Windows și PC. 165 00:09:30,490 --> 00:09:32,785 Nu mă întreba de ce, dar probabil - 166 00:09:32,785 --> 00:09:33,730 Da, corporative. 167 00:09:33,730 --> 00:09:35,290 Oricare ar fi. 168 00:09:35,290 --> 00:09:39,360 Dar, oricum, așa că, îmi cer scuze dacă unele dintre tu nu trebuie să descărcați un fel de 169 00:09:39,360 --> 00:09:43,000 mașină virtuală pentru Mac în Pentru a rula Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Dar aceasta este o destul de puturos software de utilizat. 171 00:09:46,460 --> 00:09:51,280 >> Și așa, înainte de a se arunca cu capul în nici un fel de demo, vreau doar să-ți arăt un 172 00:09:51,280 --> 00:09:55,700 imagine a ceea ce arata ca in Xcode dvs. fereastră, și apoi, de asemenea, vorbesc despre 173 00:09:55,700 --> 00:09:57,670 ce acest spațiu este tot. 174 00:09:57,670 --> 00:10:01,600 Deci, e un fel de a învăța cum să utilizați Microsoft Word, cu excepția pe care doriți să 175 00:10:01,600 --> 00:10:04,675 să se familiarizeze cu toate lucruri diferite pe care 176 00:10:04,675 --> 00:10:06,250 se întâmplă aici. 177 00:10:06,250 --> 00:10:11,160 >> Deci, în primul rând, vreau să vă subliniez la bara de instrumente în partea de sus. 178 00:10:11,160 --> 00:10:14,450 Veți vedea că, în partea de sus, veți avea numele de fișier - 179 00:10:14,450 --> 00:10:18,100 sau, de fapt, numele dvs. de proiect și apoi numele fișierului. 180 00:10:18,100 --> 00:10:20,940 Ia act de joc și butoanele de oprire. 181 00:10:20,940 --> 00:10:24,210 Acestea sunt cele pe care le veți fi folosind pentru a rula aplicația pe 182 00:10:24,210 --> 00:10:25,600 simulator - 183 00:10:25,600 --> 00:10:26,550 simulator iOS. 184 00:10:26,550 --> 00:10:29,940 Acest lucru vine în mod automat cu Xcode 5, astfel încât să nu trebuie să vă faceți griji cu privire la 185 00:10:29,940 --> 00:10:32,070 descărcarea de un fel de simulator. 186 00:10:32,070 --> 00:10:34,700 Trebuie doar apăsați butonul de redare și apoi se execută aplicația. 187 00:10:34,700 --> 00:10:39,230 Și poți să te joci cu tine, și veți vedea cum funcționează mai târziu. 188 00:10:39,230 --> 00:10:42,690 >> Apoi, în centrul, desigur, este în cazul în care toate de cod frumos este 189 00:10:42,690 --> 00:10:44,240 de gând să meargă. 190 00:10:44,240 --> 00:10:48,340 Și apoi, pe partea stângă, veți au aceasta, un fel de, dosar - 191 00:10:48,340 --> 00:10:50,340 navigare - 192 00:10:50,340 --> 00:10:53,970 și apoi, veți vedea, de asemenea, că, de-a lungul cu pictograma folder, există o 193 00:10:53,970 --> 00:10:57,680 grămadă de alte icoane acolo, care vor fi utile mai târziu. 194 00:10:57,680 --> 00:11:04,710 >> Și apoi, pe partea dreapta este un utilitar zonă în care se poate lucra cu 195 00:11:04,710 --> 00:11:09,620 unele din obiectele și specifica, tu stiu, ce ar trebui să fie de culoare, ceea ce 196 00:11:09,620 --> 00:11:12,040 font de text ar trebui să fie, et cetera. 197 00:11:12,040 --> 00:11:15,890 Deși, tot ceea ce faci în zona de utilitate, puteți 198 00:11:15,890 --> 00:11:17,480 face în cod, de asemenea. 199 00:11:17,480 --> 00:11:21,630 Și așa, voi merge prin intermediul a două exemple de utilizare, pur și simplu, nici un cod de la 200 00:11:21,630 --> 00:11:23,730 toate - sau cod foarte minim - 201 00:11:23,730 --> 00:11:28,290 versete tot codul, doar pentru ca voi știi ce poate și ce nu se poate face în 202 00:11:28,290 --> 00:11:29,260 Xcode și Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> Și apoi, în final, din partea de jos, aveți zona de depanare. 204 00:11:32,770 --> 00:11:37,270 Deci, nu mai trebuie pentru a rula GDB, et cetera, pe programele. 205 00:11:37,270 --> 00:11:39,180 O face în mod automat pentru tine. 206 00:11:39,180 --> 00:11:42,880 Și puteți, de asemenea, să imprimați chestii de acest domeniu. 207 00:11:42,880 --> 00:11:46,790 Deci, de fapt, mai târziu, vom merge prin mario.c, dacă voi mai aminti 208 00:11:46,790 --> 00:11:49,000 că, în Xcode. 209 00:11:49,000 --> 00:11:50,360 Astfel că ar trebui să fie distractiv. 210 00:11:50,360 --> 00:11:55,870 >> Și apoi, doar să-l aducă înapoi la Objective-C, vreau să subliniez ceea ce 211 00:11:55,870 --> 00:11:57,440 se poate face cu dacă declarațiile. 212 00:11:57,440 --> 00:12:03,160 Deci, știți, pentru că Objective-C este un superset de C, tot ceea ce faci este, 213 00:12:03,160 --> 00:12:06,890 literalmente, la fel ca și C. Doar au mici diferențe. 214 00:12:06,890 --> 00:12:10,810 Deci, veți observa sub forma unei dacă afirmație este tot la fel - ai 215 00:12:10,810 --> 00:12:14,280 în cazul în care, și atunci ai paranteze cu o condiție interiorul, ea și apoi 216 00:12:14,280 --> 00:12:17,150 acolade pentru orice vrei să faci în interiorul de acolo. 217 00:12:17,150 --> 00:12:21,680 >> Cu toate acestea, am vrut să pun acest slide-up aici, pur și simplu pentru a ilustra faptul că, 218 00:12:21,680 --> 00:12:25,680 pentru că avem de-a face cu obiecte de acum, noi va trebui să folosească aceste lucruri 219 00:12:25,680 --> 00:12:31,240 numit ca, este egal cu string, care este, coincidență, o metodă de a 220 00:12:31,240 --> 00:12:33,710 șir sau un obiect NSString. 221 00:12:33,710 --> 00:12:38,600 Deci, cuvântul, în acest caz, este un NSString obiect, si are o metoda numita este 222 00:12:38,600 --> 00:12:44,150 egală cu șir, iar apoi vom trece într-un șir de hard-coded pentru a vedea 223 00:12:44,150 --> 00:12:48,110 dacă acestea sunt egale unul cu altul. 224 00:12:48,110 --> 00:12:51,580 >> Orice întrebări până acum? 225 00:12:51,580 --> 00:12:52,440 OK. 226 00:12:52,440 --> 00:12:56,190 Și, eu vreau să merg peste o declaratie de asemenea. 227 00:12:56,190 --> 00:13:01,420 >> Deci, de exemplu, dacă am vrut să bucla pe lungimea unui șir în C, această 228 00:13:01,420 --> 00:13:03,710 ar trebui să fie familiar pentru tine. 229 00:13:03,710 --> 00:13:07,840 Și, în Objective-C, eu nu vreau pentru a sublinia acest lucru, un fel de, 230 00:13:07,840 --> 00:13:09,235 metoda numita numărul. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Ei bine, de fapt, lasă-mă să ia doar că înapoi. 233 00:13:15,550 --> 00:13:17,200 Numărătoarea este o metodă de matrice. 234 00:13:17,200 --> 00:13:21,070 Cu toate acestea, este mai precis un proprietate de matrice, care este motivul pentru care 235 00:13:21,070 --> 00:13:22,380 se poate utiliza notația punct. 236 00:13:22,380 --> 00:13:25,870 Dar eu nu vreau să intru în prea mult de chestia asta conceptual, vreau doar 237 00:13:25,870 --> 00:13:30,140 să-ți arăt cum ar arata lucrurile ca in Objective-C comparativ cu C. 238 00:13:30,140 --> 00:13:35,400 >> Și, de asemenea, vreau să subliniez faptul că chiar dacă am fost folosind NSUInteger 239 00:13:35,400 --> 00:13:39,860 în fața tuturor i lui mele în Objective-C, puteți utiliza, de asemenea, int, pentru că este int 240 00:13:39,860 --> 00:13:42,290 total valabil în Objective-C, de asemenea. 241 00:13:42,290 --> 00:13:42,475 Da? 242 00:13:42,475 --> 00:13:44,350 >> Audiența: Este doar stilistică, sau este - 243 00:13:44,350 --> 00:13:44,760 >> Rhed SHI: Da. 244 00:13:44,760 --> 00:13:46,060 Deci, după cum veți vedea - 245 00:13:46,060 --> 00:13:49,390 astfel, problema a fost că este doar o chestiune stilistică. 246 00:13:49,390 --> 00:13:54,820 După cum veți vedea, am o, un fel de, stele lucru asterisc în jos în partea de jos, și 247 00:13:54,820 --> 00:13:59,870 care link-ul te duce la un Stack Overflow formează, în cazul în care cineva explica 248 00:13:59,870 --> 00:14:03,640 diferența dintre un int în NSInteger și un NSUInteger. 249 00:14:03,640 --> 00:14:05,540 Și astfel, puteți citi despre asta mai târziu. 250 00:14:05,540 --> 00:14:07,640 Aceste slide-uri vor fi, desigur, disponibile pentru tine. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Să vedem. 253 00:14:11,280 --> 00:14:12,150 Bine, minunat. 254 00:14:12,150 --> 00:14:15,410 Deci, acest lucru este de asemenea inclusă în diapozitiv pentru că am crezut că acest lucru a fost o mare 255 00:14:15,410 --> 00:14:19,370 site-ul web pe care le introduce la Objective-C sintaxa. 256 00:14:19,370 --> 00:14:24,410 Deci, de fapt, de ce nu ne-am muta la Chrome și a verifica afară acest site? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Corect. 259 00:14:31,300 --> 00:14:36,670 Deci, ceea ce vreau să vă arăt baieti aici este această imagine. 260 00:14:36,670 --> 00:14:41,630 Deci, aceasta este, un fel de, va fi ceea ce ai de gând pentru a vedea în interiorul de orice 261 00:14:41,630 --> 00:14:42,890 Fișier Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 De fapt, de ce nu ne ia doar o moment pentru a, un fel de, să ia această inch 264 00:14:51,430 --> 00:14:53,470 >> Deci, această carte - 265 00:14:53,470 --> 00:14:55,880 care este obiectul care avem de a face cu. 266 00:14:55,880 --> 00:14:59,680 Și apoi, e, evident, va fi moștenit de la un alt obiect, dar 267 00:14:59,680 --> 00:15:01,810 nu trebuie să vă faceți griji despre asta. 268 00:15:01,810 --> 00:15:04,430 Și apoi, ea, poate, a unele variabile membre. 269 00:15:04,430 --> 00:15:09,160 >> Cel mai important lucru pe care vreau să-ți arăt este metodele de exemplu, aici. 270 00:15:09,160 --> 00:15:12,670 Deci, metodele de instanță sunt notate prin acest semn minus. 271 00:15:12,670 --> 00:15:15,550 Și apoi, așa cum veți observa, suntem deja încep să vadă paradigma 272 00:15:15,550 --> 00:15:17,670 pentru declarația metoda, nu? 273 00:15:17,670 --> 00:15:22,670 Tipul de retur, numele metodei, și apoi tipul de argument, și 274 00:15:22,670 --> 00:15:24,660 apoi numele argument. 275 00:15:24,660 --> 00:15:29,090 Și acest semn minus înseamnă că este o Metoda exemplu, ceea ce înseamnă că 276 00:15:29,090 --> 00:15:32,270 aceste metode sunt disponibile numai la obiecte care au fost instanțiate. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Pentru contrast care, metode, cu un plus semn în fața lor sunt de clasă 279 00:15:39,100 --> 00:15:43,640 metode, ceea ce înseamnă că puteți apela aceste metode, chiar dacă nu aveți 280 00:15:43,640 --> 00:15:45,970 un obiect creat încă. 281 00:15:45,970 --> 00:15:51,600 Deci, de un exemplu clar, NSString este un clasa. 282 00:15:51,600 --> 00:15:55,850 Și puteți apela, de exemplu, Metodele de clasa pe NSString - 283 00:15:55,850 --> 00:15:58,660 real, cum ar fi, cuvânt NSString. 284 00:15:58,660 --> 00:16:02,050 >> Cu toate acestea, în scopul de a utiliza aceste metode, de fapt, 285 00:16:02,050 --> 00:16:03,460 au nevoie pentru a crea un șir. 286 00:16:03,460 --> 00:16:08,980 De exemplu, șir stele NSString egal în ghilimele, salut lume. 287 00:16:08,980 --> 00:16:10,910 Și apoi, puteți folosi aceste metode - 288 00:16:10,910 --> 00:16:11,990 Metode de exemplu - 289 00:16:11,990 --> 00:16:14,790 pe care șir hello world. 290 00:16:14,790 --> 00:16:17,825 Deci, care este diferența dintre Metode de instanță și metode de clasă. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> Si, ne-am acoperit doar această parte. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Proprietăți sunt un alt lucru, care sunt în interiorul obiectelor, practic. 295 00:16:33,750 --> 00:16:37,530 Și le declara cu la cheie de proprietate. 296 00:16:37,530 --> 00:16:39,940 Aveți aceste opțiuni, aici, pe care o voi explica mai târziu, când 297 00:16:39,940 --> 00:16:43,110 vom merge într-un demo. 298 00:16:43,110 --> 00:16:43,660 Da? 299 00:16:43,660 --> 00:16:43,950 Hi. 300 00:16:43,950 --> 00:16:45,440 >> Audiența: Ai putea mări, te rog? 301 00:16:45,440 --> 00:16:46,130 >> Rhed SHI: Oh, da. 302 00:16:46,130 --> 00:16:46,560 Scuze. 303 00:16:46,560 --> 00:16:49,140 >> Audiența: Mulțumesc. 304 00:16:49,140 --> 00:16:50,005 >> Rhed SHI: Asta ar trebui să fie mult mai bine. 305 00:16:50,005 --> 00:16:51,240 >> Audienta: Da. 306 00:16:51,240 --> 00:16:53,940 Mulțumesc. 307 00:16:53,940 --> 00:16:56,815 >> Rhed SHI: Da, vă rog să îmi amintesc dacă Am uitat pentru a mări sau micșora. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Deci, asta e tot ce am vrut să-ți arăt de - 310 00:17:03,570 --> 00:17:05,970 Uau, asta e mult - 311 00:17:05,970 --> 00:17:06,790 pentru acest site. 312 00:17:06,790 --> 00:17:12,210 Deci, să ne întoarcem la slide-uri noastre. 313 00:17:12,210 --> 00:17:17,819 >> De fapt, acum haideți să o clipă să se scufunde într-un demo. 314 00:17:17,819 --> 00:17:25,490 Deci, vom începe cu o nou proiect Xcode. 315 00:17:25,490 --> 00:17:33,040 Deci, dacă veți deschide Xcode pe toate utilajele dumneavoastra, ar trebui să vă ia ceva 316 00:17:33,040 --> 00:17:36,720 pagină în care se spune, ca, fie deschis la un proiect existent sau un nou 317 00:17:36,720 --> 00:17:39,230 proiect, și ar trebui să faceți clic pe un nou proiect. 318 00:17:39,230 --> 00:17:41,477 Și apoi, ar trebui să ia te la acest ecran. 319 00:17:41,477 --> 00:17:41,593 Da? 320 00:17:41,593 --> 00:17:44,279 >> Audiența: Dacă nu avem un Mac, avem doar un fel de calmezi? 321 00:17:44,279 --> 00:17:46,870 >> Rhed SHI: Sau uite pe cu cineva, da. 322 00:17:46,870 --> 00:17:47,740 Da. 323 00:17:47,740 --> 00:17:50,660 Vă puteți relaxa, de asemenea. 324 00:17:50,660 --> 00:17:51,570 OK. 325 00:17:51,570 --> 00:17:55,410 >> Deci, ceea ce am de gând să facă în primul rând, acum, este, de fapt, vom face o 326 00:17:55,410 --> 00:17:56,600 singură cerere vedere. 327 00:17:56,600 --> 00:18:01,340 Deci, dacă veți observa, ceea ce e minunat despre sprijinul Apple pentru Xcode și 328 00:18:01,340 --> 00:18:05,690 dezvoltatori este că aveți o mulțime de template-uri pentru a lucra cu deja. 329 00:18:05,690 --> 00:18:09,210 Ai putea, de exemplu, face, o aplicare master-detaliu. 330 00:18:09,210 --> 00:18:10,920 Puteți face un joc - 331 00:18:10,920 --> 00:18:13,860 și, de fapt, eu nu voi intra în jocuri, pentru că jocurile sunt o altă poveste 332 00:18:13,860 --> 00:18:15,320 pentru dezvoltare iOS. 333 00:18:15,320 --> 00:18:18,930 Și ei un fel de separat, asa ca nu va merge în care. 334 00:18:18,930 --> 00:18:22,580 >> Apoi, v-ați bazat pe pagina aplicații. 335 00:18:22,580 --> 00:18:24,010 Aveți o aplicație tab - 336 00:18:24,010 --> 00:18:29,350 astfel ca, de exemplu, Bank of America probabil, are, ca, un app cu file. 337 00:18:29,350 --> 00:18:32,140 Sunt cei care aveți butoanele de la partea de jos. 338 00:18:32,140 --> 00:18:34,750 Și apoi, ai un kit de joc Sprite. 339 00:18:34,750 --> 00:18:38,670 >> Sau se poate lucra de la zero, care este ceea ce vom face mai târziu. 340 00:18:38,670 --> 00:18:42,470 Dar hai, în primul rând, începe cu o singură cerere vedere. 341 00:18:42,470 --> 00:18:48,590 Apoi, se va cere un nume de produs, și putem face doar de test. 342 00:18:48,590 --> 00:18:50,190 Numele organizației - 343 00:18:50,190 --> 00:18:54,140 astfel, numele organizației, Compania de identificare - 344 00:18:54,140 --> 00:18:58,100 acestea sunt importante, dacă ai de gând pentru a pune app pe App Store. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Altele decât că, codul se va rula absolut în regulă, fără acest lucru. 347 00:19:05,116 --> 00:19:09,940 >> Acest lucru va fi important dacă vrei - deci, în sine, cum ar fi, pune aplicația 348 00:19:09,940 --> 00:19:14,080 pe dvs. de telefon sau ceva, și de testare l, știți, în viața reală - 349 00:19:14,080 --> 00:19:15,360 acest lucru va fi important. 350 00:19:15,360 --> 00:19:20,110 Acest lucru tinde să fie, de obicei, asociate cu un fel de cont de dezvoltator 351 00:19:20,110 --> 00:19:20,970 cu Apple. 352 00:19:20,970 --> 00:19:24,740 >> Și așa, eu știu, probabil, o mulțime de tine nu va avea nici conturi de dezvoltator. 353 00:19:24,740 --> 00:19:26,460 Știu că universitatea are unul. 354 00:19:26,460 --> 00:19:27,630 Cred că CS are unul. 355 00:19:27,630 --> 00:19:32,770 Dar, puteți să-mi e-mail și voi încerca pentru a seama de asta pentru tine. 356 00:19:32,770 --> 00:19:38,210 Dar acum, am pus doar în unele lucruri substituent aici. 357 00:19:38,210 --> 00:19:41,250 >> Și puteți, desigur, aici, alegeți dacă doriți să fie exclusiv în 358 00:19:41,250 --> 00:19:44,410 iPhone, în iPad, sau ambele - 359 00:19:44,410 --> 00:19:46,630 aplicație universală. 360 00:19:46,630 --> 00:19:56,170 Deci, de acum, să facem universal, doar pentru a vedea ambele părți ale platformei. 361 00:19:56,170 --> 00:19:57,120 >> Să vedem. 362 00:19:57,120 --> 00:20:01,510 Deci, chiar acum, am de gând să salveze se într-un fel de dosar. 363 00:20:01,510 --> 00:20:04,500 Nu conteaza unde - ai puteți muta întotdeauna mai târziu. 364 00:20:04,500 --> 00:20:09,380 Și, acum, suntem aduși pentru proiectul nostru Xcode. 365 00:20:09,380 --> 00:20:12,890 Nu mi-aș face griji despre toate astea. 366 00:20:12,890 --> 00:20:17,510 Aș sugera nu atinge nici de acest lucru, dacă nu știi exact ce 367 00:20:17,510 --> 00:20:18,260 ce faci. 368 00:20:18,260 --> 00:20:21,750 Deci, toate acestea, doar ignora cea mai mare parte. 369 00:20:21,750 --> 00:20:26,940 Nu va fi nevoie să-l atingă, și dacă te pui niște lucruri aici, 370 00:20:26,940 --> 00:20:28,600 devine un pic complicat. 371 00:20:28,600 --> 00:20:32,480 >> Deci, de ce nu ne uităm în fișierele de pe 372 00:20:32,480 --> 00:20:34,700 partea stângă în navigatorul nostru. 373 00:20:34,700 --> 00:20:37,060 Aici, avem AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Avem AppDelegate.m Deci, cum veți preaviz, am antet fișiere, care 375 00:20:43,430 --> 00:20:45,720 se încheie în dot h, și ne-am punere în aplicare - 376 00:20:45,720 --> 00:20:46,970 de fapt, lasă-mă să zoom inch 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 Lasă-mă să zoom inch 380 00:20:59,940 --> 00:21:05,810 >> Corect, așa că le-ați antet fișiere și aveți fișiere de implementare. 381 00:21:05,810 --> 00:21:07,060 De fapt - 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 Acesta este un pic ciudat, dar să poarte cu mine. 385 00:21:11,800 --> 00:21:16,140 Apoi, pentru că ne-am ales un singur punct de vedere cerere, vom fi 386 00:21:16,140 --> 00:21:17,340 de lucru cu storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Deci, storyboard este ceva ca Apple a venit cu pentru a ajuta cu adevărat 388 00:21:22,140 --> 00:21:26,550 dezvoltatorii prototip rapid aplicațiile lor. 389 00:21:26,550 --> 00:21:29,410 Deci, acest lucru este în cazul în care puteți crea o aplicație fără a scrie o 390 00:21:29,410 --> 00:21:31,710 o singură linie de cod. 391 00:21:31,710 --> 00:21:35,390 Cu toate acestea, în nostru singură vedere cerere, facem, desigur, au un 392 00:21:35,390 --> 00:21:41,270 fișier pentru punctul nostru de vedere, care este un controler vedere. 393 00:21:41,270 --> 00:21:45,150 Deci, avem antet și fișier de punere în aplicare, aici. 394 00:21:45,150 --> 00:21:52,350 >> Și, am de gând pentru a micșora acum, deoarece vom avea nevoie pentru a lucra în rezumat. 395 00:21:52,350 --> 00:21:55,190 Deci, aici e punctul nostru de vedere. 396 00:21:55,190 --> 00:22:00,120 Dacă ne-am, pur și simplu, rulați aplicația chiar acum, nu e prea interesant se întâmplă. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Deci, veți vedea acest ecran alb. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> Și, în zona noastră utilități, putem adăuga o grămadă de lucruri diferite pentru a-l. 401 00:22:14,010 --> 00:22:19,290 Deci, atunci când ai de a face cu ecrane în iOS, vedere controlorii sunt 402 00:22:19,290 --> 00:22:23,150 obiecte care încapsulează, un fel de, opiniile dumneavoastră. 403 00:22:23,150 --> 00:22:26,980 Deci, un controler vedere întotdeauna are o proprietate numita vedere. 404 00:22:26,980 --> 00:22:29,610 Și acest punct de vedere, de obicei, conține, stii, ceea ce 405 00:22:29,610 --> 00:22:30,810 Vreau să văd pe un ecran. 406 00:22:30,810 --> 00:22:39,210 >> Deci, ei bine, hai să începem prin a pune, poate, poate o etichetă. 407 00:22:39,210 --> 00:22:41,450 Deci, să punem o etichetă pe acolo - 408 00:22:41,450 --> 00:22:44,080 stick-l la mijloc. 409 00:22:44,080 --> 00:22:49,560 Deci, acum că am făcut clic pe eticheta, am poate merge în inspectorul de proprietăți 410 00:22:49,560 --> 00:22:51,510 și începe să schimbe valoarea sa. 411 00:22:51,510 --> 00:22:55,040 Să-l numim CS50 Culori. 412 00:22:55,040 --> 00:22:58,220 >> Și, eu pot schimba, de asemenea, fontul. 413 00:22:58,220 --> 00:23:02,630 Astfel, în loc de sistem, care este a face implicit, putem face un obicei. 414 00:23:02,630 --> 00:23:03,770 Ne poate schimba - 415 00:23:03,770 --> 00:23:06,453 știți, UltraLight, face 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 Și apoi, ne putem face cutia noastră mai mare. 418 00:23:11,370 --> 00:23:14,410 >> Audiența: Credeți că puteți mări în doar un pic mai mult, poate? 419 00:23:14,410 --> 00:23:14,810 >> Rhed SHI: Da? 420 00:23:14,810 --> 00:23:16,196 OK. 421 00:23:16,196 --> 00:23:17,450 >> Audiența: Doar atingeți? 422 00:23:17,450 --> 00:23:19,020 >> Rhed SHI: Să vedem. 423 00:23:19,020 --> 00:23:20,382 Face acest lucru? 424 00:23:20,382 --> 00:23:22,270 >> Audiența: trece Doar Xcode? 425 00:23:22,270 --> 00:23:23,520 >> Rhed SHI: Sigur. 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 Minunat. 429 00:23:26,275 --> 00:23:27,072 >> Audiența: Eticheta sub? 430 00:23:27,072 --> 00:23:28,920 Eticheta? 431 00:23:28,920 --> 00:23:29,480 >> Rhed SHI: Ce-i asta? 432 00:23:29,480 --> 00:23:32,050 >> Audiența: Ce drop-down a fost sub eticheta? 433 00:23:32,050 --> 00:23:35,170 >> Rhed SHI: Deci, întrebarea a fost, ceea ce drop-down a fost sub eticheta? 434 00:23:35,170 --> 00:23:37,260 Acesta ar trebui, pur și simplu, fie sub aici. 435 00:23:37,260 --> 00:23:39,330 Cred că e un lucru cub. 436 00:23:39,330 --> 00:23:40,910 Dar, de obicei, acest lucru este implicit - 437 00:23:40,910 --> 00:23:43,250 Mă duc jos aici până când am găsi o etichetă. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Da. 440 00:23:47,730 --> 00:23:48,950 >> Deci, acum, ne-am eticheta nostru. 441 00:23:48,950 --> 00:23:51,040 Să-l centru. 442 00:23:51,040 --> 00:23:56,410 Xcode și ne dă instrucțiuni pentru obiecte de centrare. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Deci, acum să executați din nou codul nostru. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Acolo mergem. 447 00:24:08,800 --> 00:24:10,310 Deci, ne-am CS50 Culori. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 Și acum, hai să punem un buton pe acolo, nu? 450 00:24:15,420 --> 00:24:17,480 Pentru că vrem să facem această interactiv. 451 00:24:17,480 --> 00:24:19,410 Deci, hai să punem un buton aici. 452 00:24:19,410 --> 00:24:39,020 Și vom numi acest buton "robinet aici pentru a continua. "Vom centru, de asemenea, 453 00:24:39,020 --> 00:24:39,990 De fapt, este deja centrat. 454 00:24:39,990 --> 00:24:40,630 Da. 455 00:24:40,630 --> 00:24:43,130 >> Deci, acum avem un buton. 456 00:24:43,130 --> 00:24:53,000 Și dacă vom rula din nou, vom pentru a avea un buton de drăguț aici. 457 00:24:53,000 --> 00:24:56,520 Și eu pot faceți clic pe el, dar nu se face nimic, pentru că nu am făcut 458 00:24:56,520 --> 00:24:58,500 ceva cu butonul încă. 459 00:24:58,500 --> 00:25:01,740 >> Deci, haideți să creeze un alt punct de vedere, nu? 460 00:25:01,740 --> 00:25:04,160 Deci, să spunem că vreau să atingeți care buton și vreau să 461 00:25:04,160 --> 00:25:05,730 du-te la o altă pagină - 462 00:25:05,730 --> 00:25:06,820 un alt punct de vedere. 463 00:25:06,820 --> 00:25:14,440 Ceea ce am de gând să faceți este, eu pot crea un controler de vedere, corect? 464 00:25:14,440 --> 00:25:19,690 Acum voi faceți clic pe butonul meu, și apoi, cel mai important lucru este, am de gând să 465 00:25:19,690 --> 00:25:20,910 faceți clic pe - sau - 466 00:25:20,910 --> 00:25:23,660 da, de control apăsați pe tastatura mea. 467 00:25:23,660 --> 00:25:24,880 Control. 468 00:25:24,880 --> 00:25:27,005 Faceți clic pe butonul, și apoi trageți. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Deci, nu uitați să țineți apăsată tasta de control. 471 00:25:33,550 --> 00:25:35,160 Hai să facem asta din nou. 472 00:25:35,160 --> 00:25:40,930 Deci, ține de control, faceți clic și trageți pentru ceea ce vrei sa faci. 473 00:25:40,930 --> 00:25:41,520 OK. 474 00:25:41,520 --> 00:25:43,610 >> Și acum, am mai multe opțiuni aici. 475 00:25:43,610 --> 00:25:47,900 Pot fie împinge, sau pot face o modal, sau pot face un obicei. 476 00:25:47,900 --> 00:25:50,900 Push este numai în cazul în care aveți un controler de navigare. 477 00:25:50,900 --> 00:25:54,270 Chiar acum, primul nostru de vedere controler nu este în interiorul de orice 478 00:25:54,270 --> 00:25:55,610 controler de navigare. 479 00:25:55,610 --> 00:25:59,500 Deci, controlerul de navigare este cea care vă oferă pe butonul înapoi pe 480 00:25:59,500 --> 00:26:03,910 app iOS cazul în care aveți, știți, că partea de sus, un fel de, bar gros - 481 00:26:03,910 --> 00:26:06,480 unde poti sa te duci înapoi, sau înainte, et cetera. 482 00:26:06,480 --> 00:26:07,740 Chiar acum, nu am asta. 483 00:26:07,740 --> 00:26:11,050 Și astfel, de aceea eu nu pot face o împinge. 484 00:26:11,050 --> 00:26:12,480 >> Deci, am făcut clic pe împinge accidental, aici. 485 00:26:12,480 --> 00:26:16,480 Și, de fapt, să executați codul, și ar trebui să accident de pe mine. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Numai dacă apăs butonul deși, așa - 488 00:26:22,960 --> 00:26:23,420 dreapta. 489 00:26:23,420 --> 00:26:26,480 Deci, acest lucru este rău. 490 00:26:26,480 --> 00:26:31,330 >> Și, după cum puteți vedea, aici, ne-am au mesajul de eroare. 491 00:26:31,330 --> 00:26:35,460 Deci, "segues Push poate fi utilizat numai atunci când controler sursă este gestionat de către o 492 00:26:35,460 --> 00:26:40,700 exemplu de controlor de navigare UI. " Deci, pentru că aceasta nu a fost în interiorul unei 493 00:26:40,700 --> 00:26:44,030 controler de navigare, Nu am putut face asta. 494 00:26:44,030 --> 00:26:48,782 >> Deci, chiar acum, mă duc înapoi la folder, merge înapoi la storyboard. 495 00:26:48,782 --> 00:26:51,680 >> Audiența: Ce este navigarea controler, din nou? 496 00:26:51,680 --> 00:26:55,260 >> Rhed SHI: Deci, acum vă voi arăta. 497 00:26:55,260 --> 00:26:56,200 Să vedem. 498 00:26:56,200 --> 00:27:00,510 Deci, am de gând să faceți clic pe acest punct de vedere controlor, și apoi am de gând să merg 499 00:27:00,510 --> 00:27:03,920 până la produs - 500 00:27:03,920 --> 00:27:06,240 de fapt, nu, îmi pare rău - editor. 501 00:27:06,240 --> 00:27:08,360 Și am de gând să merg în - 502 00:27:08,360 --> 00:27:09,350 De fapt, am faceți clic pe ea? 503 00:27:09,350 --> 00:27:10,070 Nu. 504 00:27:10,070 --> 00:27:11,080 Acolo mergem. 505 00:27:11,080 --> 00:27:16,270 Am de gând să meargă în sus, în editor, du-te în jos de a încorpora în, și apoi de navigare 506 00:27:16,270 --> 00:27:17,520 controler. 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 Și, spațiul de lucru meu arata foarte murdar, asa ca hai sa curat asta. 510 00:27:27,750 --> 00:27:29,000 Deci, toate acestea sunt storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 Și în acest fel - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, nu mai - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Eu pot construi rapid ceva ca aceasta. 517 00:27:50,860 --> 00:27:53,020 Și apoi, acum pot merge înapoi, știi? 518 00:27:53,020 --> 00:27:55,730 >> Dar aceasta este un fel de plictisitor, nu? 519 00:27:55,730 --> 00:28:03,020 Deci, ceea ce vreau să fac este, nu vreau pentru a face, pur și simplu, o vedere 520 00:28:03,020 --> 00:28:03,870 controler. 521 00:28:03,870 --> 00:28:07,720 Să spunem că am vrut să fac de fapt o vizualizare tabel de control, așa că am putea pune în 522 00:28:07,720 --> 00:28:12,110 unele culori frumoase, în masă. 523 00:28:12,110 --> 00:28:16,210 >> Deci, acum că m-am pus în opinia mea masă controler, am nevoie să-l conectați din nou 524 00:28:16,210 --> 00:28:18,560 din acest buton pentru a vedere controler. 525 00:28:18,560 --> 00:28:21,780 Așa că am nevoie de a face controlul meu, clic, lucru trage din nou. 526 00:28:21,780 --> 00:28:27,318 Și acum pot să fac împinge, pentru că am încorporați în interiorul unui controler de navigare. 527 00:28:27,318 --> 00:28:32,210 >> Audiența: controler de navigare doar vă permite să meargă din loc în loc? 528 00:28:32,210 --> 00:28:33,540 >> Rhed SHI: Da. 529 00:28:33,540 --> 00:28:38,670 Deci, mai multe punct de vedere tehnic, este un obiect în care - 530 00:28:38,670 --> 00:28:43,150 astfel, în interiorul de navigare obiect controler, ea 531 00:28:43,150 --> 00:28:44,780 ține evidența de o matrice. 532 00:28:44,780 --> 00:28:48,300 Și că matrice deține tot ulterioare vizualiza controlere. 533 00:28:48,300 --> 00:28:51,560 De aceea, atunci când apăsați din nou, ea merge înapoi la pagina anterioară. 534 00:28:51,560 --> 00:28:55,260 Deoarece sistemul de control de navigare obiect, sau codul de care are grijă de 535 00:28:55,260 --> 00:28:58,890 acest obiect, are o serie pe care o păstrează urmări aceste controlere vedere, și 536 00:28:58,890 --> 00:29:01,870 poate atunci, știți, DQ punctul de vedere controler și vă va oferi înapoi 537 00:29:01,870 --> 00:29:02,750 unul anterior. 538 00:29:02,750 --> 00:29:05,200 >> Deci, aceasta este de chestii tehnice, dar - 539 00:29:05,200 --> 00:29:07,505 și vă voi arăta mai târziu în cod, dacă avem timp. 540 00:29:07,505 --> 00:29:10,270 Sunt un fel de a rula pe timp, dar - 541 00:29:10,270 --> 00:29:15,610 >> Deci, cu scopul de masă, ceea ce putem face este - 542 00:29:15,610 --> 00:29:18,440 Este, de obicei, setat automat a dinamic Prototype - 543 00:29:18,440 --> 00:29:20,640 am de gând să-l Celule statice face, altfel vom 544 00:29:20,640 --> 00:29:22,920 rula în unele probleme. 545 00:29:22,920 --> 00:29:28,470 >> Și apoi, să spunem că am de gând pentru a avea o secțiune. 546 00:29:28,470 --> 00:29:31,000 Deci, secțiuni este ca - 547 00:29:31,000 --> 00:29:35,160 dacă le-ați văzut vreodată app muzică, atunci când aveți artiști, secțiuni ar fi 548 00:29:35,160 --> 00:29:37,830 fie o prin Z's - 549 00:29:37,830 --> 00:29:38,780 scrisorile - 550 00:29:38,780 --> 00:29:42,600 și apoi, știți, individul rânduri ar fi numele de artist. 551 00:29:42,600 --> 00:29:47,460 Și astfel, ceea ce e bine aici, este că eu pot accesa toate din interiorul obiectelor 552 00:29:47,460 --> 00:29:50,430 de storyboard mea prin acest drop-down meniu, de asemenea. 553 00:29:50,430 --> 00:29:56,600 >> Deci, am de gând să faceți clic pe sectiunea mea, si eu vreau, stii, poate cinci rânduri. 554 00:29:56,600 --> 00:30:00,770 Și apoi, în interiorul fiecărui rând, Vreau să pun o etichetă. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 Și am de gând pentru a apela acest albastru. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 Și apoi, vreau să pun o vedere UI, te stiu, poate pentru, ca, o cutie mica. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Astfel încât să pot arăta oamenilor o previzualizare a culorii. 561 00:30:28,710 --> 00:30:34,150 Și Mă voi întoarce la proprietate și schimba culoarea la, oh, eu nu fac 562 00:30:34,150 --> 00:30:35,510 Știu, asta. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> Și apoi, observa, de asemenea, aici, când am accesoriile, pot avea o mulțime 565 00:30:43,150 --> 00:30:46,160 dintre diferitele accesorii pe care le vezi de obicei. 566 00:30:46,160 --> 00:30:55,250 Indicatorul de divulgare, detaliile, sau verifica marca, sau pur și simplu doar detalii. 567 00:30:55,250 --> 00:30:59,080 Deci, poate că putem face, cum ar fi, o dezvăluire indicator, de exemplu. 568 00:30:59,080 --> 00:31:03,540 >> Și apoi, de ce nu am lua aceste, copie lipiți-le, și le-a pus în 569 00:31:03,540 --> 00:31:06,740 masă următorul rând. 570 00:31:06,740 --> 00:31:08,115 Deci, putem apela acest galben. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 Și am putea avea de a extinde acest lucru. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Să fac galben. 575 00:31:17,290 --> 00:31:20,610 Și în acest fel, putem copia lipiți drumul nostru în jos. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Ce a fost? 578 00:31:25,370 --> 00:31:26,620 Purpuriu. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Deci, acestea sunt toate CS50 tipic Culorile pe care le-ați văzut în clasă - 581 00:31:34,740 --> 00:31:37,160 de fapt, îmi pare rău - 582 00:31:37,160 --> 00:31:38,410 sau pe site-ul web. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Să sperăm că voi puteți vedea ceea ce fac aici. 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 Ultima. 588 00:31:58,490 --> 00:32:02,040 >> Audiența: Cum ai adăuga rândul inițial? 589 00:32:02,040 --> 00:32:04,740 >> Rhed SHI: Deci, întrebarea a fost, cum am adăuga rândul inițial? 590 00:32:04,740 --> 00:32:07,500 M-am dus în această secțiune tabel - sau toate acestea pot 591 00:32:07,500 --> 00:32:09,200 selectați secțiunea de masa - 592 00:32:09,200 --> 00:32:11,250 și apoi, aici, am actualizat numărul de rânduri. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> Și, permiteți-mi să sperăm că acest lucru funcționează. 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 Să vedem dacă merge. 598 00:32:32,870 --> 00:32:34,000 Oh, perfect, minunat. 599 00:32:34,000 --> 00:32:35,300 OK. 600 00:32:35,300 --> 00:32:40,330 În timp ce am fost construirea demo-ul meu, unele lucrurile nu s-au aliniat, astfel, multumesc pentru 601 00:32:40,330 --> 00:32:42,510 aplauzele. 602 00:32:42,510 --> 00:32:42,920 >> Da. 603 00:32:42,920 --> 00:32:44,770 Deci, să vedem. 604 00:32:44,770 --> 00:32:47,550 Vom face acest lucru doar pentru a face nouă totul - sau, de fapt, hai să 605 00:32:47,550 --> 00:32:51,420 rândul său, toate acestea în divulgare indicatori. 606 00:32:51,420 --> 00:32:55,790 Și apoi, ce vreau să vă arăt, de asemenea, a fost cum pot lua fiecare dintre cei 607 00:32:55,790 --> 00:32:59,230 rânduri de masă și le-au interacționeze - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 Nu. 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 De asemenea, vreau să vă arăt - 613 00:33:07,230 --> 00:33:13,080 aici, eu pot pune titlul meu controler de navigare, corect? 614 00:33:13,080 --> 00:33:17,090 Deci, de fapt, veți observa, de îndată ce am încorporat acest punct de vedere controler de interior 615 00:33:17,090 --> 00:33:22,010 a controlerului de navigare, vom vedea aceasta bara de navigare în partea de sus a noastră 616 00:33:22,010 --> 00:33:25,340 reprezentare storyboard de un controler de vedere. 617 00:33:25,340 --> 00:33:29,270 Și astfel, acest lucru ne dă, ca, vizual, un fel de, ghid de ecran nostru vizibil. 618 00:33:29,270 --> 00:33:34,360 Acest lucru este, evident, va fi bara de navigare. 619 00:33:34,360 --> 00:33:40,950 >> Și ceea ce vreau să fac mai repede, acum, se pune într-un alt - 620 00:33:40,950 --> 00:33:45,880 astfel încât acest punct de vedere tabel controler am făcut de a lua una dintre acestea și trăgând-o 621 00:33:45,880 --> 00:33:49,800 aici, și asta e ceea ce mi-a permis să rapid, într-adevăr, de a crea o vizualizare tabel 622 00:33:49,800 --> 00:33:50,850 controler. 623 00:33:50,850 --> 00:33:54,100 Dacă avem timp, deși, veți a se vedea că, programatic, e un 624 00:33:54,100 --> 00:33:57,660 pic mai dificil de a crea un tabel vedere controler, pentru că nu există 625 00:33:57,660 --> 00:34:02,520 o serie de metode care sunt necesar pentru tine de a, un fel de, scrie 626 00:34:02,520 --> 00:34:07,130 în ordine pentru vizualizarea de masă controler pentru a fi afișate corect. 627 00:34:07,130 --> 00:34:15,340 >> Cu toate acestea, vreau doar să vă arăt, acum, un exemplu de unde, dacă iau acest lucru, 628 00:34:15,340 --> 00:34:15,920 de exemplu - 629 00:34:15,920 --> 00:34:18,290 I-am pus într-un alt vedere controler. 630 00:34:18,290 --> 00:34:27,320 Și acum, să zicem vreau să controleze Alt prima mea albastru 631 00:34:27,320 --> 00:34:28,980 rând masa de aici. 632 00:34:28,980 --> 00:34:31,070 Și vreau să numesc acest albastru. 633 00:34:31,070 --> 00:34:32,570 Și apoi - 634 00:34:32,570 --> 00:34:34,159 Să vedem. 635 00:34:34,159 --> 00:34:41,050 Sunt la vedere acum, și eu pot schimba fundalul la albastru. 636 00:34:41,050 --> 00:34:45,945 >> Și astfel, notificare, aici, acest drop-down meniu, de asemenea, vă oferă o ierarhie a tuturor 637 00:34:45,945 --> 00:34:47,040 de aceste obiecte. 638 00:34:47,040 --> 00:34:50,530 Deci, un lucru important de reținut, aici, este că toate aceste lucruri, aici - 639 00:34:50,530 --> 00:34:54,330 acest punct de vedere tabel de control, masa vedere, vizualizare tabel secțiune, vizualizare tabel 640 00:34:54,330 --> 00:34:57,169 celulelor - toate acestea sunt obiecte, în cod. 641 00:34:57,169 --> 00:35:03,752 Deci, știți, o etichetă chiar acum este în curs de vizualizarea de conținut, etc. 642 00:35:03,752 --> 00:35:05,020 Așa mai departe și așa mai departe. 643 00:35:05,020 --> 00:35:08,765 >> Deci, dacă vom rula acest cod, ne-am Ar trebui să vedeți ceva - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 să vedem dacă asta - da. 646 00:35:17,870 --> 00:35:18,670 Deci, aici vom merge. 647 00:35:18,670 --> 00:35:22,120 Dar, dacă nu facem asta, nici unul de aceste lucruri de lucru. 648 00:35:22,120 --> 00:35:22,500 Corect? 649 00:35:22,500 --> 00:35:23,800 Deci, funcționează doar pe asta. 650 00:35:23,800 --> 00:35:29,100 Și, de dragul de timp, nu voi du-te în, știi, punerea 651 00:35:29,100 --> 00:35:29,770 în jos pe celelalte. 652 00:35:29,770 --> 00:35:32,020 Și acest lucru este sfârșitul, un fel de, storyboard - 653 00:35:32,020 --> 00:35:33,400 ceea ce am vrut să arăt te pentru storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> Și, eu nu am un exemplu lucrat, de fapt, chiar aici. 656 00:35:43,490 --> 00:35:48,090 Deci, acesta este rezumat pe care am făcut anterior. 657 00:35:48,090 --> 00:35:52,740 Deci, după cum puteți vedea, aceasta a fost controlor meu de navigare. 658 00:35:52,740 --> 00:35:57,040 Apoi am avut primul meu de vedere controler, apoi am avut meu de vedere de masă de control, 659 00:35:57,040 --> 00:35:58,980 și apoi am avut toate acestea - 660 00:35:58,980 --> 00:36:01,180 deci anterior, am făcut ceva foarte diferit. 661 00:36:01,180 --> 00:36:04,450 Deci, scuză aceste lucruri. 662 00:36:04,450 --> 00:36:07,930 Probabil voi curăța mai târziu, înainte de L-am trimit la producție. 663 00:36:07,930 --> 00:36:12,800 >> Dar, dacă vom rula aceasta, vom vedea că toate opțiunile sunt 664 00:36:12,800 --> 00:36:14,050 disponibile pentru noi. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Doar că nu a făcut fundaluri aceste culori. 667 00:36:21,320 --> 00:36:26,510 Deci, cererea frumos simplu. 668 00:36:26,510 --> 00:36:28,340 >> Acum, haideți să încercăm să abordeze acest programatic. 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 Deci, pentru a face acest lucru, vom doar de gând pentru a începe un nou proiect Xcode. 672 00:36:37,570 --> 00:36:41,920 Vom face o cerere gol face acum, pentru că nu vrem să aibă 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Deci, eu sunt pur și simplu limitarea mine pentru a nu utiliza oricare din storyboard, și o 675 00:36:46,590 --> 00:36:49,170 aplicare gol nu va da-mi un storyboard. 676 00:36:49,170 --> 00:36:52,256 Acest lucru este doar pentru a preveni eu de la inselat. 677 00:36:52,256 --> 00:36:54,428 Să vedem. 678 00:36:54,428 --> 00:36:55,360 Așteaptă. 679 00:36:55,360 --> 00:36:55,960 Am făcut - 680 00:36:55,960 --> 00:36:56,448 Da. 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 >> Corect. 684 00:37:09,180 --> 00:37:16,790 Deci, aici, am rămas cu nimic altceva decât cod. 685 00:37:16,790 --> 00:37:19,460 Deci, lasă-mă să mute această fereastră puțin peste. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Corect. 688 00:37:22,260 --> 00:37:28,160 După cum puteți vedea aici, numai fișierele suntem dat sunt AppDelegate.h și punct 689 00:37:28,160 --> 00:37:30,500 m, iar noi nu avem mai storyboard. 690 00:37:30,500 --> 00:37:39,580 >> Deci, dacă vom rula aceasta, suntem încă de gând să ajunge la ecranul alb, mulțumesc lui Dumnezeu. 691 00:37:39,580 --> 00:37:42,280 OK - ecran alb, dar nimic altceva. 692 00:37:42,280 --> 00:37:45,260 Și, aici este partea importantă. 693 00:37:45,260 --> 00:37:47,810 Acest lucru este în cazul în care se întâmplă acțiunea. 694 00:37:47,810 --> 00:37:51,410 În versiunile anterioare, nu există de obicei, nici un cod de aici, dar 695 00:37:51,410 --> 00:37:55,600 storyboard prevede, în esență codul pentru această parte. 696 00:37:55,600 --> 00:37:57,470 Nu voi intra în detalii cu privire la modul. 697 00:37:57,470 --> 00:38:02,890 >> Și ceea ce vrem să facem acum este, ne-o dorim pentru a merge în aici, iar acest spațiu mic 698 00:38:02,890 --> 00:38:05,050 începe crearea din nou aplicația noastră. 699 00:38:05,050 --> 00:38:06,092 Așa - 700 00:38:06,092 --> 00:38:06,318 da? 701 00:38:06,318 --> 00:38:07,450 >> Audiența: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> Rhed SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Da, sigur. 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 Voi fi tastarea, astfel încât aceasta nu ar trebui să contează prea mult. 707 00:38:17,380 --> 00:38:17,940 OK. 708 00:38:17,940 --> 00:38:22,720 >> Deci, în primul rând, amintiți-vă am vrut să creăm un controler de navigare, corect? 709 00:38:22,720 --> 00:38:27,090 Și, de asemenea, după cum puteți vedea aici, Xcode face o treabă foarte mare de 710 00:38:27,090 --> 00:38:28,070 auto-umplere. 711 00:38:28,070 --> 00:38:31,650 Deci, după cum veți observa, numele tot ceea ce este mult mai mult decât 712 00:38:31,650 --> 00:38:33,910 de obicei, dar Xcode se umple pentru tine. 713 00:38:33,910 --> 00:38:35,710 Deci, eu pot doar să apăsați Enter. 714 00:38:35,710 --> 00:38:40,180 >> Deci, vreau să creeze o navigare UI controler pointer, și pot să-l numesc 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 Acum, ce fac acum? 718 00:38:44,470 --> 00:38:49,510 După acest semn egal, am nevoie pentru a, în primul rând, a crea în interiorul de memorie. 719 00:38:49,510 --> 00:38:53,790 Deci, am de gând să fac NavigationController alloc - 720 00:38:53,790 --> 00:38:56,640 deci, acest lucru este similar cu malloc, că voi folosite în C - 721 00:38:56,640 --> 00:38:58,400 și apoi, am de gând să-l init. 722 00:38:58,400 --> 00:39:03,670 >> Deci, este foarte important ca orice obiect pe care le creați, pe care doriți să 723 00:39:03,670 --> 00:39:04,940 alloc și init-l. 724 00:39:04,940 --> 00:39:08,600 Asta o să-l creeze și instantialize în interiorul de memorie, și 725 00:39:08,600 --> 00:39:10,480 acum îl puteți folosi. 726 00:39:10,480 --> 00:39:10,780 În regulă? 727 00:39:10,780 --> 00:39:14,360 Dacă nu faci asta, obiect dumneavoastră nu nu exista, și veți rula într-un buchet 728 00:39:14,360 --> 00:39:17,290 de probleme. 729 00:39:17,290 --> 00:39:20,250 >> Și apoi, vreau să creați un controler de vedere, corect? 730 00:39:20,250 --> 00:39:25,580 Deci, vreau să creați un UIViewController stele - 731 00:39:25,580 --> 00:39:29,620 astfel, tot ceea ce este un indicator în Objective-C, și am de gând să fac 732 00:39:29,620 --> 00:39:31,600 ceva asemănător, aici - 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 >> Și atunci ce am de gând să faceți este, eu sunt O să - așa, amintiți-vă, atunci când am făcut 737 00:39:43,450 --> 00:39:45,360 embed în controler de navigare? 738 00:39:45,360 --> 00:39:46,920 Acesta este modul în care o faci in cod. 739 00:39:46,920 --> 00:39:54,550 Ai de gând să faci navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> Audiența: [inaudibil]. 742 00:39:57,636 --> 00:39:59,030 Se va întâmpla acest lucru pentru noi, sau -? 743 00:39:59,030 --> 00:40:00,080 >> Rhed SHI: Oh, da. 744 00:40:00,080 --> 00:40:00,550 Nu. 745 00:40:00,550 --> 00:40:02,740 Ea mă place mai bine. 746 00:40:02,740 --> 00:40:04,670 Nu, acesta va lucra pentru tine, de asemenea. 747 00:40:04,670 --> 00:40:06,700 Deci, acestea sunt toate metodele. 748 00:40:06,700 --> 00:40:10,400 Deci pushViewController este o metodă, și de asemenea, mai precis, este un 749 00:40:10,400 --> 00:40:13,590 exemplu metoda de UI controler de navigare. 750 00:40:13,590 --> 00:40:20,030 Pentru că am avut de a crea navigare mea UI stele controler, și apoi am 751 00:40:20,030 --> 00:40:24,510 pot apela acest pushViewController pe meu exemplu specific de o navigare UI 752 00:40:24,510 --> 00:40:25,010 controler. 753 00:40:25,010 --> 00:40:29,490 >> Audiența: Nu trebuie să facem exact cuvânt, sau nu mai există deja pentru ea? 754 00:40:29,490 --> 00:40:31,380 >> Rhed SHI: Da, pentru că este o metodă. 755 00:40:31,380 --> 00:40:32,200 E ca o funcție. 756 00:40:32,200 --> 00:40:33,330 E ca printf. 757 00:40:33,330 --> 00:40:34,390 E ca scanf. 758 00:40:34,390 --> 00:40:36,250 E ca strcompare. 759 00:40:36,250 --> 00:40:40,310 Doar că nu știe ce ar putea să doriți să tip, și observați că-l voi mereu 760 00:40:40,310 --> 00:40:42,740 veni cu lucruri care sunt permis din punct de vedere pentru tine. 761 00:40:42,740 --> 00:40:47,620 Deci, în cazul în care nimic nu apare aici, atunci ceva este greșit. 762 00:40:47,620 --> 00:40:50,550 >> Deci, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Deci, acum, vreau să împingă meu nou creat 764 00:40:52,580 --> 00:40:56,850 UIViewController, și apoi, animate - 765 00:40:56,850 --> 00:40:57,470 poate că nu. 766 00:40:57,470 --> 00:41:00,110 Deoarece acest lucru va fi la prima vedere controler. 767 00:41:00,110 --> 00:41:03,210 Vreau să spun, chiar dacă am făcut animat, probabil că nu va apărea, pentru că 768 00:41:03,210 --> 00:41:05,050 este primul ecran. 769 00:41:05,050 --> 00:41:06,540 >> Și amintiți-vă paranteze. 770 00:41:06,540 --> 00:41:08,850 Deci, amintiți-vă cum am folosit paranteze? 771 00:41:08,850 --> 00:41:11,870 Și în interiorul paranteze, obiect solicită o metodă - 772 00:41:11,870 --> 00:41:15,910 deci obiectivul nostru este de navigare controler, iar metoda este un impuls 773 00:41:15,910 --> 00:41:17,210 vedere controler animat. 774 00:41:17,210 --> 00:41:21,920 Și a vedea cum este nevoie în două argumente, și acestea sunt separate de, un fel de, 775 00:41:21,920 --> 00:41:24,390 cuvinte, și un colon. 776 00:41:24,390 --> 00:41:28,300 Deci, Objective-C, încearcă să-l frumos și ușor pentru tine de a citi cu voce tare - 777 00:41:28,300 --> 00:41:33,020 Codul dvs. - și l-au semi, un fel de, face sens. 778 00:41:33,020 --> 00:41:37,150 >> Cu toate acestea, a face doar asta nu este de ajuns. 779 00:41:37,150 --> 00:41:39,780 Permiteți-mi micșora acum. 780 00:41:39,780 --> 00:41:44,210 Face doar acest lucru nu este suficient pentru a obține ceea ce avem pentru a anterior. 781 00:41:44,210 --> 00:41:48,580 Deci, aici, veți observa că există de fapt, nu va fi nici un fel de 782 00:41:48,580 --> 00:41:50,190 bar, aici, nu? 783 00:41:50,190 --> 00:41:54,680 Nu există nici o bara de navigare, ceea ce înseamnă că noi încă nu am ajuns. 784 00:41:54,680 --> 00:41:58,850 >> Și putem testa asta, de asemenea, de, probabil, schimbarea fondul 785 00:41:58,850 --> 00:42:00,460 ViewController, corect? 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 Deci, a se vedea cum ViewController nu au avut o culoare de fundal, chiar dacă am 790 00:42:07,690 --> 00:42:08,780 a vrut să-l acces? 791 00:42:08,780 --> 00:42:14,080 Și asta pentru că ViewController este un container pentru vedere. 792 00:42:14,080 --> 00:42:19,490 Deci, ea are o vedere de proprietate, care apoi are o culoare de fundal. 793 00:42:19,490 --> 00:42:25,510 >> Și, eu pot seta, un fel de plictisitor, sunând la culoare 794 00:42:25,510 --> 00:42:28,130 pe obiect UIColor. 795 00:42:28,130 --> 00:42:33,210 Deci, o notificare aici, redColor este o metodă. 796 00:42:33,210 --> 00:42:36,750 Este o metodă de clasă de UIcolor. 797 00:42:36,750 --> 00:42:40,820 Pentru că nu am avut de a crea un exemplu real al unei UIColor în ordine 798 00:42:40,820 --> 00:42:42,020 pentru a apela metoda pe ea. 799 00:42:42,020 --> 00:42:45,050 Eu doar, pur și simplu, a numit-o pe numele de tip asemănător. 800 00:42:45,050 --> 00:42:49,620 Eu, ca, a numit-o pe int, dacă Int avea, cum ar fi, o metodă de a-l, de exemplu. 801 00:42:49,620 --> 00:42:52,380 >> Și așa, dacă vom rula acest cod, vom observă că fundalul este 802 00:42:52,380 --> 00:42:53,540 de fapt, nu roșu. 803 00:42:53,540 --> 00:42:54,790 Este încă alb. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 Și cum o putem obține în jurul valorii, care este, observați cum nu e self.window. 806 00:43:04,550 --> 00:43:08,260 Adică, cum ar fi, recipientul final pentru aplicația dumneavoastră. 807 00:43:08,260 --> 00:43:11,630 Acesta este cel final care conține totul de pe ecran, pentru o 808 00:43:11,630 --> 00:43:13,650 iPhone sau aplicații iPad. 809 00:43:13,650 --> 00:43:20,970 >> Și, în mod convenabil, self.window are această proprietate numit 810 00:43:20,970 --> 00:43:22,650 rootViewController. 811 00:43:22,650 --> 00:43:26,480 Și care va fi indicatorul a la prima vedere controler interior 812 00:43:26,480 --> 00:43:27,270 din aplicația. 813 00:43:27,270 --> 00:43:32,000 Deci, ce vrem să facem aici, acum, este pentru a seta ca egal la navigare nostru 814 00:43:32,000 --> 00:43:32,710 controler. 815 00:43:32,710 --> 00:43:33,760 Corect? 816 00:43:33,760 --> 00:43:37,490 Pentru că, tehnic, de navigație controler este primul nostru de vedere 817 00:43:37,490 --> 00:43:38,770 controler. 818 00:43:38,770 --> 00:43:46,160 Ea ține evidența de o serie de alte vedere controlere, și am împins această 819 00:43:46,160 --> 00:43:49,810 vedere controler în care matrice în controlerul de navigare. 820 00:43:49,810 --> 00:43:52,640 >> Deci, tu nu vrei să faci asta. 821 00:43:52,640 --> 00:43:54,225 Asta nu ar fi chiar te ajuta. 822 00:43:54,225 --> 00:43:58,040 Pe care doriți să faceți acest lucru, dacă ai vrut să faci un controler de navigație, care mai 823 00:43:58,040 --> 00:44:01,100 dintre voi, probabil, va pentru că veți dori la, un fel de, au un fel de, 824 00:44:01,100 --> 00:44:04,840 cum ar fi, meniu pentru a reveni la sau unele pagina de start pentru a reveni la, mai degrabă decât o 825 00:44:04,840 --> 00:44:05,470 ecran gol. 826 00:44:05,470 --> 00:44:05,920 Da? 827 00:44:05,920 --> 00:44:11,460 >> Audiența: Este incomod pentru tine pentru a mări - 828 00:44:11,460 --> 00:44:12,710 >> Rhed SHI: Da. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Deci, da. 831 00:44:15,720 --> 00:44:22,370 Acesta este codul, și acum haideți să-l testeze. 832 00:44:22,370 --> 00:44:27,920 >> Deci, aici vom merge. 833 00:44:27,920 --> 00:44:29,170 Magie. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Deci, OK. 836 00:44:32,690 --> 00:44:34,420 Mulțumesc. 837 00:44:34,420 --> 00:44:35,000 OK. 838 00:44:35,000 --> 00:44:38,690 Deci, acum, ce vrem să facem este - așa, suntem un fel de limitat, aici, nu? 839 00:44:38,690 --> 00:44:45,130 Am putea scrie potențial totul în interiorul acestui singură funcție. 840 00:44:45,130 --> 00:44:48,470 Dar, asta nu e modul în care dezvoltarea iOS de obicei, funcționează. 841 00:44:48,470 --> 00:44:53,030 >> Deci, ceea ce am de gând să faci este, suntem va crea unele fișiere noi. 842 00:44:53,030 --> 00:44:57,110 Dar, mai precis, vom a crea o altă clasă Objective-C, sau 843 00:44:57,110 --> 00:44:58,010 un alt obiect - 844 00:44:58,010 --> 00:45:00,700 clasă și obiecte sunt interschimbabile aici. 845 00:45:00,700 --> 00:45:06,460 Și, iată cum am putut, eventual, a crea o altă clasă de controlere U. 846 00:45:06,460 --> 00:45:12,030 >> Deci, este o sub-clasă, așa cum veți observa, aici, este o sub-clasă a 847 00:45:12,030 --> 00:45:15,910 Vedere UI controler, dar eu pot numim orice alt nume aici. 848 00:45:15,910 --> 00:45:19,400 Am putea numi acest CS50, am putea numi acest punct de vedere controler, am putea numi 849 00:45:19,400 --> 00:45:21,640 acest bla vedere controler - 850 00:45:21,640 --> 00:45:22,400 tot ce vreau. 851 00:45:22,400 --> 00:45:24,140 Aceasta este doar numele de clasa. 852 00:45:24,140 --> 00:45:27,020 Cu toate acestea, va fi important pentru că, în esență, ce fac 853 00:45:27,020 --> 00:45:29,720 aici este, creez un alt nume de clasă. 854 00:45:29,720 --> 00:45:34,140 Deci, aceasta va fi, cum ar fi, unele un fel de tip sau a unui obiect. 855 00:45:34,140 --> 00:45:35,910 Deci, ar trebui să fie un pic generic. 856 00:45:35,910 --> 00:45:37,225 Acesta nu va fi foarte specifice. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> Și, de asemenea, vreau să subliniez aceste două opțiuni. 859 00:45:44,480 --> 00:45:48,430 Pentru că facem totul în interiorul cod, uneori este mult mai ușor 860 00:45:48,430 --> 00:45:53,540 pentru a aduce într-un fișier de interfață, astfel încât Am posibilitatea să glisați și să fixați literalmente, ca 861 00:45:53,540 --> 00:45:54,960 am facut mai devreme cu storyboard - 862 00:45:54,960 --> 00:45:57,810 Știi, o etichetă, sau un buton, sau orice altceva. 863 00:45:57,810 --> 00:46:01,950 Și astfel, xibs sunt fișiere care vă permit să se că, și tu trebuie să-l cârlig 864 00:46:01,950 --> 00:46:04,310 la acest fișier controler de vedere. 865 00:46:04,310 --> 00:46:06,540 >> Deci, am de gând să în mod deliberat nu a verifica acest lucru. 866 00:46:06,540 --> 00:46:12,510 De obicei, mi-ar verifica acest lucru, și dacă am doar a facut acest lucru pentru iPhone sau iPad, am 867 00:46:12,510 --> 00:46:16,340 ar verifica acest lucru și pur și simplu au o pentru, știți, iPhone sau iPad. 868 00:46:16,340 --> 00:46:19,750 Dar din moment ce eu fac universal, am de gând pentru a crea două dintre cele mai târziu. 869 00:46:19,750 --> 00:46:22,220 Deci, am de gând să în mod deliberat debifați această. 870 00:46:22,220 --> 00:46:23,940 >> Acest lucru este, de asemenea, foarte important. 871 00:46:23,940 --> 00:46:27,490 O mulțime de ori, am avut bug-uri în cazul în care acest lucru nu a fost verificat. 872 00:46:27,490 --> 00:46:31,930 Și astfel, în mod evident, acest fisier nu este, un fel de, cum ar fi, inclus sau importate 873 00:46:31,930 --> 00:46:33,740 în interiorul acestui folder de test. 874 00:46:33,740 --> 00:46:38,180 Și astfel, codul meu nu are absolut nici o idee de existența acestui dosar, și 875 00:46:38,180 --> 00:46:41,080 care provoacă o mulțime de durere și ore de depanare. 876 00:46:41,080 --> 00:46:44,360 Dar, asigurați-vă că doar acest lucru este verificat atât de că, știți, obiectivul acestei 877 00:46:44,360 --> 00:46:47,510 fișier este pentru această aplicație. 878 00:46:47,510 --> 00:46:48,310 >> OK. 879 00:46:48,310 --> 00:46:51,680 Deci, acum am creat două fișiere noi. 880 00:46:51,680 --> 00:46:54,050 Și aceste fișiere arata destul de gol. 881 00:46:54,050 --> 00:46:59,550 Și, de fapt, de asemenea, să continue pe de crearea fișierelor XIb. 882 00:46:59,550 --> 00:47:03,690 Deci, în prealabil, am fost în Cocoa Touch drop-down. 883 00:47:03,690 --> 00:47:06,880 Acum, am de gând să merg în Utilizatorului Interfata touch, și după cum puteți vedea, am 884 00:47:06,880 --> 00:47:08,120 poate crea un storyboard. 885 00:47:08,120 --> 00:47:11,710 >> Deci, chiar am început cu un gol cerere, pot folosi în continuare un 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Deși, acesta devine dificil din punct de vedere de modul în care doriți să vă conectați 888 00:47:15,480 --> 00:47:16,820 care la codul. 889 00:47:16,820 --> 00:47:18,230 Deci, eu nu va merge acolo. 890 00:47:18,230 --> 00:47:22,160 >> Dar, ceea ce vrem să facem acum este să creați o vizualizare. 891 00:47:22,160 --> 00:47:25,720 Și puteți alege pentru un iPhone sau un iPad. 892 00:47:25,720 --> 00:47:30,180 Și de obicei, pentru a desemna diferență - dacă faci o 893 00:47:30,180 --> 00:47:31,950 utilizare universală - 894 00:47:31,950 --> 00:47:35,980 vă fie pus un iPhone de subliniere, sau puteți face o Twiddly. 895 00:47:35,980 --> 00:47:36,980 Acesta nu contează cu adevărat. 896 00:47:36,980 --> 00:47:40,890 Este pur și simplu pentru tine să se diferențieze care punct de vedere este pentru dispozitiv care. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> Și așa, acum uite. 899 00:47:44,430 --> 00:47:47,550 Am un ecran care pot lucra cu. 900 00:47:47,550 --> 00:47:53,530 Și astfel, de exemplu, pot pune o etichetă pe aici, știi, și, de asemenea, pot pune 901 00:47:53,530 --> 00:47:54,820 un alt buton aici. 902 00:47:54,820 --> 00:47:58,730 Nu voi deranja schimbare valorile de aici. 903 00:47:58,730 --> 00:48:09,050 >> Dar, ceea ce este important aici este că proprietarul fișierului - 904 00:48:09,050 --> 00:48:13,660 deci, eu sunt în interiorul iPhone vedere, fișier iPhone XIb. 905 00:48:13,660 --> 00:48:18,050 Și în acest domeniu de navigare sau drop-down meniu, vreau să merg la 906 00:48:18,050 --> 00:48:19,090 proprietar fișier. 907 00:48:19,090 --> 00:48:22,630 Și aceasta este într-adevăr pas important aici. 908 00:48:22,630 --> 00:48:27,780 Vreau sa fac vizualizarea de clasă controler, astfel ca si acest fisier este XIb 909 00:48:27,780 --> 00:48:30,030 vor fi asociate cu punctul meu de vedere controler. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 Și nimic din ce fac eu în interiorul meu de vedere controler de programare este 912 00:48:39,360 --> 00:48:42,800 O să se reflecte pe aici. 913 00:48:42,800 --> 00:48:46,270 >> Deci, cu toate acestea, observă că - 914 00:48:46,270 --> 00:48:55,995 De fapt, hai să facem acest punct de vedere albastru fundal, de exemplu. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Sau verde. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 Și apoi, așa că, dacă veți observa, înapoi în acest cod, acest lucru este în cazul în care am ajuns să ne 919 00:49:07,950 --> 00:49:09,200 controler de navigare. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Chiar dacă am făcut acest pas, este încă de gând să fie roșu, nu verde. 922 00:49:18,310 --> 00:49:20,350 Și nu există un motiv. 923 00:49:20,350 --> 00:49:28,090 Este pentru că, atunci când am inited vedere controler nostru, aici - 924 00:49:28,090 --> 00:49:30,010 îmi pare rău, e un pic nebun - 925 00:49:30,010 --> 00:49:34,520 când ne-am inited vedere controler aici, am inited de tipul general 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 Așa că nici măcar nu fac cu această clasă. 929 00:49:40,560 --> 00:49:42,030 >> Deci, amintiți-vă, aceasta este ca o clasă acum. 930 00:49:42,030 --> 00:49:47,160 Acesta poate fi considerat ca un tip, doar ca UIViewController este un tip. 931 00:49:47,160 --> 00:49:51,080 Și în scopul de a utiliza că, ceea ce trebuie să facem este de import-l - 932 00:49:51,080 --> 00:49:52,520 ViewController import - 933 00:49:52,520 --> 00:49:55,750 și, după cum puteți vedea, ea AutoFills-o pentru mine. 934 00:49:55,750 --> 00:49:56,570 Deci, ViewController - 935 00:49:56,570 --> 00:50:02,070 și acum, aici, eu pot schimba acest lucru UIViewController la ViewController. 936 00:50:02,070 --> 00:50:05,050 Și acum, aici, eu pot schimba aceasta a ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Să facem asta din nou. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 E încă roșu. 941 00:50:19,690 --> 00:50:23,370 Și motivul pentru care este încă roșie se datorează faptului că - 942 00:50:23,370 --> 00:50:26,230 woah, ce sa întâmplat acolo? 943 00:50:26,230 --> 00:50:31,500 Ne-am dorit să asocieze această XIb fișier cu vedere controlerul. 944 00:50:31,500 --> 00:50:37,540 Cu toate acestea, în scopul de a face de fapt, că, avem nevoie pentru a merge în această. 945 00:50:37,540 --> 00:50:42,980 Și când vom face init, vrem să facem initWithNibName, iar apoi ne-am dori să 946 00:50:42,980 --> 00:50:48,910 face la șir View_iPhone, de exemplu. 947 00:50:48,910 --> 00:50:51,700 Puteți ignora pachet aici. 948 00:50:51,700 --> 00:50:54,965 >> Și acest lucru se întâmplă pentru a permite ne, de fapt - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, există o problemă. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Corect. 953 00:51:09,980 --> 00:51:17,670 >> Și astfel, există o problemă, deoarece, în fișierul nostru de vedere XIb, avem o etichetă și 954 00:51:17,670 --> 00:51:18,720 avem un buton. 955 00:51:18,720 --> 00:51:23,660 Cu toate acestea, chiar dacă ne-am conectat cei doi, nu e nimic în interiorul 956 00:51:23,660 --> 00:51:27,440 ViewController.h sau ViewController.m care reflectă cele 957 00:51:27,440 --> 00:51:29,160 butoane sau aceste etichete. 958 00:51:29,160 --> 00:51:32,425 Deci, avem nevoie pentru a scrie celor de la drept Proprietățile de vedere controlerului. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Deci, acesta este modul în care declara o proprietate. 961 00:51:39,490 --> 00:51:43,422 Este nevoie în, de obicei, aceste două opțiuni. 962 00:51:43,422 --> 00:51:48,690 În scopul de noi și acest seminar, Aș spune că, în general, 963 00:51:48,690 --> 00:51:52,250 cele mai multe proprietăți sunt nonatomic și reține. 964 00:51:52,250 --> 00:51:55,420 Puteți citi de către Google căutare, știți, diferența dintre 965 00:51:55,420 --> 00:51:58,620 nonatomic și să păstreze pe, tine știu, Google sau ceva. 966 00:51:58,620 --> 00:52:01,090 Și te voi duce la, cum ar fi, stivă Preaplin, în cazul în care oamenii vor avea 967 00:52:01,090 --> 00:52:03,605 răspunsuri pentru diferențele între cei. 968 00:52:03,605 --> 00:52:07,000 Dar de acum, asta e ceea ce ne-am Vreau să fie preocupat de. 969 00:52:07,000 --> 00:52:12,790 >> Și vrem să facem o etichetă UI, stele, și putem să-l numim ceea ce ne dorim. 970 00:52:12,790 --> 00:52:15,710 Putem numi acest lucru, știți, eticheta. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 Si, vom crea un alt una pentru butonul. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 Și amintiți-vă pentru a include asterisc, pentru că avem de-a face cu indicii 975 00:52:29,910 --> 00:52:36,740 destul de mult peste tot în interiorul de Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Cu toate acestea, că nu va mai rezolva problema, după cum puteți vedea aici. 977 00:52:42,110 --> 00:52:50,540 Iar motivul este că, ori de câte ori ne-am doriți să conectați o etichetă fișier XIb sau un 978 00:52:50,540 --> 00:52:55,690 buton pentru a programului, sau antetul și dosar de punere în aplicare, vrem să 979 00:52:55,690 --> 00:52:58,255 adăuga acest bucată de cod - 980 00:52:58,255 --> 00:53:00,610 priză. 981 00:53:00,610 --> 00:53:03,600 Observați că este un cuvânt cheie. 982 00:53:03,600 --> 00:53:07,970 >> Și, de îndată ce am terminat tastarea asta, ar trebui să aibă aceste 983 00:53:07,970 --> 00:53:09,100 două cercuri, aici. 984 00:53:09,100 --> 00:53:11,200 De obicei, ei nu sunt completate inch 985 00:53:11,200 --> 00:53:12,920 Eu nu sunt sigur de ce ei sunt. 986 00:53:12,920 --> 00:53:21,370 Dar, de obicei, va trebui să manual a le conecta prin a merge la această parte a 987 00:53:21,370 --> 00:53:23,530 zona de utilitati. 988 00:53:23,530 --> 00:53:28,430 >> Și astfel, chiar acum, am eticheta mea selectat, și vreau să trageți acest nou 989 00:53:28,430 --> 00:53:33,910 corelarea priză la proprietar dosar meu, și apoi faceți clic pe Etichetă. 990 00:53:33,910 --> 00:53:40,230 Deci, acum, în cele din urmă, această etichetă este conectat la această etichetă. 991 00:53:40,230 --> 00:53:44,950 Și această etichetă este ceea ce am de gând să folosesc programatic pentru a schimba sale 992 00:53:44,950 --> 00:53:49,250 text, fontul, fundal sale culoare, etc. 993 00:53:49,250 --> 00:53:52,430 >> Deci, de ce nu facem aceeași pentru butonul? 994 00:53:52,430 --> 00:53:54,770 Și, după cum veți observa, de pe butonul, E un pic mai complicat. 995 00:53:54,770 --> 00:53:59,060 Pentru ca, vreau sa spun, tu ar trebui să apăsați pe un buton, asa ca are un lot 996 00:53:59,060 --> 00:54:02,950 de opțiuni pentru modul în care utilizatorii poate apăsa pe un buton. 997 00:54:02,950 --> 00:54:06,570 Și apoi, vom vedea mai târziu că ne putem conecta la acest noastră 998 00:54:06,570 --> 00:54:09,140 cod pentru a face să funcționeze. 999 00:54:09,140 --> 00:54:12,770 >> Deci, de acum, deși, vrem să vă conectați acesta a butonului real 1000 00:54:12,770 --> 00:54:13,570 interiorul codul nostru. 1001 00:54:13,570 --> 00:54:19,640 Deci, mergem la noua priza de afiliere, și apoi a face butonul. 1002 00:54:19,640 --> 00:54:22,068 Acum, haideți să ruleze din nou. 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 Nu știu ce se întâmplă aici, acum. 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 Doar un moment, aici. 1010 00:54:58,960 --> 00:55:02,490 >> De fapt, de ce nu am lua o uita-te la un alt exemplu, în 1011 00:55:02,490 --> 00:55:05,800 interesul de timp. 1012 00:55:05,800 --> 00:55:06,200 OK. 1013 00:55:06,200 --> 00:55:10,610 Deci, aici e mai ușor de preparat exemplu pentru ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 După cum puteți vedea aici, am inclus proprietățile pentru 1016 00:55:17,110 --> 00:55:18,460 eticheta și butonul. 1017 00:55:18,460 --> 00:55:20,370 Și apoi, această bucată de cod aici - 1018 00:55:20,370 --> 00:55:21,830 acest IBaction - 1019 00:55:21,830 --> 00:55:27,740 o legătură la acest buton aici. 1020 00:55:27,740 --> 00:55:33,940 Deci, după cum puteți vedea aici, Touch Up Inside este conectat la selectorul 1021 00:55:33,940 --> 00:55:37,390 numit apăsat butonul. 1022 00:55:37,390 --> 00:55:41,700 >> Deci, putem merge de fapt, prin mișcare din nou, aici, prin luarea Touch Up 1023 00:55:41,700 --> 00:55:48,750 În interiorul și trăgându-l la Fișier Proprietarul, și apoi 1024 00:55:48,750 --> 00:55:51,570 faceți clic pe butonul apăsat. 1025 00:55:51,570 --> 00:55:52,820 Acum, haideți să ruleze codul nostru. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Deci, acum, acest buton funcționează acum și ne va duce la următoarea pagină. 1028 00:56:02,020 --> 00:56:08,430 >> Și, în termeni de vedere controler noastre, aceasta este o bucată de cod care a avut 1029 00:56:08,430 --> 00:56:10,000 de îngrijire a butonului apăsat. 1030 00:56:10,000 --> 00:56:14,260 Și este important de observat aici, că Am creat un alt tip de vedere 1031 00:56:14,260 --> 00:56:16,330 controler numit un tabel vedere controler. 1032 00:56:16,330 --> 00:56:19,900 Deci, acest lucru a fost similară la spate în storyboard, când am tras una din 1033 00:56:19,900 --> 00:56:23,450 aceste controlere vezi tabelul în storyboard. 1034 00:56:23,450 --> 00:56:24,470 Creez un alt 1035 00:56:24,470 --> 00:56:30,000 >> Pointer la vizualizare tabel controler, alloc și init-ING, și apoi a face 1036 00:56:30,000 --> 00:56:34,490 controler de navigație de sine punct, împinge ViewController, acest nou 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 Și am stabilit ca animația să da, pentru că acum interiorul app mea, și eu 1039 00:56:39,750 --> 00:56:45,670 vrei sa vezi de fapt, animația va din pagina de start a tabelului 1040 00:56:45,670 --> 00:56:46,920 vedere controler. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> Audiența: Nu vă mai faceți griji de colectare a gunoiului? 1043 00:56:51,110 --> 00:56:51,840 >> Rhed SHI: Ce-i asta? 1044 00:56:51,840 --> 00:56:54,740 Nu. 1045 00:56:54,740 --> 00:56:58,970 Deci, întrebarea a fost, ai de a lucra cu colectarea gunoiului? 1046 00:56:58,970 --> 00:57:03,470 Deci, Xcode 4 a avut ca ARC, care este numărare de referință automat. 1047 00:57:03,470 --> 00:57:06,120 Și așa, de obicei, atunci când începe un nou proiect, ar trebui să verificați, pentru că 1048 00:57:06,120 --> 00:57:09,440 nimeni nu vrea cu adevărat să se ocupe de eliberarea de memorie și alte chestii. 1049 00:57:09,440 --> 00:57:13,720 Dar cred că în Xcode 5, nu există nici măcar această opțiune pe noul proiect. 1050 00:57:13,720 --> 00:57:16,750 Deci, în mod automat face asta pentru tine. 1051 00:57:16,750 --> 00:57:16,920 Da? 1052 00:57:16,920 --> 00:57:20,970 >> Audiența: Poți să exportați un PDF în storyboard-ul? 1053 00:57:20,970 --> 00:57:22,020 >> Rhed SHI: Da, cu siguranta. 1054 00:57:22,020 --> 00:57:28,180 Deci, toate acestea vor fi incluse în codul sursă, astfel încât voi puteți verifica 1055 00:57:28,180 --> 00:57:30,730 proiectului Xcode real pentru ea. 1056 00:57:30,730 --> 00:57:31,105 Da? 1057 00:57:31,105 --> 00:57:35,944 >> Audiența: Dar, vreau sa spun, ca, pot imprima un PDF cu storyboard meu? 1058 00:57:35,944 --> 00:57:38,920 Dacă vreau doar să exporte imagini pentru a arăta pe cineva. 1059 00:57:38,920 --> 00:57:39,160 >> Rhed SHI: Oh, da. 1060 00:57:39,160 --> 00:57:41,980 Cred că, poate, puteți doar să ia o captură de ecran. 1061 00:57:41,980 --> 00:57:44,350 Da, și trimite-le un ecran împușcat sau ceva. 1062 00:57:44,350 --> 00:57:45,600 Da. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Deci, să vedem. 1065 00:57:50,570 --> 00:57:56,470 În interesul de timp, cred asta e tot ce pot acoperi azi. 1066 00:57:56,470 --> 00:57:59,600 Dar, eu știu că e, de fapt, doar abia atinge suprafața de iOS 1067 00:57:59,600 --> 00:58:00,370 dezvoltare. 1068 00:58:00,370 --> 00:58:05,630 Deci, vă rugăm să nu ezitați să mă contactați dacă aveți orice întrebări despre iOS 1069 00:58:05,630 --> 00:58:07,000 dezvoltare. 1070 00:58:07,000 --> 00:58:12,840 Și, sperăm, voi fi în măsură pentru a curăța o parte din codul sursa 1071 00:58:12,840 --> 00:58:16,830 fișiere de cod, astfel încât veți avea unele exemple foarte frumos de a lucra cu. 1072 00:58:16,830 --> 00:58:21,020 >> Altele decât că, dacă voi sunt de gând la CS50 Hackathon, eu pot sau 1073 00:58:21,020 --> 00:58:25,730 să nu fie acolo, și eu pot ajuta cu unele de dezvoltare iOS, de asemenea. 1074 00:58:25,730 --> 00:58:26,980 Deci, mulțumesc foarte mult, băieți. 1075 00:58:26,980 --> 00:58:31,168