1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu Liu: Uy, paano kung ito pagpunta sa lahat? 3 00:00:13,590 --> 00:00:20,250 At ito ay ang iOS App programming ng layunin c seminar. 4 00:00:20,250 --> 00:00:21,520 At ang aking pangalan ay Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Isa akong Lowell junior ngayon, sa pagtuon sa computer science. 6 00:00:26,114 --> 00:00:28,030 Kaya sa seminar na ito ako pagpunta sa magturo sa iyo guys 7 00:00:28,030 --> 00:00:30,770 Medyo tungkol sa kung paano gumawa ng isang app. 8 00:00:30,770 --> 00:00:33,030 Ayos, maging abala para dito. 9 00:00:33,030 --> 00:00:36,790 >> Kaya bago namin kahit na magsimula diving sa aktwal na programming bahagi, 10 00:00:36,790 --> 00:00:41,840 pag-usapan natin talaga lang mabilis kung bakit maaaring gusto mong bumuo ng isang iOS app? 11 00:00:41,840 --> 00:00:43,940 Bakit kaya kahanga-hangang ay iOS? 12 00:00:43,940 --> 00:00:47,250 Kaya ang unang problema, ang unang bagay na Kahanga-hanga para sa atin, 13 00:00:47,250 --> 00:00:51,190 lalo na bilang isang CS50 -aaral, ay ang iOS 14 00:00:51,190 --> 00:00:55,860 Ginagamit ng Layunin C. Well, may ng isang bagong wika na tinatawag Swift, 15 00:00:55,860 --> 00:00:58,260 ngunit hindi namin pagpunta sa gamitin iyon sa seminar. 16 00:00:58,260 --> 00:01:01,540 Kung ikaw ay interesado sa Swift, may ay isang malayang seminar tungkol na. 17 00:01:01,540 --> 00:01:05,590 Ngunit Layunin C ay isa lamang isang superset ng C. Kahulugan 18 00:01:05,590 --> 00:01:10,230 na ang lahat ng bagay na ginagamit mo sa C maaari ay isinalin sa Layunin C 19 00:01:10,230 --> 00:01:11,630 napaka madali. 20 00:01:11,630 --> 00:01:15,730 >> Tulad ng maaaring makita ka sa ibang pagkakataon, na sa katunayan mayroong ilang mga napaka basic syntax, ay 21 00:01:15,730 --> 00:01:19,790 talaga eksaktong kapareho, C at Layunin C. Kaya, 22 00:01:19,790 --> 00:01:22,860 mula noong kinuha CS50 up ito ngayon, mayroon ka 23 00:01:22,860 --> 00:01:26,500 Alam Layunin C, hindi bababa sa 40%. 24 00:01:26,500 --> 00:01:30,720 Gayundin, Apple ay may talaga malakas na API para sa iOS. 25 00:01:30,720 --> 00:01:33,750 Maraming ng talagang baliw mga bagay na maaari mong gawin sa mga ito. 26 00:01:33,750 --> 00:01:36,760 Isa rito ay isang tao talaga ng isang iOS app 27 00:01:36,760 --> 00:01:40,600 para sa pagkontrol ng mga kotse, na ay medyo kawili-wiling. 28 00:01:40,600 --> 00:01:42,610 Marahil ang isang helicopter ay mas kapana-panabik. 29 00:01:42,610 --> 00:01:47,020 Ngunit iyon kung gaano kamakapangyarihan ang iOS API ay maaaring maging. 30 00:01:47,020 --> 00:01:49,340 >> At tulad na maaaring mayroon ka may korte out sa ngayon, 31 00:01:49,340 --> 00:01:53,000 ng stack overflow ay marahil ang isa sa mga ang pinakamahalagang online na mapagkukunan 32 00:01:53,000 --> 00:01:54,250 magagamit mo. 33 00:01:54,250 --> 00:01:58,090 At magandang balita, para sa bawat -iisang problema maaari mong posibleng 34 00:01:58,090 --> 00:02:01,840 isipin na habang ang pagbuo ng iyong huling proyekto sa Layunin C, 35 00:02:01,840 --> 00:02:05,910 doon ay malamang na stack overflow sagot. 36 00:02:05,910 --> 00:02:07,420 Ito ay lamang kahanga-hangang. 37 00:02:07,420 --> 00:02:12,780 Bilang karagdagan sa mga iyon, iOS ay talagang isang platform 38 00:02:12,780 --> 00:02:16,260 kung saan maaari mong maabot ang isang malaking madla na may kaunti pagsisikap. 39 00:02:16,260 --> 00:02:20,170 Hindi ito i Android, kung saan lahat ng bagay ay medyo fragmented. 40 00:02:20,170 --> 00:02:22,540 >> Lahat iOS ay pinag-isang. 41 00:02:22,540 --> 00:02:25,920 At hangga't lumikha ka isang app para sa iPhone, 42 00:02:25,920 --> 00:02:31,260 maaari mong napaka madaling port na sa iPad, iPad mini, o iba't-ibang mga laki ng iPhone. 43 00:02:31,260 --> 00:02:33,050 Ito ang lahat ay talagang maginhawa. 44 00:02:33,050 --> 00:02:36,430 At ito ay lamang talagang magandang para sa impressing ang iyong mga kaibigan. 45 00:02:36,430 --> 00:02:38,920 Maaari mong pindutin nang matagal lang ng iPhone at sabihin sa iyong mga kaibigan hey, 46 00:02:38,920 --> 00:02:40,250 ito ay ang app na magsagawa ko. 47 00:02:40,250 --> 00:02:43,860 Maaari mong gawin na para sa anumang desktop apps, na kung saan ay mabait. 48 00:02:43,860 --> 00:02:48,870 >> Ang lahat ng mga karapatan, ngayon sabihin aktwal na makakuha ng sa wika Layunin C. 49 00:02:48,870 --> 00:02:52,910 Kaya bakit hindi simulan namin gamit ang ang ilang mga talagang pangunahing syntax. 50 00:02:52,910 --> 00:02:57,410 Tulad ng aking nabanggit bago Layunin C Ito ay isa lamang superset ng C. 51 00:02:57,410 --> 00:03:01,860 Kaya ng maraming pangunahing syntax ay ang parehong aktwal na eksaktong. 52 00:03:01,860 --> 00:03:06,150 Ang pagdeklara ng variable at pagdaragdag ng dalawang variable-sama 53 00:03:06,150 --> 00:03:09,440 ay eksakto kung paano namin ginawa sa Mario. 54 00:03:09,440 --> 00:03:11,140 Walang mga bagong dito. 55 00:03:11,140 --> 00:03:17,370 >> Gayundin, ang mga nangungupahan para sa loop at kundisyon din ang parehong. 56 00:03:17,370 --> 00:03:22,370 Maaari mong gawin ang isang para sa loop tulad mo na ginawa sa isang Mario [hindi marinig]. 57 00:03:22,370 --> 00:03:26,280 At maaari mong gawin kundisyon tulad ng kung ano ang 58 00:03:26,280 --> 00:03:29,240 Na-paggawa sa iyong nakaraang mga set p. 59 00:03:29,240 --> 00:03:33,400 Gayunpaman, Layunin C Hindi ganap C, 60 00:03:33,400 --> 00:03:36,640 at mayroong isang bagay na ay uri ng kakaiba tungkol dito. 61 00:03:36,640 --> 00:03:42,340 >> Ang unang isa sa pagiging na kapag ikaw ay paggawa ng C programming, karaniwan mong tawagan 62 00:03:42,340 --> 00:03:46,310 isama at pagkatapos ng isang pangalan ng library. 63 00:03:46,310 --> 00:03:49,860 Ngunit sa Layunin C tawagan ka import na iyon. 64 00:03:49,860 --> 00:03:53,100 Talaga sinasabi ng pag-andar, iba't-ibang mga pangalan lamang. 65 00:03:53,100 --> 00:03:55,940 At ang mga string ay talaga Medyo kakaiba. 66 00:03:55,940 --> 00:03:58,250 Maaari mong makita na ang unang bagay na uri ng kakaiba 67 00:03:58,250 --> 00:04:04,190 ay na mayroon kang isang magandang weird-- sorry-- mayroon kang isang magandang kakaiba NS 68 00:04:04,190 --> 00:04:04,960 mag-sign sa paglipas dito. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 At ang pangalawang bagay na uri ng kakaiba 71 00:04:09,160 --> 00:04:14,090 ay mayroon kang isang pag-sign sa bago talaga deklarasyon ng string. 72 00:04:14,090 --> 00:04:19,209 Kaya ang pag-sign sa isa lamang Sumisimbolo na isang string ay hindi lamang isang string, 73 00:04:19,209 --> 00:04:20,880 ito ay talagang isang bagay. 74 00:04:20,880 --> 00:04:22,780 Kami ay pagpunta sa ipaliwanag na mamaya kaya huwag 75 00:04:22,780 --> 00:04:25,800 gulat kung wala ka maunawaan kung ano ang ibig sabihin nito ay. 76 00:04:25,800 --> 00:04:29,980 At pag-print sa console Medyo iba't ibang dahil sa C tinatawag naming printf, 77 00:04:29,980 --> 00:04:33,350 ngunit sa Layunin C tinatawag naming [hindi marinig]. 78 00:04:33,350 --> 00:04:35,640 >> Maaaring nag-iisip ka kung ano ang iyon. 79 00:04:35,640 --> 00:04:38,070 Iyon ay isa lamang printf, isang lang ibang wika. 80 00:04:38,070 --> 00:04:41,370 Eksaktong kapareho sa paggamit, nang eksakto ang parehong pag-andar. 81 00:04:41,370 --> 00:04:44,060 Well ito lumiliko out na Layunin C talaga 82 00:04:44,060 --> 00:04:50,040 May isang NS prefix sa halos ang lahat ng bagay, ang bawat pangunahing uri ng data, 83 00:04:50,040 --> 00:04:52,690 nsstring, nsarray, nsdictionary. 84 00:04:52,690 --> 00:04:56,340 Ang dahilan sa pagiging na NS talaga ang ibig sabihin ay Kasunod na Hakbang, 85 00:04:56,340 --> 00:04:59,980 kung saan ay isang kumpanya na Steve Trabaho ay itinatag, 86 00:04:59,980 --> 00:05:03,960 kung saan ay isang kumpanya na kung saan ang wika Layunin C ay ipinanganak. 87 00:05:03,960 --> 00:05:06,140 Kaya ito ay isa lamang tradisyon. 88 00:05:06,140 --> 00:05:09,010 Alam ko ito nang kaunti kakaiba, ngunit ito ay Apple. 89 00:05:09,010 --> 00:05:16,840 >> Kaya isang bagay na kahit weirder kaysa doon ay isang katangian na pagpapahayag. 90 00:05:16,840 --> 00:05:22,600 Ito ay ibang-iba mula sa kung ano tayo makita sa C, dahil dito ito talaga 91 00:05:22,600 --> 00:05:25,190 ay hindi mukhang C na ngayon. 92 00:05:25,190 --> 00:05:28,810 Ano mayroon kang here-- ng paraan na ito ay hindi isang bullet point, 93 00:05:28,810 --> 00:05:30,690 ito ay isang minus sign. 94 00:05:30,690 --> 00:05:36,440 Mayroon kang isang minus sign panaklong walang bisa at pagkatapos ay ang pangalan ng function. 95 00:05:36,440 --> 00:05:38,450 Ipagpalagay natin na lamang kung namin Mayroon kumusta mundo, pagkatapos ay 96 00:05:38,450 --> 00:05:42,820 ang uri ng return ay magiging walang bisa dahil wala kaming bumalik. 97 00:05:42,820 --> 00:05:44,680 >> Ano ang nakukuha ng talagang kakaiba ay na kapag ikaw ay 98 00:05:44,680 --> 00:05:49,580 pagkakaroon ng higit sa isang parameter pagpasa sa isang parehong pag-andar na 99 00:05:49,580 --> 00:05:53,870 magiging talagang kakaiba tulad ng ipinapakita dito. 100 00:05:53,870 --> 00:05:58,230 Mayroon kaming isang pangalan ng pamamaraan, tinatawag na addInt sa [hindi marinig] 101 00:05:58,230 --> 00:06:00,370 at kami ay pagpasa sa isang parameter. 102 00:06:00,370 --> 00:06:05,170 Ngunit pagkatapos noon, mayroon kaming higit pangalan paraan ng tawag sa. 103 00:06:05,170 --> 00:06:08,500 At pagkatapos sa kami ay pagpasa ang pangalawang parameter. 104 00:06:08,500 --> 00:06:11,940 Ito ay talagang isang maliit na bit kakaiba, ngunit ang lahat ng mga function na pagdeklara 105 00:06:11,940 --> 00:06:14,770 sundin ang parehong pattern bilang na ito. 106 00:06:14,770 --> 00:06:17,450 >> Mayroon kaming simbolong minus upang magsimula sa. 107 00:06:17,450 --> 00:06:21,550 Ang minus sign maaaring maging isang plus sign minsan batay sa kung anong uri ng paraan ng 108 00:06:21,550 --> 00:06:22,340 ay ito. 109 00:06:22,340 --> 00:06:25,000 Ang Paraan ay isa lamang isa pang pangalan para sa function. 110 00:06:25,000 --> 00:06:26,760 At kami ay pagpunta sa ipaliwanag na sa ibang pagkakataon kapag 111 00:06:26,760 --> 00:06:30,580 kami ay pakikipag-usap tungkol sa bagay nakatuon sa programming. 112 00:06:30,580 --> 00:06:34,300 Una mo munang tukuyin ang return -type sa loob ng panaklong, 113 00:06:34,300 --> 00:06:37,450 pagkatapos nito ay ang pangalan na pamamaraan. 114 00:06:37,450 --> 00:06:40,310 Ikaw ay pagpasa sa isang parameter. 115 00:06:40,310 --> 00:06:44,750 At kung mayroon kang higit parameter kailangan mo upang patagalin ang pangalan ng pamamaraan 116 00:06:44,750 --> 00:06:46,770 at isa lamang magsulat ng isang bagay na higit pa rito. 117 00:06:46,770 --> 00:06:48,090 >> Ito ay maaaring maging anumang nais mo. 118 00:06:48,090 --> 00:06:50,140 Sa aming kaso ito ay may. 119 00:06:50,140 --> 00:06:56,160 Ngunit maaari mong sabihin ng pagtatapos, o o, o abc full bar, anumang gusto mo. 120 00:06:56,160 --> 00:06:59,500 At pagkatapos ay pagkatapos na ikaw ay pagpasa parameter b. 121 00:06:59,500 --> 00:07:01,750 Ito ay isang talagang kakaiba convention ngunit kami ay 122 00:07:01,750 --> 00:07:05,800 pagpunta upang makita kung bakit gusto Apple upang gawin iyon nang masyadong mabilis. 123 00:07:05,800 --> 00:07:10,530 Kaya paano mo tawagin ang function? 124 00:07:10,530 --> 00:07:15,520 Tinatawagan ang isang function sa Layunin C ay naiiba mula sa C. ring 125 00:07:15,520 --> 00:07:18,170 >> Sa totoo lang, pagtawag ng -andar sa Layunin C 126 00:07:18,170 --> 00:07:21,030 ay higit na katulad ng kausap mo sa isang tao. 127 00:07:21,030 --> 00:07:27,030 Narito mayroon kaming sariling, na ay tinatawag na isang bagay. 128 00:07:27,030 --> 00:07:33,830 Naka isa lamang na nagsasabi sa iyo ang object sarili upang sabihin ang "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Iyon ay kung paano tawagin ang function. 130 00:07:36,830 --> 00:07:41,690 Isang bagay at isang pangalan ng pamamaraan pinagsama sa bawat isa. 131 00:07:41,690 --> 00:07:49,600 At ito ay kung saan ang kakatwang mga extension para sa pangalan ng pamamaraan ay talagang sa pag-play. 132 00:07:49,600 --> 00:07:52,150 >> Tingnan natin ang pangalawang halimbawa. 133 00:07:52,150 --> 00:07:56,780 Tinukoy na lang namin ng paraan na tinatawag na addInt sa blah blah blah. 134 00:07:56,780 --> 00:08:00,066 Kaya sa kasong ito kapag tumatawag ka na tukoy [? mensahe?] ito ang nangyayari 135 00:08:00,066 --> 00:08:02,035 upang magmukhang sarili addInt: 10 ng: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Mukhang Ingles. 138 00:08:08,070 --> 00:08:11,980 Kahit na ang pag-andar function ng pagpapahayag ay kakaiba, 139 00:08:11,980 --> 00:08:15,600 sa punto ng Layunin C ni paraan ng pagpapahayag pattern, 140 00:08:15,600 --> 00:08:18,830 ay na kapag tumatawag ka ang function o pamamaraan 141 00:08:18,830 --> 00:08:21,980 ito ay akma sa aktwal na Ingles. 142 00:08:21,980 --> 00:08:25,270 Kaya napaka-intuitive sa sandaling makuha mo ito. 143 00:08:25,270 --> 00:08:28,740 >> Lalo na sa kasong ito, kung saan maaari mong talaga 144 00:08:28,740 --> 00:08:33,010 makita na ang pangalan function ay uri ng nakadokumento ang sarili nito. 145 00:08:33,010 --> 00:08:35,390 Hindi mo kailangang anumang higit pang paliwanag upang makita 146 00:08:35,390 --> 00:08:42,770 kung ano eksakto ang nangyayari, kung ano eksaktong isang parameter paggawa. 147 00:08:42,770 --> 00:08:48,470 Lagpas na, na makipag-usap ng kaunti ipaalam bit tungkol sa bagay na nakatuon sa programming. 148 00:08:48,470 --> 00:08:52,160 Bagay oriented na programming ay isa sa mga pangunahing programming 149 00:08:52,160 --> 00:08:57,110 diskarte o mga pattern na ginagamit ng Layunin C. Layunin C 150 00:08:57,110 --> 00:09:03,110 ay tinatawag na Layunin C, hindi C, para sa isang talagang magandang dahilan. 151 00:09:03,110 --> 00:09:07,560 >> Kaya bago namin makuha sa Layunin C syntax, 152 00:09:07,560 --> 00:09:11,670 Ay talagang mabilis na makita ang Hayaan kung ano ang eksaktong ay isang bagay. 153 00:09:11,670 --> 00:09:15,480 Marahil kami ng isang bagay tulad ng bagay na bago, na 154 00:09:15,480 --> 00:09:19,780 ay tinatawag na struct kapag ikaw ay pagpapatupad ng isang puno o naka-link na listahan 155 00:09:19,780 --> 00:09:25,730 o [? subukan. ?] Kaya, ito ay isa lamang tulad ng isang struct, 156 00:09:25,730 --> 00:09:28,560 ngunit ito ay mas malakas kaysa doon. 157 00:09:28,560 --> 00:09:33,150 Ang isang bagay na may mga pamamaraan at mga katangian. 158 00:09:33,150 --> 00:09:35,310 Mga Paraan ay isa lamang function. 159 00:09:35,310 --> 00:09:39,480 Talaga mga function na ang isang partikular sa isang partikular na bagay. 160 00:09:39,480 --> 00:09:45,440 >> At mga ari-arian ay isa lamang sa field na tinukoy mo sa struct. 161 00:09:45,440 --> 00:09:48,500 Kaya para sa bawat solong bagay na mayroon kaming ilang mga ari-arian 162 00:09:48,500 --> 00:09:53,160 na may ilang mga variable na partikular sa object. 163 00:09:53,160 --> 00:09:57,170 At mayroon kaming ilang mga pag-andar na partikular sa bagay na rin. 164 00:09:57,170 --> 00:10:01,180 At ang function ay tinatawag na mga pamamaraan at ang mga variable ay tinatawag na mga katangian. 165 00:10:01,180 --> 00:10:03,190 Ito ay lamang ng isang magarbong pangalan. 166 00:10:03,190 --> 00:10:10,440 Habang katunayan, bawat solong pagtingin nakikita mo habang binuksan mo ang isang iOS app, 167 00:10:10,440 --> 00:10:17,720 sabihin nating lamang ng Twitter o Facebook, bawat solong view ng nakikita mo ay isang bagay. 168 00:10:17,720 --> 00:10:22,110 At kahit na sa buong app isang bagay na magsimula sa. 169 00:10:22,110 --> 00:10:25,340 Tunay na kagiliw-giliw na konsepto. 170 00:10:25,340 --> 00:10:28,480 >> At bakit gusto namin na bagay nakatuon sa programming? 171 00:10:28,480 --> 00:10:33,530 Kaya maaari mong isipin na kapag programa ito ay makakakuha ng medyo kumplikado. 172 00:10:33,530 --> 00:10:36,400 Sabihin nating lamang kapag ikaw ay pagpapatupad ng chessboard, 173 00:10:36,400 --> 00:10:40,020 ang logic ay pagpunta sa ay talagang kumplikado. 174 00:10:40,020 --> 00:10:43,280 Mayroon kang 36 iba't ibang piraso, upang kung mo 175 00:10:43,280 --> 00:10:48,370 nais na magsulat ng logic para sa lahat 36 iba't ibang mga piraso sa chess, 176 00:10:48,370 --> 00:10:52,150 na magiging ng maraming iba't-ibang mga function at variable. 177 00:10:52,150 --> 00:10:54,070 Ito ay may maraming mga problema. 178 00:10:54,070 --> 00:10:58,980 At marahil ka ng pagpunta sa magsulat ng isang ibang paraan o iba't ibang mga pag-andar 179 00:10:58,980 --> 00:11:03,950 para sa bawat isa sa mga piraso sa eksaktong kontrolin kung ano ang ginagawa nila. 180 00:11:03,950 --> 00:11:08,830 >> Ngunit kung gagawin mo sa bagay na nakatuon sa programming, ang lahat ng mga piraso 181 00:11:08,830 --> 00:11:12,440 maaaring lumilipad ang isip sa isang single bagay. 182 00:11:12,440 --> 00:11:16,111 At ang bagay ay magkakaroon ng ilang mga karaniwang ari-arian, tulad ng kung anong uri ng piraso 183 00:11:16,111 --> 00:11:16,610 ito? 184 00:11:16,610 --> 00:11:17,740 Anong kulay ito? 185 00:11:17,740 --> 00:11:19,480 Paano ito maaaring ilipat? 186 00:11:19,480 --> 00:11:24,660 At sa paraan na ikaw ay may lubos na pinasimple ang logic nito. 187 00:11:24,660 --> 00:11:28,480 Kaya lang talagang mahusay na paraan upang gumawa ng mga kumplikadong mga programa, 188 00:11:28,480 --> 00:11:33,700 at hierarchical relasyon sa loob ng programa, napaka-simple. 189 00:11:33,700 --> 00:11:36,800 Habang kami ay pagpunta upang makita ang bakit masyadong mabilis kapag 190 00:11:36,800 --> 00:11:39,660 talaga naming ginagawa programming-- kapag kami ay talagang 191 00:11:39,660 --> 00:11:42,830 paggawa ng isang S code mga programa session mamaya. 192 00:11:42,830 --> 00:11:48,120 >> Well bilang karagdagan sa na, object oriented na programming 193 00:11:48,120 --> 00:11:50,030 lamang ng maraming masaya. 194 00:11:50,030 --> 00:11:51,990 Nakakuha ka upang idisenyo ang iyong sariling mga bagay. 195 00:11:51,990 --> 00:11:56,080 Nakakuha ka upang magdisenyo ng kung ano ang ginagawa itong parang sa pamamagitan ng iyong sarili. 196 00:11:56,080 --> 00:11:58,250 Walang tamang sagot dito. 197 00:11:58,250 --> 00:12:02,940 At ito ay ganap na kawili-wili. 198 00:12:02,940 --> 00:12:07,270 Kaya sa bagay na nakatuon sa programming, dalawang pangunahing mga konsepto 199 00:12:07,270 --> 00:12:10,130 Magiging klase at halimbawa. 200 00:12:10,130 --> 00:12:13,570 Ang isang klase ay isa lamang isang template para sa object. 201 00:12:13,570 --> 00:12:18,070 At isang instance ay isa lamang isang tukoy na bagay. 202 00:12:18,070 --> 00:12:21,090 >> Sabihin lang sabihin nagsasagawa ka ng isang cookie. 203 00:12:21,090 --> 00:12:24,800 Sa kasong ito, ang bawat solong cookie na aktwal mong tapusin up gamit 204 00:12:24,800 --> 00:12:27,310 ay magiging isang bagay. 205 00:12:27,310 --> 00:12:35,830 Ngunit ang cookie plate na ginagamit mo upang magtapa ang lahat ng mga cookies ay magiging isang klase. 206 00:12:35,830 --> 00:12:37,880 Ang isang klase ay isa lamang ng isang template. 207 00:12:37,880 --> 00:12:46,170 At ang mga halimbawa ay magiging isang tukoy na bagay na nilikha out sa klase na iyon. 208 00:12:46,170 --> 00:12:49,970 >> At isang instance ay lilikhain batay sa klase ng pagpapahayag, 209 00:12:49,970 --> 00:12:56,760 bilang ay namin makita sa ibang pagkakataon slide. 210 00:12:56,760 --> 00:13:00,010 Kaya sabihin aktwal na gawin ang isang tunay na mabilis na halimbawa [hindi marinig]. 211 00:13:00,010 --> 00:13:04,280 Sabihin natin kami ay deklarasyon isang bagay para sa isang pusa. 212 00:13:04,280 --> 00:13:07,930 Dapat have-- bagay sa klase pusa dapat 213 00:13:07,930 --> 00:13:11,260 May ilang mga katangian at mga pamamaraan. 214 00:13:11,260 --> 00:13:17,300 Anong uri ng mga katangian ay dapat na ang have-- klase ay dapat magkaroon ng pusa? 215 00:13:17,300 --> 00:13:20,580 >> Halimbawa, kulay, edad at lahi, ang mga 216 00:13:20,580 --> 00:13:24,440 Magiging variable na partikular sa bawat pusa. 217 00:13:24,440 --> 00:13:27,790 At mga ilang bagay na ginagamit namin upang ilarawan ang isang pusa. 218 00:13:27,790 --> 00:13:31,880 Anong uri ng pamamaraan, o kung ano ang nagagawa ng pusa? 219 00:13:31,880 --> 00:13:37,160 Ang ilang mabilis na mga halimbawa ay maaaring maging habulin mouse, kumain isda o ngiyaw lamang. 220 00:13:37,160 --> 00:13:40,900 Ito ay isang tunay mabilis Halimbawa ng pusa class. 221 00:13:40,900 --> 00:13:46,920 At isang talagang tiyak na pusa object ay magiging isang pusa 222 00:13:46,920 --> 00:13:50,930 kung saan namin tukuyin ang kulay, ang edad at lahi. 223 00:13:50,930 --> 00:13:53,790 >> Sa kasong iyon, ang aming object ay Hindi na isang klase na ngayon. 224 00:13:53,790 --> 00:14:00,010 Kopyahin namin ang template mula sa klase at na aming tinukoy sa bawat partikular na impormasyon 225 00:14:00,010 --> 00:14:04,510 sa partikular na bagay upang gawin itong independent. 226 00:14:04,510 --> 00:14:09,350 At kapag tumatawag ka isang paraan sa loob ng isang object, 227 00:14:09,350 --> 00:14:16,640 Tatawagan ka lang ngiyaw sa bagay, kung saan ay ang pusa nilikha. 228 00:14:16,640 --> 00:14:19,020 >> Marahil ay kang mag-print out isang bagay tulad ng "Hello World! 229 00:14:19,020 --> 00:14:20,000 Ngiyaw. " 230 00:14:20,000 --> 00:14:22,110 Kahanga-cute na. 231 00:14:22,110 --> 00:14:24,500 Ang lahat ng mga karapatan, sabihin lamang kumuha sa ilang mga detalye 232 00:14:24,500 --> 00:14:30,650 at tingnan kung ano ang ginagawa nang eksakto na isalin sa pagiging iOS programming. 233 00:14:30,650 --> 00:14:36,500 Kaya sa iOS programa bawat solong klase ay ipinatupad sa dalawang mga file. 234 00:14:36,500 --> 00:14:41,420 Isa file dito, na ay tinatawag na interface. 235 00:14:41,420 --> 00:14:45,300 Ang isa pang file ay dito, na ay tinatawag na pagpapatupad. 236 00:14:45,300 --> 00:14:48,890 >> Karaniwan ang interface Magkakaroon extension.h 237 00:14:48,890 --> 00:14:51,740 bilang namin nakita sa C aklatan. 238 00:14:51,740 --> 00:14:56,340 At pagpapatupad ng file ay Magiging extension.n. 239 00:14:56,340 --> 00:14:57,260 Ito ay uri ng kakaiba. 240 00:14:57,260 --> 00:15:01,270 Ngunit .n nangangahulugan na aktwal .c, walang pangunahing pagkakaiba sa pagitan ng mga 241 00:15:01,270 --> 00:15:02,100 dalawang. 242 00:15:02,100 --> 00:15:06,650 Kaya sa kasong ito, maaari naming makita na hindi namin pagpapahayag interface, Cat: object. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Iyon ay tinawag na pamana. 245 00:15:13,760 --> 00:15:19,170 Talaga kami inheriting ang pusa klase mula sa klase object. 246 00:15:19,170 --> 00:15:24,790 Kaya ang bawat ari-arian at ang pamamaraan na iyon ay dati tinukoy sa klase object 247 00:15:24,790 --> 00:15:28,560 ay awtomatikong mai tinukoy sa isang klase pusa pati na rin. 248 00:15:28,560 --> 00:15:35,900 >> Bilang karagdagan sa na, tinutukoy namin kulay, lahi, at edad, tatlong variable. 249 00:15:35,900 --> 00:15:39,360 Na aktwal na kamukha isang bagay na nagawa mo na dati. 250 00:15:39,360 --> 00:15:41,770 Mukhang struct. 251 00:15:41,770 --> 00:15:44,950 Iyon ay isa lamang ang syntax para sa struct pagpapahayag, 252 00:15:44,950 --> 00:15:47,710 at iyon ay talagang tama. 253 00:15:47,710 --> 00:15:51,825 At dahil nabanggit ko bago, ang pagkakaiba sa isang struct 254 00:15:51,825 --> 00:15:53,960 at ang isang bagay, ang isa sa mga pangunahing pagkakaiba 255 00:15:53,960 --> 00:15:59,080 ay ang isang bagay ay may pamamaraan, habang ang isang struct ay may mga variable lamang. 256 00:15:59,080 --> 00:16:03,450 Kaya sa karagdagan sa mga ari-arian o variable na nilikha namin para sa bagay na ito, 257 00:16:03,450 --> 00:16:05,700 tukuyin namin ang ilang mga paraan. 258 00:16:05,700 --> 00:16:09,720 >> Hayaan sabihin lang dito mayroon kaming ng dalawang mga pamamaraan, ang isa ay ngiyaw, 259 00:16:09,720 --> 00:16:12,460 isa pa ay palayasin mouse. 260 00:16:12,460 --> 00:16:18,600 Malamang na gusto naming ay pagpasa sa isang batay sa aming nakaraang pamamaraan ng parameter 261 00:16:18,600 --> 00:16:20,440 pagpapahayag ng pattern. 262 00:16:20,440 --> 00:16:22,160 Marahil ay nais mong maging pagpasa ng mouse. 263 00:16:22,160 --> 00:16:25,180 At makikita mo marahil gusto upang magbalik ng bool signifying 264 00:16:25,180 --> 00:16:30,010 kung ang iyong cat ay matagumpay nahuli ang mouse o hindi. 265 00:16:30,010 --> 00:16:33,170 >> Ito ang interface, ngunit maaari naming makita na ang interface ng aktwal 266 00:16:33,170 --> 00:16:35,150 Hindi gumawa ng kahit ano. 267 00:16:35,150 --> 00:16:40,800 Sinasabi ito lamang isang programa kung ano exists-- kung ano ang umiiral sa klase pusa. 268 00:16:40,800 --> 00:16:43,640 Kaya sa order para sa programa upang gawin ang isang bagay, 269 00:16:43,640 --> 00:16:46,680 kailangan namin upang magkaroon ng mga file pagpapatupad. 270 00:16:46,680 --> 00:16:51,940 Kaya dito, ang unang bagay na aming ginagawa ay Malinaw na-import namin ang interface. 271 00:16:51,940 --> 00:16:56,470 Pagkatapos naming mag-import ng interface, tinutukoy namin ang paraan. 272 00:16:56,470 --> 00:17:00,150 >> Hayaan sabihin ni lang dito ngiyaw Gusto print lamang 273 00:17:00,150 --> 00:17:01,740 "Hello World!" sa console. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 At pagkatapos ng pagpapatupad file, halos tapos na kami. 276 00:17:08,460 --> 00:17:14,530 Ito ay isa lamang sa isang klase pagpapahayag para sa isang klase. 277 00:17:14,530 --> 00:17:19,970 Kaya ngayon ang tanong ay nagiging, paano mo ipinapahayag sa isang variable? 278 00:17:19,970 --> 00:17:26,880 Ang paraan na ginagamit mo sa isang klase upang lumikha ng isang bagay sa Layunin C ay nakasulat dito. 279 00:17:26,880 --> 00:17:30,730 >> Una mo munang tukuyin na ito ay isang pointer pusa, 280 00:17:30,730 --> 00:17:38,700 dahil ang bawat bagay sa Layunin C sa wakas ay ipinatupad bilang isang pointer. 281 00:17:38,700 --> 00:17:46,210 At tumawag ka sa klase, tawagan ang mga ito bilang alloc, na ay isa lamang malloc, 282 00:17:46,210 --> 00:17:51,220 na nagsasabi sa operating system na sa iyo Kailangan ng ilang espasyo memory para sa bagay na ito. 283 00:17:51,220 --> 00:17:55,780 Pagkatapos na mayroon kang isang bagay na at simulan mo lamang ito. 284 00:17:55,780 --> 00:17:56,780 Ito ay convention lamang. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Alam ko ito ay isang maliit na bit kakaiba, ngunit ito ay talagang kung paano Apple ang mga bagay-bagay. 287 00:18:04,410 --> 00:18:07,130 >> Pagtatalaga ng mga ari-arian ay talagang kaakit-akit prangka. 288 00:18:07,130 --> 00:18:09,250 Ito ay halos kapareho sa kung ano ang iyong ginagawa noong 289 00:18:09,250 --> 00:18:13,780 ka sa pagtatalaga ng ilang mga partikular na field sa loob ng struct. 290 00:18:13,780 --> 00:18:16,830 Mayroon kang lamang ang variable pangalanan, ang pangalan ng ari-arian, 291 00:18:16,830 --> 00:18:20,140 at magtalaga ng tiyak na halaga sa mga ito. 292 00:18:20,140 --> 00:18:24,120 At pagtawag ng paraan ay katulad na katulad. 293 00:18:24,120 --> 00:18:29,080 Ang pagtawag sa isang paraan ay talaga kung ano ang makipag-usap ko tungkol sa 294 00:18:29,080 --> 00:18:32,390 para sa pagtawag sa anumang paraan sa Layunin C. 295 00:18:32,390 --> 00:18:36,660 >> Ikaw ay pagpasa sa isang bagay, sa kasong ito ito ay magiging myCat, 296 00:18:36,660 --> 00:18:42,490 at tapos ka pagpasa sa pangalan ng pamamaraan. 297 00:18:42,490 --> 00:18:47,130 Bilang kung ikaw ay pakikipag-usap sa mga bagay, myCat, na dapat mong ngiyaw. 298 00:18:47,130 --> 00:18:48,570 Kahanga-kawili-wili. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Pagkatapos nito, mayroong isang higit pang mahalaga pattern disenyo 301 00:18:55,680 --> 00:18:59,940 na kailangan namin upang makipag-usap tungkol sa bago pagpunta sa aktwal S code. 302 00:18:59,940 --> 00:19:03,300 Na pattern na disenyo ay tinatawag na hinihimok ng programming kaganapan. 303 00:19:03,300 --> 00:19:09,660 Ito ay malamang din isa sa mga pinaka pangunahing ideya sa iOS programming. 304 00:19:09,660 --> 00:19:14,410 >> Kaya marahil hindi alam ang eksaktong ay ang programming hinimok ng kaganapan, 305 00:19:14,410 --> 00:19:16,990 pero hindi talaga na nakakatakot. 306 00:19:16,990 --> 00:19:20,400 Well sa katunayan, mayroon kang nagawa na dati. 307 00:19:20,400 --> 00:19:24,894 Ito ay isa sa mga linya ikaw ay malamang na na nakasulat sa huling [hindi marinig] 308 00:19:24,894 --> 00:19:26,810 ng CS50, google.maps.event.addListener (marker, 309 00:19:26,810 --> 00:19:27,810 "I-click", function na () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Sa pamamagitan ng pagtawag sa linyang ito ikaw ay lubos na nagsasabi sa ang computer 312 00:19:37,620 --> 00:19:42,650 na sa tuwing tinatawag na kaganapan "I-click" ang mangyayari sa marker, 313 00:19:42,650 --> 00:19:43,630 gamitin na function. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Ito ay ibang-iba mula sa ano ang ginagawa mo sa mario.c. 316 00:19:50,950 --> 00:19:56,670 Sa mario.c patakbuhin mo lamang ang programa -sabay, binibigyan ka nito ng output, 317 00:19:56,670 --> 00:19:58,590 at tapos ka na. 318 00:19:58,590 --> 00:20:02,590 Ito ang mga uri ng tulad ng one shot na programa. 319 00:20:02,590 --> 00:20:05,830 Mga programa na hinimok ng Kaganapan napaka, ibang-iba. 320 00:20:05,830 --> 00:20:10,230 Ng isipin Hayaan, kung Facebook ay isang isa shot programa hindi ito talagang mahusay. 321 00:20:10,230 --> 00:20:13,750 Pumunta ka lang sa Facebook isang beses at tapos na ito. 322 00:20:13,750 --> 00:20:16,700 Nagbibigay ito sa iyo ng ilang output at hindi ka na kailanman nakuha ko pabalik. 323 00:20:16,700 --> 00:20:19,380 Hindi mo nakuha kahit ano pa. 324 00:20:19,380 --> 00:20:23,880 >> Kaya dito, lalo na ang pattern na ginagamit namin ay 325 00:20:23,880 --> 00:20:26,940 hinihimok ng kaganapan, sa gayon ay ang bawat pag-andar habilin 326 00:20:26,940 --> 00:20:31,480 ay nahuli batay sa kung ano ang nangyari kaganapan. 327 00:20:31,480 --> 00:20:34,670 Halimbawa, kung kami ay isang pindutan at aming tinukoy 328 00:20:34,670 --> 00:20:39,870 na sa tuwing pindutan na ay na-click, tawagan ang function na tinatawag na "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Sa na paraan na aming makakaya talaga pamahalaan ang mga function ng logic 330 00:20:47,810 --> 00:20:50,560 dumaloy sa isang lubos na kakayahang umangkop paraan. 331 00:20:50,560 --> 00:20:55,840 Maaari gawin o tumawag sa isang function ng user ang na iyon ay tinatawag na. 332 00:20:55,840 --> 00:20:59,900 Ganap Ito ay batay sa kung ano ang ginagawa ng mga user. 333 00:20:59,900 --> 00:21:04,080 >> Upang maaari naming makita na ito ay talagang mas mahusay kaysa sa mario.c. 334 00:21:04,080 --> 00:21:07,190 At magandang balita ay ito talagang hindi isang bagong konsepto. 335 00:21:07,190 --> 00:21:12,140 Ikaw guys pa nagagawa na itinakda sa huling problema. 336 00:21:12,140 --> 00:21:16,640 Kaya sa Layunin C mayroong tatlong iba't ibang mga diagram 337 00:21:16,640 --> 00:21:19,030 para sa programming hinimok ng kaganapan. 338 00:21:19,030 --> 00:21:21,970 Ang unang diagram ay tinatawag na target na pagkilos, 339 00:21:21,970 --> 00:21:26,990 kung saan mo panagutin ang isang pindutan pindutin na may ilang function. 340 00:21:26,990 --> 00:21:31,590 Ipagpalagay natin na lang, sa tuwing nag-click ilang mga pindutan, tumawag ka ng ilang function. 341 00:21:31,590 --> 00:21:33,620 Ito ay napaka-simpleng pagkilos target. 342 00:21:33,620 --> 00:21:35,580 >> Ang ikalawang isa ay talaga ang hardest isa, 343 00:21:35,580 --> 00:21:38,450 ito ay tinatawag na pagtatalaga sa protocol. 344 00:21:38,450 --> 00:21:41,800 Kami ay pagpunta sa ipaliwanag na sa mahusay na detalye sa ibang pagkakataon. 345 00:21:41,800 --> 00:21:44,420 At ang ikatlong paraan ay abiso. 346 00:21:44,420 --> 00:21:46,770 Ito ay talagang hindi Napakahalaga bilang malayo 347 00:21:46,770 --> 00:21:50,920 bilang namin nababahala, dahil ang pagkakataon na iyong pupuntahan upang gamitin ang notification 348 00:21:50,920 --> 00:21:53,310 sa inyong huling proyekto ay medyo mababa. 349 00:21:53,310 --> 00:21:56,440 Kaya kami ay pagpunta upang laktawan ang bahaging iyon. 350 00:21:56,440 --> 00:21:59,460 >> At kami ay pagpunta sa sumisid sa pagtatalaga sa protocol. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Kaya kung ano ang eksaktong ay isang protocol? 353 00:22:04,470 --> 00:22:06,450 O kaya kung ano eksakto ay isang pagtatalaga? 354 00:22:06,450 --> 00:22:09,670 Makipag-usap tungkol sa protocol na magsimula sa mga Hayaang. 355 00:22:09,670 --> 00:22:13,360 Protocol ay walang anuman kundi mga kaganapan. 356 00:22:13,360 --> 00:22:19,230 Ngunit ang mga kaganapang ito ay ibinigay sa iyo sa pamamagitan ng Apple upang magsimula sa. 357 00:22:19,230 --> 00:22:22,640 Halimbawa, hindi ako ganap na sigurado kung paano marami sa inyo 358 00:22:22,640 --> 00:22:27,930 guys gamitin ang orihinal Apple app mail o makipag-ugnay, 359 00:22:27,930 --> 00:22:32,180 ngunit sa bawat oras na mag-scroll ka sa mesa at pindutin ang partikular na cell 360 00:22:32,180 --> 00:22:36,130 sa mesa, iyon ay isang kaganapan. 361 00:22:36,130 --> 00:22:38,330 >> At kung gusto mong gawin na kaganapan sa pamamagitan ng iyong sarili, 362 00:22:38,330 --> 00:22:40,410 ito ay talagang isang maliit na bit mahirap. 363 00:22:40,410 --> 00:22:44,880 Kaya Apple ay nagbigay na kahit na sa iyo sa gayon ay maaari mo lamang gamitin nang direkta 364 00:22:44,880 --> 00:22:49,610 ang kaganapan upang gawin ang isang bagay sa iyong sarili. 365 00:22:49,610 --> 00:22:52,980 Protocol ay talagang talaga ito, talagang malawakang ginagamit 366 00:22:52,980 --> 00:22:58,320 sa Layunin C. Well sa katunayan, bawat solong app 367 00:22:58,320 --> 00:23:00,870 May isang bagay na nahuli delegado app. 368 00:23:00,870 --> 00:23:06,330 Sa loob ng pinong ay ang lahat ng mga protocol para sa paglo-load ng app. 369 00:23:06,330 --> 00:23:12,470 >> Sabihin nating lamang doon ay May ginawang pag-load ng isang kaganapan para sa app. 370 00:23:12,470 --> 00:23:18,200 Kaya kung ano ang dapat mangyari matapos mong nai Nalikha ang isang app, pagkatapos buksan mo ang app, 371 00:23:18,200 --> 00:23:22,630 pagkatapos mong isara ang app, o pagkatapos ilagay mo ang iPhone matulog. 372 00:23:22,630 --> 00:23:27,480 Ito ang lahat ng mga kaganapan na may Na-na ibinigay sa iyo. 373 00:23:27,480 --> 00:23:34,730 At orihinal loob ng mga particle walang magiging pagpapatupad. 374 00:23:34,730 --> 00:23:39,750 Lamang sinabi sa iyo ng Apple na ang function na ito ang mangyayari kapag nangyari ang ilang mga kaganapan, 375 00:23:39,750 --> 00:23:44,380 ngunit kung ano ang ginagawa mo sa na function ay ganap na nakasalalay sa iyo. 376 00:23:44,380 --> 00:23:49,290 >> Paglalaan ay isa lamang na nagsasabi sa klase 377 00:23:49,290 --> 00:23:53,060 na dapat mong panghawakan ang mga protocol. 378 00:23:53,060 --> 00:23:55,340 Ito ay isang maliit na bit nakakalito, ngunit 379 00:23:55,340 --> 00:23:59,380 magkano ang mas malinaw kapag ginagawa namin ang mga code mga pagkilos. 380 00:23:59,380 --> 00:24:04,760 Pagtatalaga sa protocol ay talagang isang lubos na malakas na mekanismo sa kamalayan 381 00:24:04,760 --> 00:24:08,160 na kung gagawin namin ang paglalaan sa isang tiyak na klase, 382 00:24:08,160 --> 00:24:12,400 maaari naming lubos na pangasiwaan lahat ng uri ng mga kaganapan 383 00:24:12,400 --> 00:24:17,040 gamit ang anumang klase mayroon kami, napaka-maginhawang tool. 384 00:24:17,040 --> 00:24:21,530 >> Kaya isa mabilis na halimbawa para sa pagtatalaga sa protocol 385 00:24:21,530 --> 00:24:24,120 Magiging ano usapan lang ako tungkol sa. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Protocol na ito na partikular ay tinatawag na tableview [hindi marinig] piliin papel 388 00:24:30,890 --> 00:24:35,480 sa [? index?] [? nakaraan. ?] Kaya ito isang kaganapan na ay nahuli kapag 389 00:24:35,480 --> 00:24:39,710 talaga mag-tap sa isang tiyak na cell sa iyong tableview, 390 00:24:39,710 --> 00:24:43,570 sabihin nating lamang sa iyong mail o sa iyong app contact. 391 00:24:43,570 --> 00:24:48,180 >> Sa loob ng isang function nagkaroon Orihinal na wala kang ginagawa. 392 00:24:48,180 --> 00:24:51,950 Function na ay ayaw gumawa ng anumang bagay sa pamamagitan ng default. 393 00:24:51,950 --> 00:24:55,540 Ngunit maaari mong tukuyin ang ano ang ginagawa ng function, 394 00:24:55,540 --> 00:24:59,610 ibinigay kung ano ang nais mong out sa iyong app. 395 00:24:59,610 --> 00:25:01,610 Napakaluwag maginhawang tool. 396 00:25:01,610 --> 00:25:06,840 At sa lahat na sinasabi, ako talaga 397 00:25:06,840 --> 00:25:11,430 masakop ang ilang mga napaka basic syntax at pangunahing konsepto para sa Hangarin C 398 00:25:11,430 --> 00:25:15,860 programming, at maaari naming gawin ang ilang mga code. 399 00:25:15,860 --> 00:25:17,980 Mas kapana-panabik. 400 00:25:17,980 --> 00:25:21,070 Kaya code ay talagang isang Medyo napakatinding 401 00:25:21,070 --> 00:25:23,330 kapag binuksan mo ito sa unang pagkakataon. 402 00:25:23,330 --> 00:25:26,640 >> Isang maikling paalala, kaya kung nais na gawin iOS-unlad, 403 00:25:26,640 --> 00:25:29,630 Masidhing kong inirerekumenda mayroon kang isang Mac. 404 00:25:29,630 --> 00:25:33,930 Dahil ang paggawa iOS-unlad sa Windows ay talagang, talagang mahirap. 405 00:25:33,930 --> 00:25:37,560 Ito ay maaaring gawin, ngunit ito ay talagang mahirap. 406 00:25:37,560 --> 00:25:40,610 At na talagang gawin Hindi nais na gamitin ang g-edit. 407 00:25:40,610 --> 00:25:47,950 Kaya sa mga code na mayroon kami maraming iba't ibang mga lugar. 408 00:25:47,950 --> 00:25:53,050 Kapag una mong buksan ang mga code makakakita ka ng navigation area, 409 00:25:53,050 --> 00:25:57,470 kung saan talaga nagpapakita sa iyo ng lahat ng mga mga file na nasa iyong kasalukuyang proyekto. 410 00:25:57,470 --> 00:26:03,590 >> Mayroon kang isang toolbar area, na ay isa lamang sa pamamahala ng mga view, 411 00:26:03,590 --> 00:26:08,570 o ilang maliit mabilis mga tool tungkol sa mga mismong code. 412 00:26:08,570 --> 00:26:11,140 At ito ay ang aktwal na editor area. 413 00:26:11,140 --> 00:26:15,900 Ang lugar na ito ay katulad na katulad edit g, ngunit magkano ang mas mahusay kaysa sa g-edit. 414 00:26:15,900 --> 00:26:21,150 At sa karapatang ito na lugar, ay na tinatawag na ang utility area. 415 00:26:21,150 --> 00:26:27,170 Ang lugar ay nagiging tunay na madaling gamitin kapag lumilikha ka ng interface o pagtukoy 416 00:26:27,170 --> 00:26:30,070 ilang mabilis na mga setup para sa iyong app. 417 00:26:30,070 --> 00:26:34,570 >> At ang pangwakas na lugar ay ang pag-debug. 418 00:26:34,570 --> 00:26:37,970 Ang lugar na ito ay naglalaman ng console. 419 00:26:37,970 --> 00:26:43,170 Kaya sa tuwing sasabihin mo printf, o nslog sa aming kaso, 420 00:26:43,170 --> 00:26:47,330 lahat ng iyong mga resulta ay pagpunta sa ipi-print dito. 421 00:26:47,330 --> 00:26:48,260 Ang lahat ng mga karapatan? 422 00:26:48,260 --> 00:26:52,090 Sa tingin ko maaari naming talagang mabilis gawin isang halimbawa para sa iOS programming. 423 00:26:52,090 --> 00:26:54,220 At sabihin na aktwal na buksan ang mga code. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Kaya sa tuwing bubuksan mo ang mga code na ito, pagpunta sa lumabas ang isang bagay tulad na. 426 00:27:01,346 --> 00:27:03,220 Ito ay pagpunta sa hilingin sa iyo kung ano ang nais mong gawin? 427 00:27:03,220 --> 00:27:06,830 Huwag gusto mong magsimula ng isang bagay random, playground, isa lamang sa iyo 428 00:27:06,830 --> 00:27:11,250 masusubukan lamang ang code nang walang talaga tanggapin ang alok sa anumang app. 429 00:27:11,250 --> 00:27:13,020 >> Huwag mo nais na lumikha ng isang bagong proyekto? 430 00:27:13,020 --> 00:27:16,660 O nais mong magpatuloy nagtatrabaho sa mga umiiral na proyekto? 431 00:27:16,660 --> 00:27:20,270 Sa aming kaso kami ay pagpunta upang lumikha ng isang bagong proyekto. 432 00:27:20,270 --> 00:27:22,980 Kaya talagang maganda, y code na aktwal na may 433 00:27:22,980 --> 00:27:26,820 nagbigay sa iyo ng ilang mga template para sa paglikha ng mga bagay. 434 00:27:26,820 --> 00:27:32,680 Kung gusto mong gawin sa laro, s code talaga ay may template laro para sa iyo, 435 00:27:32,680 --> 00:27:36,890 May mga application na pahina batay, tab na batay sa application. 436 00:27:36,890 --> 00:27:39,280 Sa kasong ito, kami ay pagpunta gawin napaka-simpleng bagay, 437 00:27:39,280 --> 00:27:43,230 at kami ay pagpunta sa gumamit ng isang -iisang view ng application. 438 00:27:43,230 --> 00:27:48,270 >> Pagkatapos na lamang kung ano ang gusto mong tawagan ang iyong produkto, at kung ano ang iyong pangalan, 439 00:27:48,270 --> 00:27:52,760 kung ano ang iyong identifier, at kung anong wika ang iyong ginagamit. 440 00:27:52,760 --> 00:27:57,060 Narito hindi namin nais na suriin gamit ang Core Data. 441 00:27:57,060 --> 00:28:00,170 Core Data ay isa lamang databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Kung gagawin mo Core Data, s code ay pagpunta upang tukuyin ang 443 00:28:05,360 --> 00:28:07,710 mas komplikado klase ng maraming para sa iyo. 444 00:28:07,710 --> 00:28:12,740 Kaya upang panatilihing simple ang lahat, kami ay lamang ng pagpunta sa gawin nang walang Core Data 445 00:28:12,740 --> 00:28:15,290 sa ngayon. 446 00:28:15,290 --> 00:28:18,030 >> Ang problema kami ay magiging gamit ang that-- ang problema 447 00:28:18,030 --> 00:28:23,770 kami ay pagpunta sa ma-paglikha ay na namin gusto talaga mag-import Mario mula sa C 448 00:28:23,770 --> 00:28:25,437 sa isang iOS app. 449 00:28:25,437 --> 00:28:26,645 Kaya sabihin tumawag na Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Siyempre mong tukuyin kung ano ang gusto ang ilalagay sa iyong proyekto. 452 00:28:34,880 --> 00:28:37,870 At doon pumunta namin. 453 00:28:37,870 --> 00:28:41,390 >> Kaya ito ay isang kaunti napakalaki, ngunit ito ay talagang 454 00:28:41,390 --> 00:28:43,540 kung ano ang nakita lang namin sa slide. 455 00:28:43,540 --> 00:28:49,710 At ang unang lugar na nakikita natin ngayon ay isa lamang configuration proyekto. 456 00:28:49,710 --> 00:28:53,390 Kaya lahat ng bagay na nais mong gawin proyekto, kung anong uri ng aparato, 457 00:28:53,390 --> 00:28:58,810 sabihin nating lamang kung anong uri ng aparato ang gusto mo sa iyong app upang lumitaw sa? 458 00:28:58,810 --> 00:29:01,280 Ito ba ay iPhone, iPad o pandaigdig? 459 00:29:01,280 --> 00:29:04,660 Kaya oryentasyon aparato, ang lahat ng mga bagay-bagay na ito. 460 00:29:04,660 --> 00:29:08,490 Hindi masyadong mahalaga, pero maaaring, ngunit ito 461 00:29:08,490 --> 00:29:11,050 ay isang lugar kung saan mo i-set up iyong proyekto kung talagang 462 00:29:11,050 --> 00:29:15,180 nais na i-deploy sa tindahan ng Apple. 463 00:29:15,180 --> 00:29:20,420 >> Ang lahat ng mga karapatan, tingnan natin hayaan isang bagay na nasa loob ng aming code. 464 00:29:20,420 --> 00:29:22,360 Sabihin dumaan sa file navigator. 465 00:29:22,360 --> 00:29:30,140 At ang mga ito ay ang lahat ng file na na kasama ang template, napaka mabait. 466 00:29:30,140 --> 00:29:35,980 Kaya kapag nag-click ang isa sa mga ito ito ay kung ano ang mukhang. 467 00:29:35,980 --> 00:29:38,530 Na halos kapareho sa g-edit. 468 00:29:38,530 --> 00:29:41,340 Ngunit maaari mong makita na ang syntax-highlight Marahil 469 00:29:41,340 --> 00:29:42,780 Medyo nicer. 470 00:29:42,780 --> 00:29:45,610 At ito ay tunay na marami pang iba malakas kaysa sa pag-edit g. 471 00:29:45,610 --> 00:29:49,970 At maaari mong auto kumpletong ng maraming mga bagay para sa iyo, 472 00:29:49,970 --> 00:29:52,370 bilang ay namin makita nang masyadong mabilis. 473 00:29:52,370 --> 00:29:54,100 >> Buksan at pati na rin ang pag-debug area Hayaan. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Ang lahat ng mga karapatan, tulad ng maaari naming makita, console ay dito mismo. 476 00:30:07,000 --> 00:30:13,840 Ito ay kung ano ang iyong pagpunta upang makita kung saan ikaw ay nasa printf o nsloging ng isang bagay. 477 00:30:13,840 --> 00:30:17,155 Kaya nang walang karagdagang linggal, sabihin talaga mag-compile ang app at makita kung ano ang mangyayari. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Isang mahalagang tampok para sa code s, ay ang code s 480 00:30:23,410 --> 00:30:25,850 ay may isang iPhone simulator. 481 00:30:25,850 --> 00:30:29,820 Kaya hindi mo na kailangang magkaroon ng isang iPhone upang subukan ang iyong proyekto, 482 00:30:29,820 --> 00:30:34,440 Maaari gayahin code na para sa ikaw, tulad ng maaari naming makita ngayon. 483 00:30:34,440 --> 00:30:36,406 >> Kahanga-mabait. 484 00:30:36,406 --> 00:30:38,640 Ito ay kumukuha ng isang maliit na kaunting oras upang sumulat ng libro 485 00:30:38,640 --> 00:30:43,040 at isa lamang na mayroon kami isang walang laman na application, 486 00:30:43,040 --> 00:30:44,640 kung saan talaga ang wala. 487 00:30:44,640 --> 00:30:46,175 Ngunit ito compiles. 488 00:30:46,175 --> 00:30:47,380 Kahanga-hanga. 489 00:30:47,380 --> 00:30:50,200 Ito ay magkano ang mas mahusay kaysa sa C, huh? 490 00:30:50,200 --> 00:30:52,130 Ang lahat ng mga karapatan, pagkatapos ay i sabihin subukan upang magdagdag ng isang bagay. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Isa file na Medyo kakaiba dito ay tinatawag na storyboard. 493 00:31:02,650 --> 00:31:08,020 Ito ay tunay na isang mahusay na, kahanga-hangang tampok para sa mga code. 494 00:31:08,020 --> 00:31:14,170 Dahil sa mga code, maaari mong i-drag talaga at i-drop ang mga elemento papunta sa interface 495 00:31:14,170 --> 00:31:17,430 at ito ay direkta lumabas. 496 00:31:17,430 --> 00:31:18,055 Subukan natin iyon. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Kami maglagay ng label dito, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Maaari naming na nakasentro na iyon. 500 00:31:29,740 --> 00:31:30,970 Medyo cool. 501 00:31:30,970 --> 00:31:33,915 Ngayon patakbuhin natin ang stop simulation ipaalam. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Narito mayroon kaming "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Ay namin hindi pa gawin ang anumang coding. 505 00:31:40,810 --> 00:31:42,750 Ano ang ano ba ang nangyayari? 506 00:31:42,750 --> 00:31:45,880 Ito ay kung paano malakas Interface Builder ay maaaring maging. 507 00:31:45,880 --> 00:31:48,030 Kahit na sinabi ng isang tao na maaari mong marahil lamang 508 00:31:48,030 --> 00:31:52,800 kumpletuhin ang isang app nang hindi pagsulat marahil ng isang libong mga linya ng code 509 00:31:52,800 --> 00:31:54,820 sa pamamagitan lamang ng paggamit ng Tagabuo ng Interface. 510 00:31:54,820 --> 00:31:59,680 Ngunit malamang na hindi ang pinakamahusay na paraan upang gawin ito. 511 00:31:59,680 --> 00:32:01,670 >> Ngayon sabihin talagang makakuha ng pababa sa coding. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Kaya ang istraktura para sa file ay talagang talagang kawili-wiling 514 00:32:08,330 --> 00:32:15,610 dahil, bilang maaari mong makita, mayroong Walang pangunahing pag-andar kahit saan. 515 00:32:15,610 --> 00:32:17,466 Tingnan? 516 00:32:17,466 --> 00:32:19,340 Tulad ng aming nabanggit bago, maaari mong makita na ito 517 00:32:19,340 --> 00:32:22,830 ay isang pagpapatupad ng file para sa isang tiyak na klase. 518 00:32:22,830 --> 00:32:25,690 Ngunit walang pangunahing kahit saan. 519 00:32:25,690 --> 00:32:27,490 Kaya kung saan ay main? 520 00:32:27,490 --> 00:32:31,970 Sa totoo lang, mayroong isang pangunahing, ngunit ang pangunahing ay aktwal na nakatago mula sa iyo. 521 00:32:31,970 --> 00:32:34,560 Ang pangunahing ay dito. 522 00:32:34,560 --> 00:32:37,120 Na mukhang pamilyar. 523 00:32:37,120 --> 00:32:41,000 >> Kaya kung ano talaga iOS ginagawa sa loob ng pangunahing 524 00:32:41,000 --> 00:32:43,540 ay na kahit kailan ay pangunahing tinatawag na, na kung saan ay isa lamang 525 00:32:43,540 --> 00:32:49,000 sa tuwing ang app ay pinaandar, ito ay lumikha ng isang bagay na tinatawag na AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Tulad ng nabanggit ko bago, ang buong app ay talagang isang bagay sa pamamagitan ng mismo. 528 00:32:57,350 --> 00:33:02,270 Kaya sa ganitong paraan, isa lamang ang iOS app ay nagsasabi sa mga compiler 529 00:33:02,270 --> 00:33:05,540 na OK, Pupunta ako sa gumawa isang produkto na tinatawag na AppDelegate, 530 00:33:05,540 --> 00:33:07,620 at iyon ay magiging aking app. 531 00:33:07,620 --> 00:33:09,640 Kaya kailangan mong pumunta sa pamamagitan ng na AppDelegate 532 00:33:09,640 --> 00:33:12,040 at tingnan kung ano ang ginagawa na tao. 533 00:33:12,040 --> 00:33:14,850 Aking trabaho ay tapos na para sa akin. 534 00:33:14,850 --> 00:33:22,070 >> At sa AppDelegate maaari mong makita na mayroong ilang mga talagang kakaiba pag-andar, 535 00:33:22,070 --> 00:33:25,290 na rin aktwal na mga pamamaraan, na Apple ay nagbigay sa iyo. 536 00:33:25,290 --> 00:33:27,464 Ano ang mga ito? 537 00:33:27,464 --> 00:33:31,010 Ang mga ito ay talagang lamang ng mga protocol na pakikipag-usap ko tungkol sa. 538 00:33:31,010 --> 00:33:35,670 Kaya ang mga ito ay mga kaganapan na Apple ay nagbigay sa iyo na magsimula sa. 539 00:33:35,670 --> 00:33:38,050 Walang anuman sa ilang ng mga function sa ngayon, 540 00:33:38,050 --> 00:33:40,820 ngunit kung gusto naming i-initialize isang bagay para sa aming mga app 541 00:33:40,820 --> 00:33:46,140 bago pagkuha sa pagpapakita anumang view, ginagawa namin na dito. 542 00:33:46,140 --> 00:33:51,150 >> Maaari mong basahin lang ang pangalan at hulaan ko ang kaganapan ay aktwal na talagang malinaw. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Kaya ngayon pangunahing ay lumikha isang bagay para sa AppDelegate. 545 00:33:58,350 --> 00:34:05,220 At kung ano AppDelegate ay pagpunta sa gawin ay talagang nakatago din mula sa iyo. 546 00:34:05,220 --> 00:34:09,250 Ang AppDelegate ay pagpunta sa simulan paglo-load ng ViewController stock. 547 00:34:09,250 --> 00:34:13,170 Kaya ito ay isa lamang ng pagpunta sa simulan naglo-load ang lahat ng mga tanawin na mayroon kang 548 00:34:13,170 --> 00:34:17,500 at i-render lang ang pagtingin batay sa hierarchy. 549 00:34:17,500 --> 00:34:21,280 >> Kaya sa kasong ito ay may lamang namin isang view, na kung saan ay dito. 550 00:34:21,280 --> 00:34:25,060 Kaya na ang tanging tanawin na pupuntahan tatawagin. 551 00:34:25,060 --> 00:34:28,159 Ang ViewController logic ay dito mismo. 552 00:34:28,159 --> 00:34:32,159 Ito ang code na talaga Kinokontrol ng view ng nakita natin lamang. 553 00:34:32,159 --> 00:34:33,679 Ang lahat ng mga karapatan, gawin ang isang bagay na ipaalam dito. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Kaya tunog viewDidLoad tulad ng isang kaganapan, kapag sa katunayan ito ay isa ring delegado, 556 00:34:50,560 --> 00:34:52,500 ito ay isa ring protocol. 557 00:34:52,500 --> 00:34:56,350 >> Kaya kahit anong view load, lahat ng bagay sa loob ng function na 558 00:34:56,350 --> 00:34:57,920 ay tatawagin. 559 00:34:57,920 --> 00:35:02,840 Sa kasong ito dapat naming makita "Hello Tianyu! "Kung patatakbuhin namin ang programang. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Nakakakuha ito ng kaunti mabagal kino-compile ang storyboard mga file. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Well sa katunayan, namin makita ang isang output para dito. 564 00:35:18,190 --> 00:35:20,720 Ito ay medyo cool. 565 00:35:20,720 --> 00:35:22,000 Ngayon ay talagang gawin Mario ipaalam. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Pupunta ako upang tukuyin ang gumana nang masyadong mabilis. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: mga resulta sa (int) na antas. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Ang lahat ng mga karapatan, ito ay aktwal na ang kahanga-hangang Ang tampok ng code ng auto pagkumpleto. 572 00:36:06,410 --> 00:36:10,680 Kaya kapag nagsusulat ka para sa at i-type ang enter, ito ay ibinigay up ang template 573 00:36:10,680 --> 00:36:12,325 para sa iyo, na kung saan ay medyo cool. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Iyon ay dapat magmukhang tunay pamilyar sa iyo guys. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Paumanhin, hindi iyon ang aking kasalanan. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Ang lahat ng mga karapatan, cool. 580 00:37:18,120 --> 00:37:22,710 Dapat magmukhang logic na talagang pamilyar sa iyo guys, lalo lamang Mario. 581 00:37:22,710 --> 00:37:26,140 >> Ngunit ay i-print namin ngayon out sa console ng bawat solong oras, 582 00:37:26,140 --> 00:37:29,280 dahil gusto naming panatilihin sa paanuman subaybayan kung ano ang ginagawang pag-print namin. 583 00:37:29,280 --> 00:37:31,810 Kami ay pagpunta sa gamitin ang Mga resulta ng kahit papaano ay sa ibang pagkakataon, 584 00:37:31,810 --> 00:37:35,010 upang ipakita ang mga naka-print out magresulta sa user. 585 00:37:35,010 --> 00:37:37,730 Kaya sa halip hindi namin lamang nslogging lahat ng bagay, 586 00:37:37,730 --> 00:37:42,410 na kung saan kami ay nag-iimbak ng lahat ng bagay sa isang resulta ng pag-andar ng tawag, 587 00:37:42,410 --> 00:37:44,070 ngunit ang logic ay eksaktong kapareho. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Pagkatapos naming tapusin ito, kami i-print lamang ang aming mga resulta. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> At dito sa halip ng pag-print out ang aking pangalan, kami ay pagpunta sa tumawag sa isang function. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Tingnan natin kung ano ang mangyayari Hayaan. 594 00:38:18,090 --> 00:38:21,240 Oops, nang walang alinlangan. 595 00:38:21,240 --> 00:38:24,320 Ginagawa namin Magandang maliit na pyramid out dito. 596 00:38:24,320 --> 00:38:28,370 Ito ay isa lamang C, hindi namin lamang ng pagpapatakbo kung saan mo tumawag sa isang function 597 00:38:28,370 --> 00:38:30,010 at kung paano hanapin ang isang function tulad. 598 00:38:30,010 --> 00:38:31,560 Wala iba't ibang ay. 599 00:38:31,560 --> 00:38:34,040 Ngunit ito ay talagang hindi masyadong kapana-panabik dito, 600 00:38:34,040 --> 00:38:37,500 dahil hindi namin nakikita anumang bagay mula sa iPhone app. 601 00:38:37,500 --> 00:38:42,120 >> Kaya kung aktwal mong magkaroon ng isang iPhone app-- kung aktwal mong magkaroon ng Mario iOS karapatan 602 00:38:42,120 --> 00:38:45,080 ngayon, hindi na iyong pupuntahan upang makita ang anumang bagay na 603 00:38:45,080 --> 00:38:49,450 May kahit ano ang gagawin sa Mario dahil lahat ng mga output sa isang console 604 00:38:49,450 --> 00:38:51,620 Nakatago mula sa isang user. 605 00:38:51,620 --> 00:38:53,850 Ito ay kung ano ang nakikita mo, na kung saan ay "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 Hindi mabuti. 607 00:38:55,720 --> 00:39:03,090 Ngayon subukan upang gawing nakikita ng gumagamit ang hayaan kung ano ang eksaktong kaming nagpi-print out. 608 00:39:03,090 --> 00:39:06,000 Kaya hindi namin kailangan upang lagyan ng label na ngayon. 609 00:39:06,000 --> 00:39:09,800 Subukan Hayaan at malaman kung ang isang bagay iba ay maaaring na maging kapaki-pakinabang. 610 00:39:09,800 --> 00:39:12,140 >> Mayroon talagang isa elemento na ay tinatawag na 611 00:39:12,140 --> 00:39:16,460 patlang ng teksto, na dati maging kapaki-pakinabang sa amin. 612 00:39:16,460 --> 00:39:19,880 Ito ay nagpapakita ng isa lamang na rehiyon ng teksto na maaaring ma-edit. 613 00:39:19,880 --> 00:39:22,320 Kaya na ganito talaga nakakatulong. 614 00:39:22,320 --> 00:39:23,810 Ngayon hayaan i-drag natin ito at i-drop ito. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, mayroon kaming isang view ng teksto sa aming view, talagang magarbong. 617 00:39:32,670 --> 00:39:35,430 Iyon ay masyadong malaki nang kaunti. 618 00:39:35,430 --> 00:39:38,150 Ay gawin itong mas maliit Hayaan. 619 00:39:38,150 --> 00:39:40,290 Ilagay ito sa center. 620 00:39:40,290 --> 00:39:43,760 Gawin itong mas maliit din. 621 00:39:43,760 --> 00:39:50,110 >> Ngayon kami ay may isang view ng teksto, na maaari naming gagamitin upang ipakita ang aming panghuling resulta. 622 00:39:50,110 --> 00:39:52,860 Ngunit ngayon ito ay talagang hindi pagpunta sa gumana 623 00:39:52,860 --> 00:39:56,970 dahil may no-- ang ViewController namin lamang 624 00:39:56,970 --> 00:40:03,010 tinukoy ay hindi alam na doon ay isang teksto ng tanawin doon. 625 00:40:03,010 --> 00:40:06,550 Kaya kailangan namin upang kahit papaano -link ang view ng teksto namin lamang 626 00:40:06,550 --> 00:40:11,660 nilikha na may klase na Na dumating sa amin. 627 00:40:11,660 --> 00:40:14,860 >> Ang paraan ginagawa namin na talagang talagang kaakit-akit. 628 00:40:14,860 --> 00:40:18,190 Kaya buksan ang storyboard. 629 00:40:18,190 --> 00:40:22,220 May ay isang espesyal na [hindi marinig] na tinatawag na [? katulong?] [hindi marinig]. 630 00:40:22,220 --> 00:40:25,190 Kapag nag-click na ito, pagpunta upang buksan ang dalawang mga file. 631 00:40:25,190 --> 00:40:29,425 Ang isa ay isang klase at ang iba pang isa ay isang katumbas na pagtingin para dito. 632 00:40:29,425 --> 00:40:31,920 Ito ay napaka, napaka-kapaki-pakinabang. 633 00:40:31,920 --> 00:40:35,950 At ipaalam lamang napupunta sa pamamagitan ng .h file. 634 00:40:35,950 --> 00:40:39,110 Control, ito ay logic [hindi marinig]. 635 00:40:39,110 --> 00:40:47,280 Pindutin ang Control at i-drag ang text tanawin sa pagpapahayag. 636 00:40:47,280 --> 00:40:48,780 Kami ay pagpunta sa tumawag na outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Kumonekta. 639 00:40:53,670 --> 00:40:59,420 Kaya rito ay inihayag namin ang isang bagong ari-arian para sa aming mga ViewController class. 640 00:40:59,420 --> 00:41:02,300 At ang bagong ari-arian lamang ang view ng teksto 641 00:41:02,300 --> 00:41:05,000 na nilikha namin sa gusali interface. 642 00:41:05,000 --> 00:41:07,990 Kaya sa paraang iyon maaari naming -access ang lahat ng data 643 00:41:07,990 --> 00:41:13,630 at manipulahin ang lahat ng bagay na nasa loob ang output view, na kung saan ay kahanga-hanga. 644 00:41:13,630 --> 00:41:19,260 >> Kaya sa aming mga aktwal na code, gawin ang isang bagay na may ito ipaalam. 645 00:41:19,260 --> 00:41:23,810 Kaya oras na ito kapag kami ay tulad ng pag-print ang huling resulta para sa Mario, 646 00:41:23,810 --> 00:41:28,020 Ikinalulungkot namin sa hindi pag-log ng kahit ano. 647 00:41:28,020 --> 00:41:30,080 Ibig kong sabihin naming panatilihin ang pag-log statement. 648 00:41:30,080 --> 00:41:41,490 Bilang karagdagan sa na, kami ipadala ang readout namin lamang 649 00:41:41,490 --> 00:41:47,622 nilikha sa output view, na ay isang UI textview lumikha kami lang. 650 00:41:47,622 --> 00:41:48,746 Ngayon tingnan natin kung ano ang mangyayari. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Wow. 653 00:41:56,620 --> 00:41:59,130 Mayroon kaming mga pyramid sa app ngayon. 654 00:41:59,130 --> 00:42:06,720 >> Kaya ang makakakita ang user ng aming output dahil kinopya namin ang output mula sa aming code 655 00:42:06,720 --> 00:42:08,045 sa aming interface. 656 00:42:08,045 --> 00:42:10,950 Kahanga mabuti. 657 00:42:10,950 --> 00:42:14,990 Ito ay talagang hindi na kapana-panabik dahil can-- namin 658 00:42:14,990 --> 00:42:18,250 Ang lahat ng mga app ay ang paggawa ay na nagpapakita ng isang pyramid sa iyo, 659 00:42:18,250 --> 00:42:20,520 at walang maaari mong gawin tungkol sa ito ay. 660 00:42:20,520 --> 00:42:22,330 Ito ay hindi partikular na kapana-panabik. 661 00:42:22,330 --> 00:42:27,840 Kaya ngayon gumawa ng isang pindutan ipaalam na-clear ang view. 662 00:42:27,840 --> 00:42:30,290 Mukhang na ang isang button na ito ay maging kapaki-pakinabang. 663 00:42:30,290 --> 00:42:33,270 I-drag at i-drop. 664 00:42:33,270 --> 00:42:33,900 Isa pindutan. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Pindutan dalawa. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Kaya kapag nag-click kami sa kaliwa button, ang view ay dapat na i-clear. 669 00:42:52,052 --> 00:42:53,635 Dapat ay wala sa screen. 670 00:42:53,635 --> 00:42:56,970 At kapag nag-click namin ang kanang button, Mario, 671 00:42:56,970 --> 00:42:59,740 ang view ay pagpunta sa lumitaw muli. 672 00:42:59,740 --> 00:43:05,510 Kaya ang ginagawa namin sa ganitong paraan din ang magic mga bagay-bagay, kontrol at i-drag 673 00:43:05,510 --> 00:43:08,740 sa pagpapahayag ng klase sa katulong director-- 674 00:43:08,740 --> 00:43:11,600 sa katulong viewer. 675 00:43:11,600 --> 00:43:18,620 Sa kasong ito kami ay pagtukoy na iyon ay dapat na isang pagkilos. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> Kaya dito namin ito ay nilikha ng isang aksyon na tinatawag na clearMario, 679 00:43:26,830 --> 00:43:34,210 kung saan ay ang pamamaraan na iyon ay tinatawag na sa tuwing pindutin namin malinaw ang pindutan. 680 00:43:34,210 --> 00:43:41,030 Kaya sa aming mga aktwal na code, sabihin lamang ilagay ang output ng teksto at view ng output 681 00:43:41,030 --> 00:43:44,620 sa wala, at na paraan ito ay lilitaw upang maging malinaw. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Bilang karagdagan sa na, ang lumikha ipaalam isa pang paraan na tinatawag na runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh paumanhin, na hindi dapat maging isang ari-arian. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Ang lahat ng mga karapatan, na dapat maging pati na rin ng pagkilos. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> At kapag na function ay na tinatawag, patakbuhin lamang kami Mario sampu. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Sana na magiging ayos lang. 692 00:44:39,780 --> 00:44:41,120 Ay sumulat ng libro ito? 693 00:44:41,120 --> 00:44:43,920 Oo. 694 00:44:43,920 --> 00:44:45,090 Ngayon na mayroon kami ng isang view. 695 00:44:45,090 --> 00:44:46,560 Mayroon kaming isang output. 696 00:44:46,560 --> 00:44:50,040 At hayaang makita ng kung ano ang mangyayari. 697 00:44:50,040 --> 00:44:52,590 Na nawala. 698 00:44:52,590 --> 00:44:54,500 Ito ay bumalik muli. 699 00:44:54,500 --> 00:44:57,620 Kaya dito Tinukoy kami kung anong uri ng pag-andar 700 00:44:57,620 --> 00:45:00,400 ay tinatawag na kapag -type namin sa isang bagay, 701 00:45:00,400 --> 00:45:03,160 kapag pinindot kami ng isang tukoy na pindutan. 702 00:45:03,160 --> 00:45:07,890 Ito ay isa lamang sa target na pagkilos scheme 703 00:45:07,890 --> 00:45:12,510 para sa kaganapan hinimok programming sa Layunin C. 704 00:45:12,510 --> 00:45:15,030 >> Bilang karagdagan sa mga iyon, ito ay hindi masyadong kapana-panabik 705 00:45:15,030 --> 00:45:19,810 dahil hindi namin talagang baguhin kung gaano kataas ang pyramid ay magiging, 706 00:45:19,810 --> 00:45:23,640 kaya marahil gusto naming kahit papaano makakuha ng isang input mula sa user 707 00:45:23,640 --> 00:45:29,490 at palitan ang taas ng pyramid batay sa kung ano ang kanilang output. 708 00:45:29,490 --> 00:45:32,900 Kaya kami ay pagpunta sa gawin iyon. 709 00:45:32,900 --> 00:45:38,720 Kaya oras na ito kapag tinatawag naming runMario, hindi namin lamang tumawag nang direkta Mario. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Pamagat ng isa na ito. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegado. 714 00:46:23,700 --> 00:46:25,160 Ito ay napaka-interesante. 715 00:46:25,160 --> 00:46:26,720 Ano ang isang delegado? 716 00:46:26,720 --> 00:46:28,950 Pupunta ako upang ilagay ang sarili dito. 717 00:46:28,950 --> 00:46:31,038 At kami ay pagpunta upang makita ang ano ang ibig sabihin na sa ibang pagkakataon. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Kaya rito ay isa lamang lumikha kami ng isang partikular na pangyayaring tinatawag na alerto UI 720 00:46:51,120 --> 00:46:52,210 view. 721 00:46:52,210 --> 00:46:54,440 View ng isang alerto UI kung ano talaga habilin mo 722 00:46:54,440 --> 00:46:58,940 makita sa bawat oras na pop sa isang bagay up at humihiling sa iyo para sa input, 723 00:46:58,940 --> 00:47:03,080 tulad ng kung ano ang mangyayari kapag sinusubukan upang bumili ng isang bagay sa isang app store. 724 00:47:03,080 --> 00:47:14,250 >> Bilang karagdagan sa na, pagkatapos mong lumikha nito, ipakita lamang namin ang alerto. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Ang lahat ng mga karapatan, sabihin mabilis lang pangsubok na pita na gawa na o hindi. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Iyon ay napaka-cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Ngayon sabihin aktwal na lumikha ng isang field ng input para sa alerto UI. 731 00:47:59,120 --> 00:48:01,170 Ito ay kung paano namin gawin iyon. 732 00:48:01,170 --> 00:48:07,490 At dapat naming magkaroon ng isang input view para sa alerto. 733 00:48:07,490 --> 00:48:09,020 Sobrang ayos. 734 00:48:09,020 --> 00:48:12,330 Hayaan sabihin ng lang 10. 735 00:48:12,330 --> 00:48:14,900 >> Hindi ito ginagawa ng kahit ano karapatan ngayon dahil sa tawag talaga 736 00:48:14,900 --> 00:48:17,770 Hindi mababago para sa pagpapatupad sa Mario. 737 00:48:17,770 --> 00:48:23,470 Kaya ito ay naging kaunti bit kakaiba dahil sa tuwing 738 00:48:23,470 --> 00:48:30,790 pindutin kami ng isang pindutan pababa, sa tuwing namin pindutin ng isang pindutan sa view ng alerto, 739 00:48:30,790 --> 00:48:35,560 isang bagay na dapat mangyari, ngunit hindi ito mangyayari. 740 00:48:35,560 --> 00:48:37,220 Paano kami narinig? 741 00:48:37,220 --> 00:48:41,280 Paano ko malalaman namin na ang isang gumagamit Na-dismiss ang isang view ng alerto 742 00:48:41,280 --> 00:48:45,630 at na ipinasok ng isang numero, dahil sa ngayon walang ay talagang nangyayari. 743 00:48:45,630 --> 00:48:50,450 >> Well, maaari mo pa nahulaan ito ng tama, pagtatalaga. 744 00:48:50,450 --> 00:48:55,440 Kaya bilang karagdagan sa lahat mga pagdeklara, 745 00:48:55,440 --> 00:49:03,190 kailangan namin upang magdagdag ng isang bagong pagtatalaga sa tinatawag itong UI view ng alerto delegado. 746 00:49:03,190 --> 00:49:06,440 Kaya na ang bawat solong pakikipag-ugnayan o kaganapan 747 00:49:06,440 --> 00:49:10,190 na kami ay pagpunta sa may sa view ng alerto UI 748 00:49:10,190 --> 00:49:14,100 ay pagpunta sa pangasiwaan sa pamamagitan ng aming klase pati na rin. 749 00:49:14,100 --> 00:49:26,297 >> Kaya bukod sa na, magiging pindutan ng alerto view ng pag-click sa index. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Ito ay naabot. 752 00:49:37,730 --> 00:49:42,020 Kaya kung sakaling mayroon kaming already-- kaya kami ay 753 00:49:42,020 --> 00:49:46,210 natagpuan ang isang protocol na ay mapupunta sa kaganapan kapag 754 00:49:46,210 --> 00:49:51,320 i-click namin ang pindutan Tapos na sa view ng alerto. 755 00:49:51,320 --> 00:49:55,976 Kaya sa tuwing i-dismiss namin ang view ng alerto, ito dapat mangyari. 756 00:49:55,976 --> 00:49:57,350 Hayaan ang subukan lang sa akin ito masyadong mabilis. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Well sa katunayan, naabot namin dito. 759 00:50:19,300 --> 00:50:22,210 >> Kaya dito, kung ano kami ay hindi talagang makakuha ng talagang 760 00:50:22,210 --> 00:50:43,120 makakuha ng the-- Kaya gusto namin upang makakuha ng out ang teksto na mayroon kami dati 761 00:50:43,120 --> 00:50:45,350 inilagay sa view ng alerto. 762 00:50:45,350 --> 00:50:48,505 At batay sa teksto, hindi namin pagpunta upang ipakita Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Ito masyadong mabilis lumiliko out kung talagang gumagana o hindi. 765 00:50:55,480 --> 00:50:59,476 Kaya sa kasong iyon, kung input namin, dapat naming makita 10 sabihin nating, 10,. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Mabuti, mayroon kaming isang numero dito. 768 00:51:05,210 --> 00:51:06,470 Kahanga mabuti. 769 00:51:06,470 --> 00:51:16,840 Ngayon ang huling hakbang ay be-- Kaya ang huling hakbang na kailangan namin upang gawin sa ngayon 770 00:51:16,840 --> 00:51:21,100 ay lamang ng isang tumawag sa Mario sa antas batay sa mga pag-input 771 00:51:21,100 --> 00:51:23,270 na inilalagay namin sa view alerto. 772 00:51:23,270 --> 00:51:26,920 Kaya kailangan naming i-convert ang string na ito sa iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Static overflow ay napaka-hanga. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 At pagkatapos ay tawagan lang namin sa sarili marioWithLevels halaga. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Tingnan natin habilin natin iyon talagang gumagana o hindi. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Mayroon kaming bibigyan ng pyramid. 781 00:52:01,550 --> 00:52:04,785 Subukan na baguhin ang taas Hayaan. 782 00:52:04,785 --> 00:52:06,530 Na talagang gumagana. 783 00:52:06,530 --> 00:52:07,610 Ito ay medyo cool. 784 00:52:07,610 --> 00:52:10,420 Kaya ngayon maaari ka lamang input ng anumang halaga na gusto mo. 785 00:52:10,420 --> 00:52:12,440 Sabihin nating apat lamang. 786 00:52:12,440 --> 00:52:14,260 Iyon Kahanga-hanga. 787 00:52:14,260 --> 00:52:17,090 Kaya ito ay isa lamang isang tunay na mabilis na halimbawa 788 00:52:17,090 --> 00:52:23,170 para sa kung paano lumikha ng isang proyekto sa mga code at kung paano talagang mabilis wire up 789 00:52:23,170 --> 00:52:26,220 ang ilang mga talagang simpleng kaganapan at mga function. 790 00:52:26,220 --> 00:52:28,840 >> Kaya ang pinagmulan ay pagpunta upang mailagay sa online sa ibang pagkakataon. 791 00:52:28,840 --> 00:52:33,400 Kaya kung interesado ka sa kung paano gumagana ang iOS Mario, 792 00:52:33,400 --> 00:52:38,360 Pupunta ako upang ilagay ang eksaktong katulad mga proyekto papunta sa CS50 website sa ibang pagkakataon. 793 00:52:38,360 --> 00:52:41,260 Talaga tapos na kami sa ng tag-init, at bago namin tapusin 794 00:52:41,260 --> 00:52:45,190 Gusto ko lang ituro sa iyo guys sa ang ilang mga talagang kahanga-hangang mga mapagkukunan na 795 00:52:45,190 --> 00:52:47,550 Available online. 796 00:52:47,550 --> 00:52:52,270 >> Malinaw ang pagdodokumento ng Apple ay magiging kapaki-pakinabang. 797 00:52:52,270 --> 00:52:57,630 Ngunit bilang karagdagan sa na, ako lalo na Inirerekumenda apat na mapagkukunan, paaralan code, 798 00:52:57,630 --> 00:53:02,120 puno bahay, AppCoda at WWDC video. 799 00:53:02,120 --> 00:53:07,270 Paaralan Code at puno ng bahay ay dalawang online na mga website educating, 800 00:53:07,270 --> 00:53:10,210 na partikular na pagtuon sa software engineering. 801 00:53:10,210 --> 00:53:16,930 Lalo na para sa paaralan na code, ang mga ito Mayroon talagang magandang tutorial sa iOS. 802 00:53:16,930 --> 00:53:19,550 >> Iyon ay isang tunay na mabilis na halimbawa para dito. 803 00:53:19,550 --> 00:53:22,980 Talaga silang lumikha ng isang talagang cute-- Tignan natin ang maliit na cute na iPhone 804 00:53:22,980 --> 00:53:24,920 taong masyadong maselan sa pananamit banda roon, ito ay Kahanga-hanga. 805 00:53:24,920 --> 00:53:31,010 At ang paraan ng ipaliwanag nila Layunin C syntax ay lubos na malinaw. 806 00:53:31,010 --> 00:53:32,230 Tree house ay pareho. 807 00:53:32,230 --> 00:53:34,660 At AppCoda ay isang forum. 808 00:53:34,660 --> 00:53:38,130 Ito ay talagang isang blog na tumakbo sa pamamagitan ng isang talagang nakaranas ng Layunin C 809 00:53:38,130 --> 00:53:39,120 programmer. 810 00:53:39,120 --> 00:53:43,950 At ang lahat ng mga tutorial sa AppCoda ay medyo maikli at madaling ipatupad, 811 00:53:43,950 --> 00:53:45,390 lubos na inirerekomenda. 812 00:53:45,390 --> 00:53:47,700 >> At kung ikaw ay isang developer, pumunta Siguradong suriin 813 00:53:47,700 --> 00:53:55,660 kung paano ang WWDC video kung saan maaari kang alamin ang tungkol sa pinakabagong iOS programming 814 00:53:55,660 --> 00:53:58,250 diskarte, mga API at mga aklatan. 815 00:53:58,250 --> 00:54:02,850 Kaya na ay medyo marami ito para sa seminar. 816 00:54:02,850 --> 00:54:03,820 Salamat sa iyo kaya magkano. 817 00:54:03,820 --> 00:54:08,040 At Umaasa ako na mayroon kang masaya paglikha ng iyong sariling iOS app. 818 00:54:08,040 --> 00:54:09,302