1 00:00:00,000 --> 00:00:11,270 2 00:00:11,270 --> 00:00:14,340 >> Daniel ARMENDARIZ: Kamusta, lahat, maligayang pagdating sa pagbuo iOS app 3 00:00:14,340 --> 00:00:15,020 may mabilis. 4 00:00:15,020 --> 00:00:15,870 Ako Dan Armendariz. 5 00:00:15,870 --> 00:00:18,920 Ako precepter ng computer agham dito sa Paaralan 6 00:00:18,920 --> 00:00:21,200 of Engineering at Applied Agham. 7 00:00:21,200 --> 00:00:24,310 At mabilis ay talagang uri ng isang talagang nasa ayos wika. 8 00:00:24,310 --> 00:00:27,190 At Mayroon akong ilang mga plano para sa araw na ito. 9 00:00:27,190 --> 00:00:31,430 Kaya sa susunod na oras o kaya kami ay pagpunta upang tumingin sa pag-unlad iOS app mismo 10 00:00:31,430 --> 00:00:36,640 gamit ang Xcode at aktwal na paglikha ng ilang mga napaka basic, napaka-simpleng application. 11 00:00:36,640 --> 00:00:40,070 At pagtingin sa mga paraan na talagang tumagal ng mga application na iyon, 12 00:00:40,070 --> 00:00:42,887 at bumuo ng mga ito, at talagang ilagay ang mga ito sa isang aparatong iOS. 13 00:00:42,887 --> 00:00:44,970 Ang ilan sa mga bagay na Hindi namin pagpunta sa tumingin sa 14 00:00:44,970 --> 00:00:47,540 Magsasama mga bagay tulad ng talagang pagkuha ng application 15 00:00:47,540 --> 00:00:48,940 at paglalagay ito sa store app. 16 00:00:48,940 --> 00:00:52,930 Marami ng mga tutorial online na ay makakatulong sa iyo sa na aspeto ng ito. 17 00:00:52,930 --> 00:00:56,230 Ngunit dahil rin bilang bahagi ng CS50, makakakuha ka ng 18 00:00:56,230 --> 00:00:59,780 upang sumali sa pag-unlad ng Apple koponan, koponan sa pagbuo ng app CS50 iyon. 19 00:00:59,780 --> 00:01:02,790 Kung hindi mo pa tapos na at ikaw ay kaanib sa CS50, 20 00:01:02,790 --> 00:01:04,810 Ako pinapayo na inyong gawin iyon dahil iyon 21 00:01:04,810 --> 00:01:08,820 ay kung paano ka makakalikha ng mga ang ilang mga programa sa Xcode, 22 00:01:08,820 --> 00:01:11,890 bumuo ng mga ito, at talagang ilagay ang mga ito sa ilan sa iyong iOS device 23 00:01:11,890 --> 00:01:14,087 kung aktwal mong magkaroon ng isang pisikal na iOS device. 24 00:01:14,087 --> 00:01:16,670 Kung wala kang isang pisikal na iOS aparato na higit sa multa. 25 00:01:16,670 --> 00:01:19,810 Maaari mong aktwal na bumuo ng para sa iOS. 26 00:01:19,810 --> 00:01:22,390 At Xcode ay may simulator na nagbibigay-daan sa iyo 27 00:01:22,390 --> 00:01:26,570 upang makita ang iyong application sa pagkilos sa iyong computer. 28 00:01:26,570 --> 00:01:30,440 Ngunit ito uri ng ay isang malinis at maayos na bagay upang aktwal na-play at nakikipag-ugnayan 29 00:01:30,440 --> 00:01:34,235 kasama ng iyong application sa isang aktwal na device. 30 00:01:34,235 --> 00:01:37,360 Kaya mayroong ilang mga kinakailangan upang talagang gawin ang lahat ng ito unlad. 31 00:01:37,360 --> 00:01:39,151 Ang isa sa mga ito ay ang kailangan mong magkaroon ng isang Mac. 32 00:01:39,151 --> 00:01:44,770 Ito ay upang patakbuhin ang 10.9.4 o mas bago upang gawin unlad sa mabilis. 33 00:01:44,770 --> 00:01:47,770 >> Maaari mong gamitin ang isang mas maagang bersyon upang bumuo ng 34 00:01:47,770 --> 00:01:50,810 may Hangarin C para sa iOS at Mac. 35 00:01:50,810 --> 00:01:53,990 Ngunit inirerekumenda ko, at maraming mga mga halimbawa na aming makita ngayon, 36 00:01:53,990 --> 00:01:55,700 gamitin 10.10 Yosemite. 37 00:01:55,700 --> 00:02:00,910 Kaya kung hindi mo pa na-upgrade na, ito ay isang magandang dahilan para gawin ito. 38 00:02:00,910 --> 00:02:05,480 Ngayon Xcode 6.1 ay ang pinakabagong bersyon ng ang integrated kapaligiran ng pagbuo ng 39 00:02:05,480 --> 00:02:08,979 na Apple ay nagbibigay ng libre na Maaari mong i-download off sa store app. 40 00:02:08,979 --> 00:02:11,220 At inirerekomenda ko na sa iyo tumakbo din sa pinakabagong bersyon. 41 00:02:11,220 --> 00:02:14,700 >> Kung mangyari sa iyo upang patakbuhin ang isang mas maagang bersyon, Xcode 5 at sa ibaba lamang 42 00:02:14,700 --> 00:02:16,741 lamang ay hindi sumusuporta sa matulin kung ano pa man. 43 00:02:16,741 --> 00:02:19,490 At ang mga bersyon na beta ng anim na ay inilabas sa ibabaw ng tag-araw, 44 00:02:19,490 --> 00:02:21,770 gawin sinusuportahan ng matulin, ngunit mayroong naging isang malaking bilang 45 00:02:21,770 --> 00:02:25,220 ng mga pagbabago sa wika, sapat na kaya na ang code na ikaw ay 46 00:02:25,220 --> 00:02:28,320 pagpunta sa tumingin sa at na maaaring mahanap sa internet 47 00:02:28,320 --> 00:02:33,294 hindi talaga mag-compile ng maayos sa mga naunang mga bersyon ng Xcode. 48 00:02:33,294 --> 00:02:35,460 Kaya muli, kung wala ka pa May isang developer account, 49 00:02:35,460 --> 00:02:38,560 Inirerekumenda ko mong pumunta sa developer.apple.com. 50 00:02:38,560 --> 00:02:42,240 Mag-sign up, lumikha ng isang developer account, at sumali sa koponan sa pagbuo ng CS50 app. 51 00:02:42,240 --> 00:02:45,530 Na magbibigay sa iyo ng pagkakataon upang ipunin ang iyong mga application 52 00:02:45,530 --> 00:02:47,840 at ilagay ang mga ito sa iyong device. 53 00:02:47,840 --> 00:02:49,222 OK, kaya sabihin makapagsimula. 54 00:02:49,222 --> 00:02:50,930 Ang napaka-unang bagay na kami ay pagpunta sa gawin ay 55 00:02:50,930 --> 00:02:55,140 upang aktwal na lumikha ng isang napaka simpleng proyekto sa Xcode 56 00:02:55,140 --> 00:02:59,530 na magpapahintulot sa iyo upang gumawa ng isang application. 57 00:02:59,530 --> 00:03:03,170 >> Kaya kung hindi ka pang Xcode bukas, sige at buksan ito 58 00:03:03,170 --> 00:03:04,270 at lumikha ng isang bagong proyekto. 59 00:03:04,270 --> 00:03:06,570 Ang isang espesyal na splash screen ay magbubukas at magbibigay sa iyo 60 00:03:06,570 --> 00:03:08,800 ilang mga pagpipilian tungkol sa kung ano ito ay na gusto mong gawin. 61 00:03:08,800 --> 00:03:12,170 Sabihin lang na gusto mong likhain isang bagong proyekto, isang bagong application. 62 00:03:12,170 --> 00:03:15,650 Window na ito magpa-pop up, sa pag-aakala na ginagamit mo Xcode 6.1. 63 00:03:15,650 --> 00:03:17,650 Sa ngayon, at para sa mga tagal ng seminar, 64 00:03:17,650 --> 00:03:19,990 kami ay pagpunta sa gumagamit -iisang view ng mga application, tulad 65 00:03:19,990 --> 00:03:22,590 uri ng isang pangunahing application upang makuha ang iyong mga paa basa. 66 00:03:22,590 --> 00:03:25,200 At maaari mong magpalago ng negosiyo sa iyong sariling mula doon. 67 00:03:25,200 --> 00:03:27,660 >> I-click ang Susunod sa puntong ito. 68 00:03:27,660 --> 00:03:30,796 Ngayon dito mayroong dalawang bagay na maaaring gusto mong ipasok. 69 00:03:30,796 --> 00:03:32,670 Ang pangalan ng produkto ay ang pangalanan ng iyong proyekto. 70 00:03:32,670 --> 00:03:34,859 Sa kasong ito, lamang ako pagpunta sa tumawag ito Seminar1 71 00:03:34,859 --> 00:03:36,150 dahil ito ay ang aming unang halimbawa. 72 00:03:36,150 --> 00:03:38,290 Pangalan ng samahan, sa kasong ito ay ang aking pangalan lamang. 73 00:03:38,290 --> 00:03:41,760 Maaari mong siyempre baguhin ito sa iyong sariling pangalan, o sa CS50. 74 00:03:41,760 --> 00:03:46,160 Tagatukoy ng organisasyon, kung mangyari na magkaroon ng isang website tumagal lamang 75 00:03:46,160 --> 00:03:49,940 ang pangalan ng domain sa baligtarin, com.yourname. 76 00:03:49,940 --> 00:03:54,200 at pagkatapos ay ang pangalan ng produkto ay dapat na awtomatikong lumitaw 77 00:03:54,200 --> 00:03:55,820 pagkatapos na bilang bundle identifier. 78 00:03:55,820 --> 00:03:59,200 >> Malinaw na ang wika na hindi namin pagpunta sa gumagamit para sa araw ay matulin. 79 00:03:59,200 --> 00:04:02,590 Maaari mong, siyempre, gamitin Layunin C para iyon, ngunit ngayon ay magiging mabilis. 80 00:04:02,590 --> 00:04:04,920 At kami sa ngayon sabihin unibersal na aparato, kaya 81 00:04:04,920 --> 00:04:06,900 na ito ay gumagana sa parehong iPad at iPhone. 82 00:04:06,900 --> 00:04:10,040 At aming iwan core walang check upang mapanatili ang data 83 00:04:10,040 --> 00:04:12,830 ang proyektong medyo simpleng para sa ngayon. 84 00:04:12,830 --> 00:04:14,430 Kaya sabihin sige at i-click ang Susunod. 85 00:04:14,430 --> 00:04:16,471 At ito ay pagpunta sa hilingin sa akin kung saan gusto kong i-save ito. 86 00:04:16,471 --> 00:04:19,250 Makikita lamang i-save ko ito sa aking desktop para sa ngayon. 87 00:04:19,250 --> 00:04:22,267 >> Ang lahat ng mga karapatan, kaya ngayon ito ang habilin mangyari kapag aktwal mong bukas Xcode. 88 00:04:22,267 --> 00:04:24,100 At mapansin na ang napaka unang bagay na nakikita mo 89 00:04:24,100 --> 00:04:28,770 ay ang exclamation point na sabi walang natagpuang pag-sign pagkakakilanlan. 90 00:04:28,770 --> 00:04:31,520 Sinasadya kong ginawa ito sa aking computer at ako ay 91 00:04:31,520 --> 00:04:34,220 umaasa na pupuntahan ko magagawang upang aktwal na ayusin ito, 92 00:04:34,220 --> 00:04:37,860 dahil gusto ko sa iyo upang makita kung paano ito ang talagang gumagana sa iyong sariling machine. 93 00:04:37,860 --> 00:04:40,400 >> Sige at i-click ang isyu remedyo. 94 00:04:40,400 --> 00:04:45,400 Ito ay hihilingin sa iyo kung mayroon kang isang umiiral na mansanas developer account. 95 00:04:45,400 --> 00:04:48,330 Ito ay kung saan pagsali sa CS50 koponan sa pagbuo ng app 96 00:04:48,330 --> 00:04:51,240 Mahalaga upang hindi ka magkaroon ng isang app account lamang, 97 00:04:51,240 --> 00:04:53,690 ngunit magkakaroon ka rin ng kakayahan upang mag-sign ng mga apps 98 00:04:53,690 --> 00:04:56,420 at ilagay ang mga ito sa iyong iOS device. 99 00:04:56,420 --> 00:04:58,957 Ito ay not-- pag-click isyung pag-aayos ay hindi na kinakailangan 100 00:04:58,957 --> 00:05:01,040 kung saan ka ng pagpunta sa bumuo at bumuo ng mga lokal, 101 00:05:01,040 --> 00:05:03,520 ganap sa loob ng iOS simulator. 102 00:05:03,520 --> 00:05:05,820 >> Ngunit sa ngayon ako pupunta upang bumuo at ilagay ang mga ito 103 00:05:05,820 --> 00:05:08,160 sa aking iPad, na magiging magagawang mag-broadcast pati na rin. 104 00:05:08,160 --> 00:05:10,770 Kaya nais kong aktwal na magdagdag na ito. 105 00:05:10,770 --> 00:05:13,670 At ito ay pagpunta sa magtanong sa akin para sa aking mansanas ID. 106 00:05:13,670 --> 00:05:15,700 Kaya ito ay magiging ito. 107 00:05:15,700 --> 00:05:18,940 At Kailangan ko bang makuha ang aking password, na sa paglipas dito. 108 00:05:18,940 --> 00:05:27,760 Kaya ninyo ako lamang isang segundo upang mahanap iyon, at kopyahin iyon, at ilagay ito sa paglipas dito. 109 00:05:27,760 --> 00:05:28,580 >> I-click ang Idagdag. 110 00:05:28,580 --> 00:05:31,095 Ito ay pagpunta sa hilingin sa akin na koponan gusto kong sumali. 111 00:05:31,095 --> 00:05:33,240 Pupunta ako sa gawin sa paaralan ng engineering. 112 00:05:33,240 --> 00:05:35,680 I-click ang Sumali. 113 00:05:35,680 --> 00:05:37,780 Oops, iyon ang isa mali. 114 00:05:37,780 --> 00:05:40,730 Gawin natin ang isang Hayaan. 115 00:05:40,730 --> 00:05:42,060 Sana isa na gagana. 116 00:05:42,060 --> 00:05:44,220 Isa na pa rin ay hindi gumagana. 117 00:05:44,220 --> 00:05:46,610 Kami ay nauubusan ng mahusay na mga bago dito. 118 00:05:46,610 --> 00:05:48,260 OK, dapat na gumana ang isang ito. 119 00:05:48,260 --> 00:05:50,816 Ngayon isara iyon. 120 00:05:50,816 --> 00:05:54,450 Ngayon ay gagawin sa paaralan ng ipaalam engineering, i-click pumili. 121 00:05:54,450 --> 00:06:00,190 >> At ngayon sana ay pagkatapos ng ilang segundo can-- mo OK, 122 00:06:00,190 --> 00:06:02,550 Kukunin ko bawiin at kahilingan. 123 00:06:02,550 --> 00:06:05,410 Oh tao, ito ay magiging hindi gumagana. 124 00:06:05,410 --> 00:06:08,890 OK, kukunin ko na subukan ang ibang isa. 125 00:06:08,890 --> 00:06:11,167 Gawin natin ang isa dito Hayaan. 126 00:06:11,167 --> 00:06:17,020 127 00:06:17,020 --> 00:06:19,310 Live na demo ay hindi pagtupad sa akin. 128 00:06:19,310 --> 00:06:22,540 Maaari naming mayroon upang bumalik sa makatarungan pagbuo ng ganap na lokal, 129 00:06:22,540 --> 00:06:25,050 ngunit nais na maging OK sa kasong ito. 130 00:06:25,050 --> 00:06:28,560 >> Kaya dito, habang ito ay talagang pagtatrabaho, kung ano kami ay pagpunta sa gawin ay lamang 131 00:06:28,560 --> 00:06:31,190 lumikha ng isang napakasimpleng Hello World application. 132 00:06:31,190 --> 00:06:32,340 Kaya ito ay Xcode. 133 00:06:32,340 --> 00:06:37,300 At kung hindi ka pa nakikita ito, ito ay maaaring maging isang maliit na intimidating sa unang. 134 00:06:37,300 --> 00:06:41,430 Marami ng mga pane, may maraming doodads sa iba't ibang lugar. 135 00:06:41,430 --> 00:06:44,300 Ngunit Napagtanto lamang na mayroong talagang ilang mga pangunahing bahagi 136 00:06:44,300 --> 00:06:46,580 sa kapaligiran ng pagbuo. 137 00:06:46,580 --> 00:06:51,090 Sa dulong kaliwa ay ang lahat ng mga file na naaangkop sa iyong programa 138 00:06:51,090 --> 00:06:52,997 o sa iyong partikular na proyekto. 139 00:06:52,997 --> 00:06:55,080 Mag-i-click kami sa paligid ng sa ilan sa mga ito at kami ay 140 00:06:55,080 --> 00:06:57,660 ituro ang pinaka mahalaga sa buhay sa paglipas ng panahon. 141 00:06:57,660 --> 00:06:59,650 Sa dulong kanan, namin may isang hanay ng mga katangian. 142 00:06:59,650 --> 00:07:02,920 At lahat ng mga katangian, mayroong iba't-ibang mga pane para sa mga katangian. 143 00:07:02,920 --> 00:07:06,770 Ang mga pane ay magbabago depende sa konteksto ng pangunahing nilalaman, na 144 00:07:06,770 --> 00:07:08,290 ang mangyayari sa maging sa gitna. 145 00:07:08,290 --> 00:07:11,740 Ngayon gitna maaari talagang ipakita sa iyo ng iba't-ibang mga bagay, halimbawa 146 00:07:11,740 --> 00:07:13,290 iyong sarili code. 147 00:07:13,290 --> 00:07:17,070 O maaari mong aktwal na have-- kapag -click ka sa storyboard na 148 00:07:17,070 --> 00:07:21,270 ay, sa pamamagitan ng ang paraan, ang isang graphical na lang representasyon ng iyong user 149 00:07:21,270 --> 00:07:25,350 interface para sa iyong application-- pagkatapos ay ang mga katangian Pane 150 00:07:25,350 --> 00:07:27,334 sa pinakadulo dulong kanan ang talagang baguhin. 151 00:07:27,334 --> 00:07:29,750 Ngayon ay mayroong isang pares ng mga iba pang mga bagay na gusto kong ituro. 152 00:07:29,750 --> 00:07:33,360 Maaari mong uri ng galugarin sa paligid sa kapaligiran sa inyong sarili. 153 00:07:33,360 --> 00:07:35,730 Ngunit ang isa sa mga bagay na lubos na kapaki-pakinabang 154 00:07:35,730 --> 00:07:38,470 ay ang pindutang ito dito, ang kanang tuktok ng window. 155 00:07:38,470 --> 00:07:41,230 Mayroong ang pindutang ito na mukhang sa malayong 156 00:07:41,230 --> 00:07:46,090 Umalis ito ay may talata sinundan ng dalawang mga lupon at pag-uuri 157 00:07:46,090 --> 00:07:49,540 ng dalawang arrow na nakaturo layo mula sa isa't isa. 158 00:07:49,540 --> 00:07:52,640 Kung lumipat ka sa pagitan ng karaniwang editor, na 159 00:07:52,640 --> 00:07:55,560 ay ang malayo pakaliwa isa, ang isa na napili sa pamamagitan ng default, 160 00:07:55,560 --> 00:08:01,040 at ang dalawang mga lupon nagpapang-abot bawat isa, kung ano ang iyong aktwal na makakuha ng 161 00:08:01,040 --> 00:08:02,210 ay isang double view ng pane. 162 00:08:02,210 --> 00:08:04,240 >> At ito ay ang tunay pagpunta sa maging kapaki-pakinabang para sa amin 163 00:08:04,240 --> 00:08:07,330 kapag kailangan naming i-link ang mga item sa UI sa code. 164 00:08:07,330 --> 00:08:09,330 At kami makipag-usap higit pa tungkol sa na sa ilang saglit lamang. 165 00:08:09,330 --> 00:08:12,050 Ngunit mapagtanto na kung ikaw ay makakuha higit pang mga pane tulad nito, 166 00:08:12,050 --> 00:08:15,830 maaari mong pasimplehin ang iyong pagtingin lamang Medyo pamamagitan ng pag-click muli 167 00:08:15,830 --> 00:08:20,680 sa iyong solong editor. 168 00:08:20,680 --> 00:08:21,580 Sa ngayon kaya magandang. 169 00:08:21,580 --> 00:08:24,560 Kaya isa lamang mayroon kaming ang code sa sa kaliwa, mga katangian sa kanan, 170 00:08:24,560 --> 00:08:28,260 at kahit anong ito ay nagsusumikap kami sa dito sa sentro napaka. 171 00:08:28,260 --> 00:08:30,390 >> Kaya dito na-click ko sa pangunahing storyboard. 172 00:08:30,390 --> 00:08:33,350 At ang storyboard, muli, ay isang paraan sa Xcode 173 00:08:33,350 --> 00:08:38,110 na maaari mong aktwal na lumikha ng iyong user interface gamit ang i-drag at i-drop lamang 174 00:08:38,110 --> 00:08:39,130 diskarte. 175 00:08:39,130 --> 00:08:41,190 At kaya para sa aming napaka unang application na ito 176 00:08:41,190 --> 00:08:42,720 ay tiyak kung ano ang pagpunta naming gawin. 177 00:08:42,720 --> 00:08:45,950 Kami ay pagpunta sa pumunta pababa sa napakalayo kanang bahagi 178 00:08:45,950 --> 00:08:49,900 ng screen, na naglalaman ng ng iba't-ibang mga elemento ng user 179 00:08:49,900 --> 00:08:53,270 na maaari mong pagkatapos ay i-click at i-drag upang likhain ang iyong user interface. 180 00:08:53,270 --> 00:08:55,550 >> Ngayon ang lahat ng mga mga elemento ay tinatawag na tanawin 181 00:08:55,550 --> 00:08:57,370 dahil matustusan ang mga ito ng ilang uri ng view. 182 00:08:57,370 --> 00:09:00,190 Mayroong isang view ng imahe, para sa Halimbawa, upang aktwal na ipakita 183 00:09:00,190 --> 00:09:01,740 isang imahe sa user interface. 184 00:09:01,740 --> 00:09:04,310 Mayroong isang talahanayan tanawin talaga magpakita ng table. 185 00:09:04,310 --> 00:09:05,190 Kaya sa at iba pa. 186 00:09:05,190 --> 00:09:08,250 Mayroong iba't-ibang uri ng mga view na maaari mong piliin dito. 187 00:09:08,250 --> 00:09:11,100 Kaya lang sa ngayon kami ay pagpunta upang maghanap para sa isang label. 188 00:09:11,100 --> 00:09:13,550 Maaari mo lamang mag-scroll sa lahat ng mga listahan na doon. 189 00:09:13,550 --> 00:09:15,460 Ngunit mayroong mga paghahanap humadlang sa ilalim napaka 190 00:09:15,460 --> 00:09:19,460 na ginagawang mas madali upang makilala tiyak na tanawin na iyong aktwal na 191 00:09:19,460 --> 00:09:22,020 nais na i-drag sa iyong user interface. 192 00:09:22,020 --> 00:09:23,560 >> Natagpuan ang aking mga label. 193 00:09:23,560 --> 00:09:28,430 Pupunta ako sa i-drag ito dito, direkta sa aking mga sample na application. 194 00:09:28,430 --> 00:09:30,130 I-right doon sa mukhang maganda ang gitna. 195 00:09:30,130 --> 00:09:33,180 At ako pupunta i-type ang "Hello World!" 196 00:09:33,180 --> 00:09:33,810 Pindutin ang Enter. 197 00:09:33,810 --> 00:09:34,877 Ngayon Mayroon akong isang label. 198 00:09:34,877 --> 00:09:36,960 Hindi ito hitsura ito nakasentro medyo maayos. 199 00:09:36,960 --> 00:09:38,500 Kaya ang maaari kong subukan upang muling center nito. 200 00:09:38,500 --> 00:09:42,100 Sa kabutihang palad nag-aalok ito ng mga Mga Gabay upang gawing mas madali ang mga bagay. 201 00:09:42,100 --> 00:09:44,130 Pupunta ako sa subukan upang ipunin ito. 202 00:09:44,130 --> 00:09:46,570 Sana ito ay aktwal na nagtatrabaho dito. 203 00:09:46,570 --> 00:09:52,870 At kung hindi, sa ilang sandali lamang ito ay sa katunayan lumitaw sa aking iPad. 204 00:09:52,870 --> 00:09:54,360 Ito ay dito mismo. 205 00:09:54,360 --> 00:09:55,060 May ito ay. 206 00:09:55,060 --> 00:09:56,590 >> OK, kaya na ito. 207 00:09:56,590 --> 00:09:57,160 Tapos na kami. 208 00:09:57,160 --> 00:09:58,868 Na nilikha namin ang aming napaka unang application. 209 00:09:58,868 --> 00:10:01,330 Ngayon malinaw naman ito ay hindi gumawa ng kahit ano. 210 00:10:01,330 --> 00:10:02,280 Ito ay isang label lamang. 211 00:10:02,280 --> 00:10:07,350 Walang koneksyon sa pagitan ng ang user interface at ang code. 212 00:10:07,350 --> 00:10:10,130 Kaya kung talagang nais namin upang magawa ang koneksyon, 213 00:10:10,130 --> 00:10:14,790 kung gusto talaga naming magkaroon ng isang uri ng komunikasyon sa pagitan ng mga elemento 214 00:10:14,790 --> 00:10:17,540 na umiiral sa screen at ang code na 215 00:10:17,540 --> 00:10:19,810 Binibigyang-daan sa amin upang makontrol mga elementong iyon, pagkatapos ay 216 00:10:19,810 --> 00:10:23,570 talagang kailangan namin upang tingnan ang code mismo. 217 00:10:23,570 --> 00:10:27,000 >> Kaya ito ay kung ano ang tawag dito ViewController.swift. 218 00:10:27,000 --> 00:10:30,080 At para sa, lalo na para sa ang iyong unang ilang mga programa, 219 00:10:30,080 --> 00:10:33,120 ito ay magiging uri ng mga bulk ng code na enter-- mo 220 00:10:33,120 --> 00:10:35,980 ay magiging sa dokumentong ito dito. 221 00:10:35,980 --> 00:10:38,390 Marami ng mga bagay-bagay na nasa dito sa ngayon, tama? 222 00:10:38,390 --> 00:10:42,660 May pag-import UI kit klase, i-override, [? maging sobrang lungkot,?] ang lahat ng mga iba't-ibang bagay. 223 00:10:42,660 --> 00:10:45,820 At ito ay hindi masyadong malinaw kung ano ito ay ang lahat ng ito ay nangangahulugang. 224 00:10:45,820 --> 00:10:48,570 Kaya ipaalam sa tumagal ng isang hakbang pabalik layo mula sa Xcode para sa ilang sandali 225 00:10:48,570 --> 00:10:52,420 at tumingin sa mismong wika, mabilis. 226 00:10:52,420 --> 00:10:56,370 >> Kaya sa mabilis, ito ay nasa disenyo at pag-unlad 227 00:10:56,370 --> 00:10:58,645 sa Apple para sa mga apat na taon sa aking pang-unawa. 228 00:10:58,645 --> 00:11:01,270 At mayroong isang pares ng mga tampok tungkol dito na talagang nasa ayos. 229 00:11:01,270 --> 00:11:03,910 Una sa lahat, ito ay pinagsama-sama wika, nais lamang C. 230 00:11:03,910 --> 00:11:06,120 Kaya unang mayroon kang upang mag-compile ito at pagkatapos ay patakbuhin ito 231 00:11:06,120 --> 00:11:09,580 bago maaari mong aktwal na isakatuparan ang code na nagreresulta. 232 00:11:09,580 --> 00:11:14,250 Ngunit mayroong, hindi tulad ng C, isang interactive -prompt na maaari mong aktwal na tumakbo 233 00:11:14,250 --> 00:11:16,680 at i-type arbitrary command sa. 234 00:11:16,680 --> 00:11:20,280 At napaka tulad ng isang JavaScript console, kung saan maaari kang maging pamilyar sa ngayon, 235 00:11:20,280 --> 00:11:24,506 ito talagang susuriin ng mga command at magbigay sa iyo ang output. 236 00:11:24,506 --> 00:11:26,380 At kahit na kanilang kinuha na sa susunod na antas 237 00:11:26,380 --> 00:11:29,100 at nakalikha sila ng isang bagay tinatawag na palaruan sa Xcode 238 00:11:29,100 --> 00:11:31,720 na nagbibigay-daan sa iyo upang biswal na gumagana sa mga code. 239 00:11:31,720 --> 00:11:34,910 At kami talaga makita ang ilang mga halimbawa ng na sa loob lamang ng ilang sandali. 240 00:11:34,910 --> 00:11:41,680 Ito ay batay sa C. C underlies ito, dahil ang lahat ng mga compiler 241 00:11:41,680 --> 00:11:46,820 lumikha code sumali sa C at lumikha ng object code mula dito. 242 00:11:46,820 --> 00:11:49,240 Ngunit ito ay talagang pagbabahagi medyo maliit na syntax. 243 00:11:49,240 --> 00:11:50,721 Magmumukha itong medyo naiiba. 244 00:11:50,721 --> 00:11:51,970 Makikita may mga ilang pagkakatulad. 245 00:11:51,970 --> 00:11:54,140 Ngunit may ay magiging medyo ilang pagkakaiba 246 00:11:54,140 --> 00:11:57,200 kumpara sa, sabihin nating, JavaScript o PHP. 247 00:11:57,200 --> 00:11:59,070 At kami ay tumuturo sa mga out sa ilang sandali lamang. 248 00:11:59,070 --> 00:12:01,420 >> Ngayon isa sa pinakamalaking bagay tungkol sa mabilis na maganda 249 00:12:01,420 --> 00:12:05,650 ay na, lalo na kung ihahambing sa C, ito ay sinadya upang maging ligtas. 250 00:12:05,650 --> 00:12:08,100 Lahat ng nasa loob nito ay sinadya upang ay napaka-Matindi ang nai-type sa. 251 00:12:08,100 --> 00:12:10,780 Sa katunayan ito ay halos nakakainis sa una, kapag mo munang 252 00:12:10,780 --> 00:12:15,610 simulan ang paggawa sa mabilis, lamang kung paano magkano ito nagpapatupad ng mga uri sa lahat ng dako. 253 00:12:15,610 --> 00:12:17,860 Anumang bagay na ang isang string May manatiling isang string. 254 00:12:17,860 --> 00:12:22,100 Ito ay mahirap upang pagbukud-bukurin sa pag-convert ito o pilitin ito sa ilang iba pang mga form. 255 00:12:22,100 --> 00:12:23,800 >> At muli, ipapakita namin ang mga halimbawa ng mga ito. 256 00:12:23,800 --> 00:12:26,830 Ngunit sa huli mapagtanto na ito ay sinadya upang maprotektahan ka, 257 00:12:26,830 --> 00:12:32,010 at sa pamamagitan mo bang sabihin ko ang iyong code, mula sa ang pag-crash sa ilang mga kakila-kilabot na paraan kapag 258 00:12:32,010 --> 00:12:34,330 mayroon kang ilang mga uri ng magkatugma ang uri. 259 00:12:34,330 --> 00:12:36,040 At muli, gumagana sa mga ito. 260 00:12:36,040 --> 00:12:40,210 Dahil ito ay nakakabigo sa unang habang sinusubukan mong malaman kung bakit eksaktong 261 00:12:40,210 --> 00:12:43,070 nakukuha mo ang hindi pangkaraniwang error pakikitungo sa mga uri. 262 00:12:43,070 --> 00:12:45,350 Ngunit ito ay magiging katumbas ng halaga sa dulo. 263 00:12:45,350 --> 00:12:47,267 >> Ito ay haharapin ang mga awtomatikong pamamahala ng memorya, 264 00:12:47,267 --> 00:12:49,100 kaya hindi na gawin mo kailangang harapin ang mga bagay 265 00:12:49,100 --> 00:12:51,400 tulad ng malloc at libreng at ang lahat ng ng mga uri ng mga bagay. 266 00:12:51,400 --> 00:12:53,066 At ito ay dinisenyo din para sa generalities. 267 00:12:53,066 --> 00:12:58,360 Kaya habang maaari naming gamitin ang isang Xcode sa lumikha ng iOS apps at mga application sa Mac, 268 00:12:58,360 --> 00:13:00,380 Maaari rin naming gamitin ang lang ito bilang isang wika scripting. 269 00:13:00,380 --> 00:13:03,660 At upang maaari naming gamitin ito uri-uriin ng sa halip ng PHP o sa halip 270 00:13:03,660 --> 00:13:07,800 ng Python na talaga mabilis parse at proseso 271 00:13:07,800 --> 00:13:09,800 ang ilang mga data na mayroon kami sa aming mga computer. 272 00:13:09,800 --> 00:13:13,290 >> Ito ay may iba't-ibang uri ng modernong mga tampok, optionals, mutability, 273 00:13:13,290 --> 00:13:17,900 generics, pagsasara, at ng maraming ito mga bagay na maaari o hindi maaaring makilala. 274 00:13:17,900 --> 00:13:22,810 At ito ay lamang uri ng isang kapus-kapalaran bahagi ng wika na ang ilan sa mga 275 00:13:22,810 --> 00:13:26,700 uri ng futuristic, moderno elemento na ay nilalaman sa loob ng mga elemento ay 276 00:13:26,700 --> 00:13:34,520 kaya malalim na nakatanim na aktwal na ako'y kailangang turuan CS50.5 ka nang kaunti. 277 00:13:34,520 --> 00:13:37,305 >> Mayroon kaming upang matuto nang higit pa nang kaunti tungkol sa ilan sa mga tampok sa pagkakasunud-sunod 278 00:13:37,305 --> 00:13:40,180 sa tunay na maunawaan kung ano ang nangyayari sa at sa gayon ay maaari kang tumingin sa code 279 00:13:40,180 --> 00:13:42,450 at hindi huwag mag-talagang nawala. 280 00:13:42,450 --> 00:13:44,820 At makikita mo kung ano ang ibig kong sabihin sa pamamagitan ng na ang isang minuto lamang. 281 00:13:44,820 --> 00:13:47,830 OK, kaya let's-- ng sapat na ito uri ng mga maximum na mga bagay-bagay. 282 00:13:47,830 --> 00:13:52,450 Ang aktwal na tumingin sa Pahintulutan ang aming pinakaunang programa matulin. 283 00:13:52,450 --> 00:13:53,590 Ito ay isang linya ng code. 284 00:13:53,590 --> 00:13:57,690 Line 14 dito mismo, ito sabi-print l n kumusta CS50. 285 00:13:57,690 --> 00:14:01,160 >> Kaya mayroong ilang mga bagay na ibang-iba ang tungkol kumpara ito 286 00:14:01,160 --> 00:14:04,140 sa mga bagay na maaari kang maging ginagamit upang mula sa C, halimbawa. 287 00:14:04,140 --> 00:14:08,390 Ang isa sa mga ito ay na walang intmain, hindi na seksyon kabilang ang, 288 00:14:08,390 --> 00:14:10,790 may wala sa mga ito ng dagdag na mga bagay-bagay. 289 00:14:10,790 --> 00:14:13,790 Ang isama, tulad ng karaniwang I / O, tulad ng aklatan 290 00:14:13,790 --> 00:14:16,580 na aktwal na magbigay ng karaniwang tampok ng wika, 291 00:14:16,580 --> 00:14:19,180 Awtomatikong kasama bilang bahagi ng standard library mabilis na 292 00:14:19,180 --> 00:14:20,680 at na awtomatikong na-import. 293 00:14:20,680 --> 00:14:23,740 Hindi mo na kailangang gawin manu-manong na-import. 294 00:14:23,740 --> 00:14:27,360 >> Intmain ay hindi umiiral dahil pangunahing entry point para sa code 295 00:14:27,360 --> 00:14:29,470 ay nasa aktwal simula ng code. 296 00:14:29,470 --> 00:14:32,000 Kaya ang anumang code na mayroon ka na nagsisimula mula sa simula 297 00:14:32,000 --> 00:14:34,940 ang talagang ipatupad sa simula. 298 00:14:34,940 --> 00:14:36,520 Kaya ito ay talagang lubhang pinapasimple. 299 00:14:36,520 --> 00:14:38,470 Pansinin din na walang tuldok-kuwit. 300 00:14:38,470 --> 00:14:41,040 Walang mga semicolon sa wikang ito. 301 00:14:41,040 --> 00:14:43,261 Ikaw ang maglalagay ng isang pahayag sa isang indibidwal na linya 302 00:14:43,261 --> 00:14:45,510 at pagkatapos ay sa susunod na linya Kinakatawan ang iba pang mga pahayag. 303 00:14:45,510 --> 00:14:47,420 Kung nais mong ilagay mulitiple pahayag online, 304 00:14:47,420 --> 00:14:49,086 pagkatapos ay mayroon kang ihiwalay ito sa pamamagitan ng semicolon. 305 00:14:49,086 --> 00:14:50,940 Ngunit para sa pinaka-bahagi, para sa magandang estilo, hindi namin 306 00:14:50,940 --> 00:14:56,530 Hindi kailanman pagpunta upang makita ang semicolon para sa ang layunin ng paghihiwalay ng mga pahayag 307 00:14:56,530 --> 00:14:58,420 sa mabilis. 308 00:14:58,420 --> 00:14:59,820 Kaya kung paano gumagana ang aktwal na gumagana? 309 00:14:59,820 --> 00:15:04,080 Well napaka tulad ng C namin talaga mag-compile ito. 310 00:15:04,080 --> 00:15:10,640 At upang maaari naming gawin iyon sa pamamagitan ng paggamit matulin c at pagkatapos ay 1.swift. 311 00:15:10,640 --> 00:15:13,850 At pagkatapos ay pagkatapos ng ilang minuto ito ay sumulat ng libro 312 00:15:13,850 --> 00:15:16,340 at pagkatapos ay maari ba akong magpatakbo item isa. 313 00:15:16,340 --> 00:15:19,691 At kaysa ito ay lamang sabihin ang "Kumusta CS50." 314 00:15:19,691 --> 00:15:20,690 Kahanga-hanga, kaya pumunta kami. 315 00:15:20,690 --> 00:15:22,273 Mayroon aming unang programa kumusta mundo. 316 00:15:22,273 --> 00:15:24,790 Ay lumipat sa numero ng dalawang Hayaan. 317 00:15:24,790 --> 00:15:30,450 >> Ngayon sa this-- ito ay nagbago bahagyang, dahil habang ang normal mong 318 00:15:30,450 --> 00:15:34,720 do-- sa katunayan palagi ang mayroon ka upang ipunin ang isang mabilis na application bago mo 319 00:15:34,720 --> 00:15:37,180 talaga tumakbo it-- isa ng mahusay na mga tampok 320 00:15:37,180 --> 00:15:40,230 na alluded kong bago noon ay na matulin ay maaaring aktwal na gagamitin sa pag-uuri 321 00:15:40,230 --> 00:15:43,390 ng isang palsipikado-interpretive mode, may ay sa katunayan tulad ng isang interpreter. 322 00:15:43,390 --> 00:15:46,690 Ngunit kung ano ito ay gawin ay may ay, sa katunayan, isang mabilis na application 323 00:15:46,690 --> 00:15:47,520 na maaari mong patakbuhin. 324 00:15:47,520 --> 00:15:51,050 >> Kaya halimbawa kung nagta-type ka lamang matulin dito, kung ano ang mangyayari 325 00:15:51,050 --> 00:15:52,330 ay na makakakuha ka ng prompt. 326 00:15:52,330 --> 00:15:59,040 At maaari mong i-type ang iyong matulin code, i-print kumusta, at patakbuhin ito. 327 00:15:59,040 --> 00:16:01,867 At ito ay tunay na print-- mahusay, hindi ito i-print sa kasong ito 328 00:16:01,867 --> 00:16:04,450 dahil naka-print na ito sa gitna out, na kung saan ay hindi makikita dito. 329 00:16:04,450 --> 00:16:06,660 Ngunit ito ay talagang magagawang upang gumana. 330 00:16:06,660 --> 00:16:09,580 At kaya sa kasong ito, lamang ako pagpunta sa gamitin ito bilang isang script. 331 00:16:09,580 --> 00:16:11,259 At maaari kong aktwal na patakbuhin ang code na ito doon. 332 00:16:11,259 --> 00:16:13,800 Kaya ang paraan na ako talaga tumakbo ito ay bahagyang naiiba, 333 00:16:13,800 --> 00:16:15,710 ngunit makikita mo na sa isang sandali lamang. 334 00:16:15,710 --> 00:16:18,890 Ngayon, sa kasong ito kung ano ang namin ang pagpunta gawin ay unang tukuyin ang isang variable. 335 00:16:18,890 --> 00:16:22,160 Kaya ito ay kung paano namin tukuyin ang isang variable sa mabilis, 336 00:16:22,160 --> 00:16:25,900 ay namin ang let keyword, sinundan sa pamamagitan ng ang pangalan ng variable, 337 00:16:25,900 --> 00:16:29,280 at pagkatapos naming magbigay ng ilang Sinisimulan opsyonal na data. 338 00:16:29,280 --> 00:16:34,660 Kaya kasong ito kami ay pagtukoy sa isang pare-pareho na tinatawag na pangalan, 339 00:16:34,660 --> 00:16:37,775 at kami ay pagpunta sa gamitin iyon sa ang output ng aming mga linya sa pag-print 340 00:16:37,775 --> 00:16:39,590 sa pinakailalim, kumusta pangalan. 341 00:16:39,590 --> 00:16:43,260 >> Mapansin Ngayong halip na paggamit ng% s, maaari naming encapsulate ang pangalan ng ito 342 00:16:43,260 --> 00:16:49,960 variable sa / () at magagawang pagdugtungin sa mga nilalaman ng 343 00:16:49,960 --> 00:16:51,790 string sa ang string na ito. 344 00:16:51,790 --> 00:16:56,510 Ngayon hindi tulad ng C, string ay isang aktwal na real-type matulin. 345 00:16:56,510 --> 00:16:59,240 At kaya nakaupo sa tabi ints at katabi 346 00:16:59,240 --> 00:17:02,220 Doubles napaka-madali at natural kumpara 347 00:17:02,220 --> 00:17:05,450 sa ilan sa mga iba pang wika na nasaksihan namin. 348 00:17:05,450 --> 00:17:07,980 Kaya ito gagawin talaga gumana gaya ng iyong inaasahan. 349 00:17:07,980 --> 00:17:10,540 >> Maaari ba akong magpatakbo 2.swift. 350 00:17:10,540 --> 00:17:14,390 At nakita namin na ang pangalan ko ay talaga Spliced ​​in, "Hello Dan." 351 00:17:14,390 --> 00:17:16,050 OK,-hanga. 352 00:17:16,050 --> 00:17:17,485 Paglilipat sa sa numero ng tatlong. 353 00:17:17,485 --> 00:17:19,359 Ngayon ito ay isang kaunti ng isang maliit na kasinungalingan na ako 354 00:17:19,359 --> 00:17:23,369 Sinabi na ang paraan na aming ipinahahayag variable ay upang gamitin ang let keyword. 355 00:17:23,369 --> 00:17:27,640 Tulad ng maraming beses bilang posibleng ka maaari mong gawin nais na gumamit ipaalam, dahil kung ano na ang ginagawa 356 00:17:27,640 --> 00:17:29,280 ito ay tumutukoy sa isang pare-pareho. 357 00:17:29,280 --> 00:17:33,010 At ang sinasabi sa mabilis na kaya nito -optimize ang bilis ng iyong application 358 00:17:33,010 --> 00:17:36,230 dahil alam nito na iyon variable ay hindi pagpunta upang baguhin. 359 00:17:36,230 --> 00:17:38,760 >> Kaya suriin nang maingat kapag tapos ka pagpunta upang gamitin ang 360 00:17:38,760 --> 00:17:41,382 isang variable para sa mga layunin ng pagbabago nito. 361 00:17:41,382 --> 00:17:43,340 At kapag tapos ka ng pagpunta sa lumikha ng isang variable lang 362 00:17:43,340 --> 00:17:47,010 upang i-hold ang ilang mga data at na hindi talagang pagpunta upang baguhin. 363 00:17:47,010 --> 00:17:50,150 Kaya ito konsepto ng kawalan ng pagbabago, ito ay hindi talagang pagpunta sa baguhin, 364 00:17:50,150 --> 00:17:53,740 ay isang mahalagang isa kahit na bilang malayo down na bilang pagtukoy sa mga variable. 365 00:17:53,740 --> 00:17:56,870 Kaya dito natukoy na namin ang isang pangalan, hayaan pangalan, at sa kasong ito 366 00:17:56,870 --> 00:18:02,120 ito ay isang pare-pareho, na may uring string, at ito ay katumbas ng Dan. 367 00:18:02,120 --> 00:18:05,580 >> Kaya samantalang sa naunang bersyon, infers-- ito at sa pamamagitan ng "ito" 368 00:18:05,580 --> 00:18:08,220 Ibig kong sabihin swift-- mabilis infers ang uri ng data 369 00:18:08,220 --> 00:18:10,850 na iyong inilagay namin sa variable. 370 00:18:10,850 --> 00:18:12,930 Sa kasong ito, maaari naming maging tahasan. 371 00:18:12,930 --> 00:18:17,590 Kaya ipaalam pagkatapos ay ang pangalan ng ito variable ay ang pangalan, pagkatapos ng tutuldok. 372 00:18:17,590 --> 00:18:21,350 At pagkatapos ng tutuldok ang ginagawa namin tukuyin ang uri ng data. 373 00:18:21,350 --> 00:18:24,694 Kaya hindi na ito int pangalan o string pangalan o isang bagay tulad na. 374 00:18:24,694 --> 00:18:26,860 Ngunit sa halip ipaalam sa label, kami ay pagtukoy kung o hindi 375 00:18:26,860 --> 00:18:29,090 ito ay pare-pareho o variable, sinusundan ng pangalan, 376 00:18:29,090 --> 00:18:31,870 na sinusundan ng uri ng opsyonal na. 377 00:18:31,870 --> 00:18:34,730 >> Kaya sa kasong ito kami ay pagtukoy sa ang pangalang ito ay isang string. 378 00:18:34,730 --> 00:18:35,790 Kami ay sinasabi ay Dan. 379 00:18:35,790 --> 00:18:39,270 At ngayon Mayroon akong isa pang variable, sa kasong ito ang tawag dito label. 380 00:18:39,270 --> 00:18:42,090 Ngunit mapansin na ito ay may prefix na ang var keyword. 381 00:18:42,090 --> 00:18:44,430 Ang var keyword paraan na ito variable na maaari 382 00:18:44,430 --> 00:18:48,720 baguhin sa ibang punto sa ng panahon, sa isang lugar down sa code 383 00:18:48,720 --> 00:18:52,480 maaari naming talagang baguhin ito at ito Hindi ibigay sa amin ang anumang partikular na error. 384 00:18:52,480 --> 00:18:56,760 >> Maaari naming gawin karaniwang concatenating operator dito gamit ang simbolong plus 385 00:18:56,760 --> 00:19:00,130 upang aktwal na magdagdag aming pangalanan sa ang string na ito. 386 00:19:00,130 --> 00:19:02,921 At pagkatapos ay maaari naming i-print bilang nakita natin sandali lamang ang nakalipas. 387 00:19:02,921 --> 00:19:04,920 Ngayon sabihin nating sa iyo nais upang lumikha ng isang variable 388 00:19:04,920 --> 00:19:06,586 ngunit hindi mo nais na i-initialize ito pa. 389 00:19:06,586 --> 00:19:08,590 Wala ka pang nais na ilagay ang anumang data sa loob nito. 390 00:19:08,590 --> 00:19:11,760 Well mayroon ka upang sabihin sa matulin kung ano ang uri ng data 391 00:19:11,760 --> 00:19:16,430 ay magiging bago maaari kang talaga ito matukoy nang maayos. 392 00:19:16,430 --> 00:19:20,360 >> Kaya sa kasong ito, kapag namin ang tinukoy variable na tinatawag na grado ng mayroon kaming upang maging 393 00:19:20,360 --> 00:19:24,450 tahasang tungkol sa uri nito, dahil hindi ito maaaring magpahiwatig lamang ng pagtingin 394 00:19:24,450 --> 00:19:27,300 sa nasimulan data na nagbibigay sa iyo dito. 395 00:19:27,300 --> 00:19:30,050 Ito ay magbibigay sa amin ng isang error kung uri var grado lamang, halimbawa, 396 00:19:30,050 --> 00:19:31,830 dahil mayroon samakatuwid, walang mga uri nito. 397 00:19:31,830 --> 00:19:33,353 Kaya grado = 100. 398 00:19:33,353 --> 00:19:35,790 Kaya na 100 ay isang integer, ito Tama ang sukat sa lalong mabuti sa na. 399 00:19:35,790 --> 00:19:36,998 Ito ay patuloy na aandar. 400 00:19:36,998 --> 00:19:40,350 401 00:19:40,350 --> 00:19:43,022 Maaari naming makita kung paano namin pagkatapos Maaari pagdugtungin ito sa. 402 00:19:43,022 --> 00:19:44,730 Ngayon maaari kang maging tinukso, kung talagang 403 00:19:44,730 --> 00:19:48,610 Nais upang pagdugtungin ang grado sa isa pang string ng teksto, 404 00:19:48,610 --> 00:19:52,560 sa isa pang string, na gagawin mo lang gamitin ang parehong concatenating operator. 405 00:19:52,560 --> 00:19:54,630 At iyon ay normal na maging totoo. 406 00:19:54,630 --> 00:20:00,540 Ngunit matulin ay hindi daan sa iyo upang nang kataon lamang baguhin ang uri ng data. 407 00:20:00,540 --> 00:20:03,440 Kaya sa kasong ito, ito line, 25, ay mabibigo 408 00:20:03,440 --> 00:20:06,650 dahil ang grado ay isang integer at hindi isang string. 409 00:20:06,650 --> 00:20:08,760 At kaya mayroong isang Maling pagtutugma ng set ng mga uri. 410 00:20:08,760 --> 00:20:11,780 Kaya ikaw ay may upang maging tahasan kapag gusto mong baguhin ang data na ito, 411 00:20:11,780 --> 00:20:14,080 kapag gusto mong puwersahin na ito data sa isang iba't ibang mga uri ng 412 00:20:14,080 --> 00:20:17,250 at sabihin, OK, gusto kong gumawa ito ang grado, na kung saan ay isang integer, 413 00:20:17,250 --> 00:20:19,050 at i-convert ito sa isang string. 414 00:20:19,050 --> 00:20:23,970 >> Kaya kumuha ako String ng kapital s lahat ng uri, mapapansin mo, hindi capitalized, 415 00:20:23,970 --> 00:20:26,280 Int, Double, String, kaya sa at iba pa. 416 00:20:26,280 --> 00:20:28,930 Ang lahat ng mga ito ay capitalized upang gawing mas madali lang bagay. 417 00:20:28,930 --> 00:20:32,240 At kami sabihin sulatin sa malaking titik String pumasa sa ito ng grado. 418 00:20:32,240 --> 00:20:35,020 At ito ay lumikha ng isang string mula sa na integer. 419 00:20:35,020 --> 00:20:37,970 At pagkatapos ay maaari naming pagdugtungin ang dalawang napaka mabuti. 420 00:20:37,970 --> 00:20:40,500 Ang anumang mga katanungan sa mga bagay-bagay na ito sa ngayon? 421 00:20:40,500 --> 00:20:43,770 Ang lahat ng mga karapatan, ng araro ipaalam hanggang sa apat na numero. 422 00:20:43,770 --> 00:20:47,870 >> Ngayon ipaalam makipag-usap tungkol sa ilang mga mas advanced na mga istraktura, tulad ng array at mga loop. 423 00:20:47,870 --> 00:20:54,920 At hindi tulad ng C, array sa matulin Hindi kinakatawan ng mga payo. 424 00:20:54,920 --> 00:20:58,730 Mga Pointer sa mabilis, kahit na umiiral ang mga ito, na tinatawag na 425 00:20:58,730 --> 00:21:02,840 tulad ng hindi ligtas na mga payo o ang ilang mga katulad na uri tulad nito, 426 00:21:02,840 --> 00:21:04,950 hindi nila mailantad sa iyo nang normal. 427 00:21:04,950 --> 00:21:07,300 Kaya ito ay magiging napakahirap para sa iyo upang manipulahin 428 00:21:07,300 --> 00:21:10,020 sa memory direkta sa iyong computer. 429 00:21:10,020 --> 00:21:11,670 >> Kaya array ay lamang ng isang uri ng data. 430 00:21:11,670 --> 00:21:16,830 At sila ay na-reference ang paggamit ng ganitong uri ng karaniwang ngayon square bracket pagtatanda 431 00:21:16,830 --> 00:21:18,280 na iyong nakita bago. 432 00:21:18,280 --> 00:21:21,130 Ngunit kapag ikaw ay talagang nais na tukuyin ang isang uri ng variable na 433 00:21:21,130 --> 00:21:24,330 bilang isang array ng ilang partikular na uri, pagkatapos ay sa iyo 434 00:21:24,330 --> 00:21:27,150 ilagay na uri sa mga square bracket. 435 00:21:27,150 --> 00:21:30,260 Kaya kung ano ang ako sinasabi dito ay Lumilikha ako ng isang variable na tinatawag na 436 00:21:30,260 --> 00:21:33,930 mga marka ng uri int array. 437 00:21:33,930 --> 00:21:37,380 At ako pagtatakda na katumbas ng ilang initialize data, na sa kasong ito 438 00:21:37,380 --> 00:21:42,960 100, 0, 90, 85, na kung saan ay isa lamang koleksyon ng mga arbitrary na grado dito. 439 00:21:42,960 --> 00:21:46,480 Ngayon sa kaso ng dati ko, tandaan, alisin ang uri, 440 00:21:46,480 --> 00:21:49,580 at ito ay magagawang magpakilala ito batay sa mga nasimulan ng data. 441 00:21:49,580 --> 00:21:51,990 Ngunit kung inalis ko ito at Kailangan ko upang i-set ito sa ibang pagkakataon, 442 00:21:51,990 --> 00:21:56,840 pagkatapos Gusto ko mayroon upang matiyak na mayroon akong uri doon. 443 00:21:56,840 --> 00:21:58,750 Ang lahat ng mga karapatan, na patuloy sa paglakad ipaalam. 444 00:21:58,750 --> 00:22:03,010 Kaya can-- namin array magbigay sa amin ng iba't-ibang 445 00:22:03,010 --> 00:22:07,130 mga paraan sa pamamagitan ng pagtatanda na tuldok sa iyo ay marahil na ngayon pamilyar sa iyo. 446 00:22:07,130 --> 00:22:10,360 Kaya grades.count, halimbawa, Sinasabi sa amin ng tiyak na mga numero 447 00:22:10,360 --> 00:22:13,680 ng mga elemento na nasa loob ito ng array. 448 00:22:13,680 --> 00:22:17,260 >> Kung gusto kong magdagdag additional-- mapansin ngayon na ito ay isang var 449 00:22:17,260 --> 00:22:20,140 at not-- ito ay isang variable at hindi isang pare-pareho, na 450 00:22:20,140 --> 00:22:24,410 ay nangangahulugan na maaari kong baguhin ang mga nilalaman ng array, maaari ba akong magdagdag ng mga bagay na ito. 451 00:22:24,410 --> 00:22:28,870 Ngunit hindi ko lang masabi grado at pagkatapos ay sa square bracket 452 00:22:28,870 --> 00:22:33,280 apat na, dahil iyon ay magiging isang sa labas ng hangganan ng error sa kasong ito. 453 00:22:33,280 --> 00:22:36,190 Kung gusto ko upang aktwal na pagbabago ang laki ng array, 454 00:22:36,190 --> 00:22:41,140 Kailangan ko bang gamitin ang paraan na tuldok na Magkabit sa magdagdag ng isang bagay sa sa pinakadulo ng ito. 455 00:22:41,140 --> 00:22:46,900 Maaari ba akong, gayunpaman, pagbabago indibidwal na mga indeks. 456 00:22:46,900 --> 00:22:48,920 >> Kaya maaari ko bang gamitin ang mga grado at pagkatapos ay square bracket 457 00:22:48,920 --> 00:22:52,480 zero na manipulahin ang unang index at iba pa, tulad ng nais na karaniwan mong asahan. 458 00:22:52,480 --> 00:22:56,530 At ang maaari kong gawin ang parehong upang aktwal na tumanggap pati na rin ang data mula sa na. 459 00:22:56,530 --> 00:23:00,420 Ngayon ay mayroong ding isang uri ng isang magarbong paraan ng paggawa nito, ang mga marka plus equals 460 00:23:00,420 --> 00:23:02,525 at pagkatapos ay isa pang index, na kung saan ay append-- 461 00:23:02,525 --> 00:23:04,400 o hindi sa isa pa index-- ngunit isa pang listahan na 462 00:23:04,400 --> 00:23:07,340 ay ikabit ang listahan na sa likod ng mga grado. 463 00:23:07,340 --> 00:23:09,780 At ang mga marka ng habilin pagkatapos ay maglalaman ng lahat ng iyon. 464 00:23:09,780 --> 00:23:13,850 Ngunit iyon lamang ang uri ng dagdag na bagay na lang ako sa pagpapakita sa iyo para masaya. 465 00:23:13,850 --> 00:23:14,910 >> Ngayon ay mayroong isang para sa loop. 466 00:23:14,910 --> 00:23:18,970 At ito ay ang simula ng kung saan mga bagay simulan upang baguhin nang kaunti. 467 00:23:18,970 --> 00:23:22,920 Pansinin kung paano ito para sa loop ay naiiba mula sa mga loop sa C. 468 00:23:22,920 --> 00:23:26,470 Ngayon ako tandaan na para sa mga loop sa Swift maaari 469 00:23:26,470 --> 00:23:30,650 isasagawa sa hitsura para sa mga loop sa C, ngunit maraming ng higit pang mga kapaki-pakinabang na constructs 470 00:23:30,650 --> 00:23:37,840 na lubos na alisin ang pangangailangan na magkaroon ng para sa var i katumbas ng 0 semicolon i 471 00:23:37,840 --> 00:23:40,340 Mas mababa kaysa sa ilang haba, kaya sa at iba pa, tama? 472 00:23:40,340 --> 00:23:42,940 At ito ay bumuo lamang ng isa sa kanila. 473 00:23:42,940 --> 00:23:49,030 >> Para sa index, index ay bagong variable, sa kasong ito, sa range. 474 00:23:49,030 --> 00:23:52,730 At kung ano ako sinasabi ay mayroong isang hanay mula sa 0 lahat ng mga paraan ng hanggang sa 475 00:23:52,730 --> 00:23:55,870 ngunit hindi kabilang ang grades.count. 476 00:23:55,870 --> 00:23:58,470 Kaya ito na tuldok tuldok na mas mababa kaysa sa pag-sign kumakatawan 477 00:23:58,470 --> 00:24:05,040 isang hanay ng mga halaga na nagsisimula mula sa zero ang lahat ng mga paraan ng hanggang sa grades.count minus 1. 478 00:24:05,040 --> 00:24:07,070 May nakahiwalay na operator na umiiral, 479 00:24:07,070 --> 00:24:13,320 na tuldok tuldok tuldok, na gagawin ibig sabihin na gusto ko ang hanay ng mga zero 480 00:24:13,320 --> 00:24:16,310 sa grado ang bilang ng inclusive. 481 00:24:16,310 --> 00:24:19,130 >> Ngunit sa kasong ito, dahil ang mga array ay zero index, kami ng kurso 482 00:24:19,130 --> 00:24:23,290 ayaw mong pumunta sa maximum na bilang ng mga grado. 483 00:24:23,290 --> 00:24:26,390 Maaari ko bang sabihin sa ilang mga grado, bilang maaari kang aasahan, at ang output ng lahat ng mga bagay-bagay na ito. 484 00:24:26,390 --> 00:24:29,620 OK, paglipat sa. 485 00:24:29,620 --> 00:24:32,270 Ngayon makipag-usap tungkol sa mga pag-andar ipaalam. 486 00:24:32,270 --> 00:24:35,465 Upang tukuyin ang isang function mong gamitin ang maging sobrang lungkot keyword. 487 00:24:35,465 --> 00:24:38,090 At muli, sa Swift kailangan mong maging maingat sa mga uri. 488 00:24:38,090 --> 00:24:41,530 Magbigay mo dito mga parameter sa pamamagitan ng pagtukoy, halimbawa, 489 00:24:41,530 --> 00:24:45,440 ang pangalan ng parameter at pagkatapos ay sa Colin, ang uri ng data 490 00:24:45,440 --> 00:24:47,690 na inaasahan mong na parameter upang tanggapin. 491 00:24:47,690 --> 00:24:50,700 >> Kaya sa kasong ito kami ay may isang function na tinatawag na bilang ng grado sa pag-print. 492 00:24:50,700 --> 00:24:54,630 Ito ay tumatanggap ng isang variable na tinatawag na gradebook, o sa halip ng isang parameter na tinatawag na gradebook. 493 00:24:54,630 --> 00:24:59,267 At kami ay umaasa na gradebook sa isang array ng mga integer. 494 00:24:59,267 --> 00:25:01,350 Kung na gradebook ay walang laman, kami ay mag-print ng isang bagay. 495 00:25:01,350 --> 00:25:06,090 Kung hindi man ay i-print na namin ang numero ng mga marka na ito ay talagang. 496 00:25:06,090 --> 00:25:09,470 >> Ngayon kung gusto naming bumalik ang ilang mga halaga, pagkatapos ay ang paraan 497 00:25:09,470 --> 00:25:14,595 na namin baguhin ang kahulugan na ito ay upang aktwal na gamitin ang arrow keyword, 498 00:25:14,595 --> 00:25:16,870 o gamitin ang mga arrow signifier. 499 00:25:16,870 --> 00:25:19,440 Kaya dito kami ay pagpunta upang tukuyin ang isang function na tinatawag na average. 500 00:25:19,440 --> 00:25:21,940 Kami ay pagpunta sa tanggapin ang isang listahan ng mga numero. 501 00:25:21,940 --> 00:25:25,430 At kami ay pagpunta upang magbalik ng double, na sana 502 00:25:25,430 --> 00:25:31,270 ang average ng array. 503 00:25:31,270 --> 00:25:34,570 At upang gawin iyon, upang upang aktwal na kalkulahin ang average na, 504 00:25:34,570 --> 00:25:38,651 magsasagawa kami ng isang pinagsama-samang at aming ng Siyempre lagumin lahat ng mga bagay 505 00:25:38,651 --> 00:25:39,400 sa loob ng array. 506 00:25:39,400 --> 00:25:41,480 >> Pansinin na may bagong estilo ng para sa loop dito. 507 00:25:41,480 --> 00:25:45,450 Wala kaming upang maging tahasan tungkol sa iterating sa paglipas ng bawat solong elemento, 508 00:25:45,450 --> 00:25:48,280 ngunit maaari naming sabihin sa halip para sa grade at gradebook, kahulugan 509 00:25:48,280 --> 00:25:50,930 na para sa bawat solong item na mayroon kami sa ito, 510 00:25:50,930 --> 00:25:53,482 magbigay na item sa ito variable na tinatawag na grado. 511 00:25:53,482 --> 00:25:54,940 At gusto kong gawin ang isang bagay na may ito. 512 00:25:54,940 --> 00:26:00,350 Kaya ako ng pagpunta sa sabihin sa ilang ang lahat ng data na ito at talagang ibalik ang double division. 513 00:26:00,350 --> 00:26:04,436 >> Ngayon mapansin muli dito doon ay ang konsepto ng integer division sa Swift. 514 00:26:04,436 --> 00:26:06,810 Kung gusto mong i-double dibisyon dahil gusto mo decimal, 515 00:26:06,810 --> 00:26:09,460 pagkatapos ay mayroon kang upang maging tahasan, Hindi halos isang gilid, 516 00:26:09,460 --> 00:26:14,030 dahil hindi ito pagpunta sa-daan sa iyo upang pilitin ang data sa magkabilang panig ng ito, 517 00:26:14,030 --> 00:26:17,030 mayroon kang upang aktwal na kurso magkabilang panig sa doubles 518 00:26:17,030 --> 00:26:19,440 gayon ay handa mo napaka tahasang tungkol sa pagtiyak na 519 00:26:19,440 --> 00:26:23,370 na gumagawa ka ng double division. 520 00:26:23,370 --> 00:26:26,150 >> Ay ilipat sa Hayaan. 521 00:26:26,150 --> 00:26:31,150 Kaya kung talagang gusto kong accept-- kaya sa ganitong partikular na halimbawa, 522 00:26:31,150 --> 00:26:34,260 ito ay pa rin ng isang command linya batay application. 523 00:26:34,260 --> 00:26:37,920 At kami ay nagsisimula upang makita ang ilan sa ang mga limitasyon ng mga batang wika 524 00:26:37,920 --> 00:26:41,850 sa kahit na kaya namin -access ang mga argumento sa pamamagitan ng paggamit 525 00:26:41,850 --> 00:26:44,940 ito process.arguments, ito ay hindi kinakailangan pa rin ang cleanest 526 00:26:44,940 --> 00:26:46,200 bagay na kailanman namin na nakita. 527 00:26:46,200 --> 00:26:49,142 Ngunit isa lamang Hinihikayat ko sa iyo sa uri ng tumingin sa ang code na ito 528 00:26:49,142 --> 00:26:51,100 at subukan upang malaman kung kung ano ang eksaktong ay nangyayari. 529 00:26:51,100 --> 00:26:55,030 >> Mahalaga kung ano ang nangyayari ay na kami ay kumukuha ng isang listahan ng mga argument 530 00:26:55,030 --> 00:26:57,610 at ang coercing ang mga ito sa integer, at pagkatapos ay hindi namin 531 00:26:57,610 --> 00:27:03,620 pagpunta sa gamitin na bilang isang paraan upang mag-print ang average ng lahat ng aming mga grado. 532 00:27:03,620 --> 00:27:06,150 533 00:27:06,150 --> 00:27:07,350 Paglilipat sa. 534 00:27:07,350 --> 00:27:11,190 Ngayon ay mayroong isa pang uri ng data-- -type ng isa pang data sa halip na array 535 00:27:11,190 --> 00:27:14,940 na tinatawag na mga diksyunaryo, na kung saan ay napaka katulad ng hash table o hash mapa 536 00:27:14,940 --> 00:27:18,560 at katulad din sa Nag-uugnay array PHP ni. 537 00:27:18,560 --> 00:27:20,770 Kaya mayroon silang pagkaunawa ng mga pindutan at halaga. 538 00:27:20,770 --> 00:27:23,780 >> At sila ay nilinaw din sa sa square na ito bracket pagtatanda, 539 00:27:23,780 --> 00:27:26,750 ngunit ang pagkakaiba ay na mga diksyunaryo mayroon 540 00:27:26,750 --> 00:27:29,370 sa loob ng plaza bracket, ng tutuldok. 541 00:27:29,370 --> 00:27:33,850 At ang tutuldok naghihiwalay ang data -type na ay ang susi at ang halaga. 542 00:27:33,850 --> 00:27:38,540 Kaya sa kasong ito, pupuntahan ko upang lumikha ng isang diksyunaryo upang tanggapin ang ilang mga grado. 543 00:27:38,540 --> 00:27:44,200 At ito ay magiging ng uri ng string: int, 544 00:27:44,200 --> 00:27:46,940 na nangangahulugan na ang lahat ng key ay magiging mga string, 545 00:27:46,940 --> 00:27:53,080 at ang lahat ng mga halaga ng mga key ay magiging integer. 546 00:27:53,080 --> 00:27:55,780 >> Ano ang ibig sabihin nito ay na maaari kong pagkatapos ay sumangguni sa mga tiyak na data 547 00:27:55,780 --> 00:28:00,490 na gusto ko gamit ang mga key sa halip kaysa sa paggamit ng mga indeks ng numeric na gusto ko 548 00:28:00,490 --> 00:28:04,350 ay magkakaroon ng para sa isang karaniwang array. 549 00:28:04,350 --> 00:28:06,470 Ngayon tingnan natin, may isang mahalagang bagay 550 00:28:06,470 --> 00:28:10,790 na gusto ko rin banggitin ang tungkol sa sa partikular na pagkakasunud-sunod ng code. 551 00:28:10,790 --> 00:28:12,910 At iyon ay mayroong pang uri ng data, 552 00:28:12,910 --> 00:28:15,580 o sa halip mayroong ito ideya ng data na 553 00:28:15,580 --> 00:28:18,340 nasa loob Swift tinatawag optionals. 554 00:28:18,340 --> 00:28:21,270 >> At kung ano optionals nangangahulugan ay na Kinikilala nito ang katunayan 555 00:28:21,270 --> 00:28:27,500 na minsan ay hindi ka pagpunta sa makuha ang data na iyong aktwal na inaasahan. 556 00:28:27,500 --> 00:28:31,400 At kaya kung ano ang aking ibig sabihin sa pamamagitan ng na is-- sabihin tingnan ang pagkakasunod-sunod ng code 557 00:28:31,400 --> 00:28:38,910 na iterates sa lahat ng argumento na ang pumasa sa ang code na ito 558 00:28:38,910 --> 00:28:43,460 at sinusubukang i-convert ang mga ito, pagsubok sa hinati sa iba't ibang mga string, 559 00:28:43,460 --> 00:28:47,310 dahil tinanggap ito ng isang napaka partikular na uri ng argumento. 560 00:28:47,310 --> 00:28:51,530 At pagkatapos ito ay pagpunta sa subukan upang pilitin ang mga string na kumakatawan sa mga numero 561 00:28:51,530 --> 00:28:55,460 sa integer na grado, na ang maaari kong pagkatapos ay i-compute. 562 00:28:55,460 --> 00:28:58,230 >> Kaya talaga pupuntahan ko gamitin ang split function na 563 00:28:58,230 --> 00:29:00,080 Umiiral na sa loob ng Swift standard library. 564 00:29:00,080 --> 00:29:03,720 Pupunta ako upang pumasa sa mga ito string na gusto kong hatiin. 565 00:29:03,720 --> 00:29:06,980 At pagkatapos ay sa paggamit na ito uri ng funky syntax, na 566 00:29:06,980 --> 00:29:09,670 Hindi ko alam kung kami ay kumuha sa, ngunit marahil, namin 567 00:29:09,670 --> 00:29:14,320 ang talagang tukuyin ang tumpak karakter na gusto naming hatiin sa. 568 00:29:14,320 --> 00:29:16,030 Kaya ano ang nilalaman ng aktwal na hitsura? 569 00:29:16,030 --> 00:29:18,740 Tingnan natin ang isang pagtingin sa aktwal na tumatakbo ang code na ito. 570 00:29:18,740 --> 00:29:22,000 >> Kaya halimbawa, sabihin nating mayroon akong isang pagsusulit at Nakatanggap ako ng 50 sa iyon. 571 00:29:22,000 --> 00:29:23,960 At mayroon akong PSETs at Mayroon akong isang daang sa iyon. 572 00:29:23,960 --> 00:29:29,180 At got-- ko mayroong isa pang pagsusulit at Nakatanggap ako ng 40 sa iyon. 573 00:29:29,180 --> 00:29:33,520 Hit ko Ipasok, at sa huli kung ano ang mangyayari ay na kung ano ang ginagawa nito 574 00:29:33,520 --> 00:29:37,730 Nagtatagal mga parameter na ito, ang paghahati ng ang string sa mga tutuldok, 575 00:29:37,730 --> 00:29:41,390 pagkilala na mayroong ang dalawang mga elemento sa bawat isa, 576 00:29:41,390 --> 00:29:43,700 at ito ay mahalagang pagsubaybay sa bawat isa. 577 00:29:43,700 --> 00:29:49,226 >> Kaya kong ilagay sa aking diksyunaryo isang maikling pagsusulit, na ang halaga ay kinakatawan sa pamamagitan ng bilang 50, 578 00:29:49,226 --> 00:29:54,290 Mayroon akong PSET na may halaga ng 100, at isa pagsusulit na may isang halaga na 40. 579 00:29:54,290 --> 00:29:57,400 Pagkatapos ay sa ibang pagkakataon sa code ko talaga-a-average ng lahat ng mga halaga 580 00:29:57,400 --> 00:30:01,160 at ilista ang lahat ng mga key ng sa partikular na diksiyunaryo. 581 00:30:01,160 --> 00:30:03,217 Ngunit ito ay mahalaga sa gayon ay maaari mong mapansin 582 00:30:03,217 --> 00:30:06,050 kung ano ang nangyayari, ay ang kung ano ang namin gusto lang gawin ay gumawa ng ang string na ito 583 00:30:06,050 --> 00:30:11,450 at hatiin ito sa ito ng character, kung saan maaari naming gawin muli gamit ang split 584 00:30:11,450 --> 00:30:15,690 pagpapaandar gamit ang ganitong uri ng kagiliw-giliw na syntax na umiiral dito. 585 00:30:15,690 --> 00:30:17,880 >> Para lamang sa ngayon ay ipinapalagay na iyon ang OK. 586 00:30:17,880 --> 00:30:19,980 Titingnan namin ang nalalaman sa ito sa loob lamang ng ilang sandali. 587 00:30:19,980 --> 00:30:23,230 Ngunit ngayon ay may mga kawili-wiling aspeto na namin talaga 588 00:30:23,230 --> 00:30:27,250 gusto mong subukang i-convert ito string sa isang integer. 589 00:30:27,250 --> 00:30:29,720 Ngunit sa ibang mga wika kung ano ang maaaring mangyari ay 590 00:30:29,720 --> 00:30:33,440 na nais namin marahil subukan upang gawin ito at alinman sa makabalik 591 00:30:33,440 --> 00:30:36,185 isang uri ng tanod halaga tulad ng mga negatibong isa 592 00:30:36,185 --> 00:30:39,420 o marahil isang null o isang bagay tulad na. 593 00:30:39,420 --> 00:30:41,070 O siguro ay ito sanhi ng error lang. 594 00:30:41,070 --> 00:30:42,820 At gusto naming pagkatapos ay mahuli ang error na 595 00:30:42,820 --> 00:30:44,820 at pagkatapos ay subukang gawin isang bagay na batay sa katotohanan 596 00:30:44,820 --> 00:30:48,280 na-convert na ito sa isang integer nabigo. 597 00:30:48,280 --> 00:30:50,460 Doon ideya na ito ng optionals ay sa. 598 00:30:50,460 --> 00:30:56,120 Maaari mong aktwal na lumikha ng isang uri ng data na ay isang int tandang pananong, halimbawa. 599 00:30:56,120 --> 00:30:59,140 600 00:30:59,140 --> 00:31:01,910 Nangangahulugan iyon na ito integer ay, sa katunayan, opsyonal. 601 00:31:01,910 --> 00:31:05,980 At kung ano ang mangyayari ay na maaari itong naglalaman ng isang integer, o maaaring hindi. 602 00:31:05,980 --> 00:31:10,650 Maaari itong, sa katunayan, maging ito ng iba pang mga ideya, ganap na tinatawag na nill. 603 00:31:10,650 --> 00:31:14,900 Sa aling mga na nangangahulugan na mayroong walang halaga kahit ano pa man sa ito. 604 00:31:14,900 --> 00:31:16,810 Hindi ito kahit na sa zero, mayroong lamang walang halaga. 605 00:31:16,810 --> 00:31:18,790 Mayroon talagang walang halaga kinakatawan. 606 00:31:18,790 --> 00:31:21,650 >> At iyon ay kung ano ang line 71 ay ginagawa. 607 00:31:21,650 --> 00:31:25,990 Ay na ito ay nagsasabi na ako gusto mong subukang magtakda ng isang halaga, 608 00:31:25,990 --> 00:31:31,790 isang variable na tinatawag na grado, katumbas ng conversion ng ang string na ito sa isang int. 609 00:31:31,790 --> 00:31:34,010 Kaya kinuha ko ang string, sa unang bahagi, 610 00:31:34,010 --> 00:31:37,680 o sa halip ang pangalawang mga bahagi, dahil ito 611 00:31:37,680 --> 00:31:40,770 ay zero-index, ng ito string na na-hatiin ko. 612 00:31:40,770 --> 00:31:42,930 At gusto kong i-convert na sa isang integer. 613 00:31:42,930 --> 00:31:46,730 Ngunit ito ay maaaring hindi palaging magpatuloy normal, dahil isipin 614 00:31:46,730 --> 00:31:50,710 ano ang mangyayari kung, sa halip na uri isang numero, nagta-type ako ng kurso tulad ng asdf. 615 00:31:50,710 --> 00:31:51,534 >> Ito ay pagpunta sa mabibigo. 616 00:31:51,534 --> 00:31:54,200 Ito ay hindi tunay na magiging makakapag-convert na sa isang integer 617 00:31:54,200 --> 00:31:55,510 bilang Gusto ko inaasahan. 618 00:31:55,510 --> 00:31:58,660 Kaya sa halip na mag-alis isang uri ng error ito, 619 00:31:58,660 --> 00:32:01,210 mayroon kaming ito ideya ng isang opsyonal na. 620 00:32:01,210 --> 00:32:04,240 At na nangangahulugan na ang paggamit ng ito tandang pananong ang maaari kong sabihin, 621 00:32:04,240 --> 00:32:09,100 OK, ay posible na maaari kong kumuha ito,-convert ito sa isang int, 622 00:32:09,100 --> 00:32:12,630 at ilalagay ito sa isang variable, na magiging din sa isang int. 623 00:32:12,630 --> 00:32:15,420 Kung gayon, pagkatapos na paraan na ito ay matagumpay 624 00:32:15,420 --> 00:32:18,720 at sa unang bahagi ng ang bloke maaaring magpatuloy. 625 00:32:18,720 --> 00:32:21,040 >> Kung hindi man, nabigo ito. 626 00:32:21,040 --> 00:32:25,840 Walang halaga sa grade-- o sa halip walang halaga sa umiiral, 627 00:32:25,840 --> 00:32:30,220 at talagang ako ay may upang subukang pangasiwaan ang kondisyon ng error. 628 00:32:30,220 --> 00:32:33,340 Ikaw ay pagpunta upang makita ang tandang pananong sa lahat ng oras 629 00:32:33,340 --> 00:32:35,990 sa Swift at sa halimbawa code para sa Swift. 630 00:32:35,990 --> 00:32:40,980 At sa katunayan ang nill operator, ang ganitong uri ng tandang pananong, mga bahagi optionals, 631 00:32:40,980 --> 00:32:45,057 ay magiging marahil isa ng mas mahirap na mga bagay 632 00:32:45,057 --> 00:32:47,640 sa uri ng wrap ang inyong ulo sa paligid bilang iyong aktwal na gumagana sa mga ito. 633 00:32:47,640 --> 00:32:48,490 >> Maaaring magkaroon ng kahulugan ngayon. 634 00:32:48,490 --> 00:32:50,760 At sa katunayan, kapag ako ay Sumusulat sample code para sa, 635 00:32:50,760 --> 00:32:52,780 tiyak ko naunawaan kung ano ang nangyayari sa, 636 00:32:52,780 --> 00:32:55,570 ngunit nahuli pa rin sa akin sa pamamagitan ng sorpresa ang bawat kaya madalas 637 00:32:55,570 --> 00:32:58,370 kapag Gusto ko makita na ilang data ay talagang 638 00:32:58,370 --> 00:33:04,024 isang kawalan bersyon, isang opsyonal na bersyon ng data na ako ay umaasa. 639 00:33:04,024 --> 00:33:06,190 Kaya Napagtanto lamang na kung iyong may isang opsyonal na bersyon 640 00:33:06,190 --> 00:33:09,360 kailangan mong ma-unpack na data mula sa kahon na ito. 641 00:33:09,360 --> 00:33:15,870 >> Kaya uri ng tulad I-- isipin kung magkaroon ng isang kahon at naglalaman ito ng isang bagay. 642 00:33:15,870 --> 00:33:18,490 At kung ano ang kailangan mong gawin ay upang tanungin ang tanong, 643 00:33:18,490 --> 00:33:22,800 ay posible na ang kahon na ito talaga naglalaman ng data na Naghahanap ako? 644 00:33:22,800 --> 00:33:28,180 Kung gayon, pagkatapos ay hilahin na ang data at ilagay ito sa ang variable na umiiral. 645 00:33:28,180 --> 00:33:32,080 Kung hindi, pagkatapos ay mayroon lamang ako sa balewalain ang mga nilalaman ng kahon na ito 646 00:33:32,080 --> 00:33:34,310 nang sama-sama dahil ito Literal na naglalaman ng wala. 647 00:33:34,310 --> 00:33:36,880 648 00:33:36,880 --> 00:33:40,400 >> Ang anumang mga katanungan tungkol dito? 649 00:33:40,400 --> 00:33:44,430 OK, na ilipat ang layo mula sa ipaalam uri ng batay sa linya ng command bagay 650 00:33:44,430 --> 00:33:47,610 at simulan ang pagtingin sa ang ilan sa mga teknolohiya 651 00:33:47,610 --> 00:33:53,060 na nagbibigay ng Xcode sa amin sa anyo ng palaruan. 652 00:33:53,060 --> 00:33:56,669 Kaya maraming ng kakayahan dito sa Swift. 653 00:33:56,669 --> 00:33:59,210 At kung buksan mo ang Xcode at ito itatanong sa iyo kung ano ang nais mong gawin, 654 00:33:59,210 --> 00:34:01,340 maaari mong buksan ang playground at i-play lamang sa paligid 655 00:34:01,340 --> 00:34:06,200 na may maraming mga iba't ibang mga istraktura at mga aspeto ng wika 656 00:34:06,200 --> 00:34:11,800 bago mo pa simulan ang pagpindot ang iOS SDK o Mac SDK. 657 00:34:11,800 --> 00:34:15,670 >> Kaya kasong ito, sabihin nating have-- ko Mayroon akong medyo contrived halimbawa 658 00:34:15,670 --> 00:34:18,460 dito, ngunit makisama sa akin bilang namin pag-uuri ng magtrabaho sa pamamagitan ng halimbawa na ito. 659 00:34:18,460 --> 00:34:22,639 Sabihin natin na dapat nating gawin ng maraming ng exponents sa isang nakapirming halaga, 660 00:34:22,639 --> 00:34:26,397 tulad ng alam namin na kami ay pagpunta sa kailangan upang gawin ng maraming mga parisukat na kapangyarihan, halimbawa. 661 00:34:26,397 --> 00:34:28,980 Kaya kami ay pagpunta sa tumagal ng ilang halaga x, kami ay pagpunta sa parisukat ito, 662 00:34:28,980 --> 00:34:30,540 kami ay pagpunta sa tumagal ng ilang halaga y at kami ay pagpunta sa parisukat ito. 663 00:34:30,540 --> 00:34:31,780 Kaya sa at iba pa. 664 00:34:31,780 --> 00:34:35,549 >> Ngayon kami ay maaaring aktwal na lamang lumikha ng isang kapangyarihan ng 2-andar para sa mga ito, i-right? 665 00:34:35,549 --> 00:34:37,090 Kaya gusto naming lumikha ng isang kapangyarihan ng 2 function. 666 00:34:37,090 --> 00:34:38,600 Susubukan naming tanggapin ang isang double. 667 00:34:38,600 --> 00:34:41,489 Padadalhan ka namin output-- o kami ay bumalik double uri. 668 00:34:41,489 --> 00:34:46,159 Isasaalang-alang namin ang resultang ito at pagkatapos ay para sa dalawang beses 669 00:34:46,159 --> 00:34:52,040 kung ano talaga namin ang mga resulta, na ay ang nasimulan na halaga ng isa, 670 00:34:52,040 --> 00:34:53,090 at multiply ito sa pamamagitan ng x. 671 00:34:53,090 --> 00:34:56,540 Kaya sa kakanyahan mayroon kaming x beses x dito. 672 00:34:56,540 --> 00:35:01,860 >> At kaya pagkatapos pagkatapos ay maaari ko, bilang maaari naming asahan, tumagal ito, patakbuhin ang kapangyarihan ng 2, 673 00:35:01,860 --> 00:35:03,680 magbigay dito ng ilang data, gusto ko 2.0. 674 00:35:03,680 --> 00:35:05,756 At makuha namin upang makita ang mga resulta dito 4.0. 675 00:35:05,756 --> 00:35:09,200 Patakbuhin ang kapangyarihan ng 2 sa 3.2 at kami makakuha upang makita ang aming resulta, 10.24. 676 00:35:09,200 --> 00:35:10,840 Sa ngayon kaya magandang, tama? 677 00:35:10,840 --> 00:35:12,070 Ngayon kami ay nag-iisip, mahusay, OK. 678 00:35:12,070 --> 00:35:15,530 Ngayon talagang kailangan kong gawin ng maraming mga kapangyarihan ng 3. 679 00:35:15,530 --> 00:35:19,180 Kaya kukunin ko na kopyahin i-paste ang lahat ng ang code na ito, baguhin ang pangalan ng pag-andar mula sa 680 00:35:19,180 --> 00:35:24,440 kapangyarihan ng 2 sa kapangyarihan ng 3, at lahat ng bagay magiging pareho maliban para sa halagang ito 681 00:35:24,440 --> 00:35:26,740 dito, hanay na ito, 1 ... 2. 682 00:35:26,740 --> 00:35:29,590 >> Kaya sa halip na paulit-ulit na ito loop dalawang beses, 683 00:35:29,590 --> 00:35:31,880 Gusto kong ulitin ito loop tatlong beses. 684 00:35:31,880 --> 00:35:36,330 Kaya binago ko lang na halaga mula sa 1 sa 3-- o sa halip 2-3. 685 00:35:36,330 --> 00:35:39,230 Kaya muli, ang parehong code, iyon ang tanging pagbabago. 686 00:35:39,230 --> 00:35:40,080 Ngayon ay gagana rin ito. 687 00:35:40,080 --> 00:35:43,860 Kapangyarihan ng 3 na ibinigay sa ilang mga halaga ng 2. 688 00:35:43,860 --> 00:35:44,420 Makakakuha tayo ng 8. 689 00:35:44,420 --> 00:35:45,370 Kaya 2 nakakubo. 690 00:35:45,370 --> 00:35:48,060 At 3.2 nakakubo ay 32.768. 691 00:35:48,060 --> 00:35:50,597 At sa ngayon kaya magandang, tama? 692 00:35:50,597 --> 00:35:52,930 Ngunit sana ay ito ay isang maliit na bit ng isang red-flag para sa iyo 693 00:35:52,930 --> 00:35:55,530 sa na mayroon kami ngayon ang ilang mga pag-duplicate ng code 694 00:35:55,530 --> 00:35:58,800 maliban para sa ilang mga napaka-menor de edad baguhin mula sa isa hanggang sa susunod. 695 00:35:58,800 --> 00:36:02,170 Kaya ay may ilang mga paraan na maaari naming magagawang gawing simple 696 00:36:02,170 --> 00:36:06,080 ang problemang ito, kung saan kami maaaring aktwal na, sa pagtakbo ng oras, malaman kung ilan, 697 00:36:06,080 --> 00:36:11,320 magbigay sa amin ng ilang mga pag-andar na may tumpak ang lakas ng gusto namin. 698 00:36:11,320 --> 00:36:13,960 >> At may ito ideya ng pagsasara, na kung saan ay talagang, talagang 699 00:36:13,960 --> 00:36:18,180 mahalaga sa konteksto ng Swift, at sa marami pang ibang mga wika. 700 00:36:18,180 --> 00:36:21,580 Ngunit marahil ay makikita mo ito ginamit nang higit pa kaya sa Swift 701 00:36:21,580 --> 00:36:23,650 dahil ito ay naka-embed sa loob ng wika 702 00:36:23,650 --> 00:36:28,280 kaysa sa iba pang ring modernong wika. 703 00:36:28,280 --> 00:36:31,140 Kaya ang ideya ng isang pagsasara ay ito, ay namin 704 00:36:31,140 --> 00:36:35,430 ay maaaring magkaroon ng isang function na ay sinadya upang maging isang generic na function, isang generic na kapangyarihan 705 00:36:35,430 --> 00:36:36,860 ng function. 706 00:36:36,860 --> 00:36:41,010 >> At ang function na ito ay pagpunta sa tanggapin ito exponent na kami talaga 707 00:36:41,010 --> 00:36:42,990 nais upang lumikha ng. 708 00:36:42,990 --> 00:36:46,550 Kaya halimbawa, ang pinakaunang Halimbawa, gusto namin ng kapangyarihan ng 2. 709 00:36:46,550 --> 00:36:50,050 Kaya gusto naming bigyan ng lakas ng at pagkatapos ay sa panaklong 2. 710 00:36:50,050 --> 00:36:52,490 At mapansin na ngayon kung ano ang ito talaga ay nagbabalik. 711 00:36:52,490 --> 00:36:57,680 Ito ay magtatagal ng isang input ng isang panimulang aklat sa pagbasa tinatawag na y iyon ay isang integer, 712 00:36:57,680 --> 00:37:03,090 at ito ay nagbalik ito mabaliw hinahanap bagay sa parentheses-- panaklong 713 00:37:03,090 --> 00:37:06,230 double at pagkatapos ay i-double arrow. 714 00:37:06,230 --> 00:37:10,270 >> Ano ang ibig sabihin nito ay na ako pagpunta upang magbalik ng function. 715 00:37:10,270 --> 00:37:13,510 Hindi ako bumabalik pang uri ng data, ako 716 00:37:13,510 --> 00:37:16,350 sa katunayan pagbabalik ng isang function na na may parameter na ito, na 717 00:37:16,350 --> 00:37:22,680 tumatanggap ng double bilang input at output ng double bilang isang halaga return. 718 00:37:22,680 --> 00:37:29,750 At bilang resulta, dahil ngayon, Tumawag ako kapangyarihan ng, pagpasa sa ilang mga halaga para sa y, 719 00:37:29,750 --> 00:37:32,280 at Lumilikha ako ng ito sa iba pang mga function-- notice na mayroong 720 00:37:32,280 --> 00:37:35,980 isa pang pag-andar na Nililikha sa loob ng this-- kung ano ang ako paggawa 721 00:37:35,980 --> 00:37:37,830 ay ang maaari kong pagkatapos ay baguhin na halaga, isa na 722 00:37:37,830 --> 00:37:41,010 halaga na aking ay nagbago 2-3, ngayon ginawa ito y. 723 00:37:41,010 --> 00:37:42,500 >> At ito ay nagpatuloy. 724 00:37:42,500 --> 00:37:48,530 Kaya sa bawat oras na tawagan ako kapangyarihan ng, mahalagang kung ano ang mangyayari 725 00:37:48,530 --> 00:37:51,030 ay na ako nagbalik ng isang function. 726 00:37:51,030 --> 00:37:54,310 Pansinin na dito na tinukoy mo ako isang bagong variable na tinatawag na parisukat. 727 00:37:54,310 --> 00:37:59,340 Na-set ko ito katumbas ng kapangyarihan ng, ibinigay ang halagang ito ng 2 hanggang kapangyarihan ng. 728 00:37:59,340 --> 00:38:02,030 At kung ano ito ay ibinalik na ang pag-andar. 729 00:38:02,030 --> 00:38:05,970 Kaya square, ang variable square, ay isa ng uri ng pag-andar 730 00:38:05,970 --> 00:38:11,390 na may this-- oops, mag-scroll up ng isang maliit bit-- na may lagda ito, 731 00:38:11,390 --> 00:38:15,560 tanggapin ang isang double at output ng isang double. 732 00:38:15,560 --> 00:38:17,330 >> Kaya ngayon kung ano gumawa ako ay na hindi ko talaga 733 00:38:17,330 --> 00:38:22,890 nilikha ng isang function na tinatawag na parisukat na tumatanggap ng anumang halaga at parisukat ito. 734 00:38:22,890 --> 00:38:24,960 Maaari naming makita kung ano ang mangyayari pababa dito. 735 00:38:24,960 --> 00:38:29,960 Square 3 halimbawa, ang ibig sabihin ako pupunta upang gawin ang mga halaga 3 at nakalapat ito. 736 00:38:29,960 --> 00:38:32,010 Kaya kung paano eksaktong ito gumagana? 737 00:38:32,010 --> 00:38:37,800 Kapag pumasa ako lakas ng 2-- kapag ako ay pumasa sa 2 ito kapangyarihan ng pag-andar, 738 00:38:37,800 --> 00:38:44,430 y variable na ito ay populated na may halaga na 2. 739 00:38:44,430 --> 00:38:46,340 At iyon ay isang uri ng gaganapin sa memorya. 740 00:38:46,340 --> 00:38:49,430 Na uri ng mga gustong gaganapin sa estado sa isang lugar sa computer, 741 00:38:49,430 --> 00:38:51,980 hindi namin talagang pakialam kung paano o kung saan sa puntong ito. 742 00:38:51,980 --> 00:38:54,692 >> Ngunit bumalik ako function na ito tinatawag na exponentiate. 743 00:38:54,692 --> 00:38:57,400 At muli, hindi ito talagang mahalaga kung ano ang function na ito ay tinatawag na, 744 00:38:57,400 --> 00:39:01,730 talaga maaari naming tumawag ito anumang bagay, na tumatanggap ng double at nagbabalik ng double, 745 00:39:01,730 --> 00:39:05,640 ngunit ginagamit ang halaga ng y sa loob nito. 746 00:39:05,640 --> 00:39:09,290 Kaya kahit na ito ay ang function na ito, ito exponentiater pag-andar na 747 00:39:09,290 --> 00:39:13,600 Na-ibinalik pabalik sa aking variable na tinatawag ko parisukat, 748 00:39:13,600 --> 00:39:17,980 ito ay nilalaman sa loob nito ito kuru-kuro ng kung ano ang y ay. 749 00:39:17,980 --> 00:39:19,070 At tinatandaan ito na. 750 00:39:19,070 --> 00:39:24,810 >> Kaya sa tuwing tawagan ko na function na ay tinatawag na ngayong square, ginagamit nito iyon. 751 00:39:24,810 --> 00:39:27,990 Ngunit nangangahulugan din ito na maaari ko lumikha ng isa pang variable na gamit 752 00:39:27,990 --> 00:39:29,120 sa ibang kapangyarihan ng. 753 00:39:29,120 --> 00:39:33,240 Kaya ang maaari kong lumikha ng isang kubo na variable, para sa Halimbawa, magbigay dito ng kapangyarihan ng 3. 754 00:39:33,240 --> 00:39:37,230 Ngayon kubo ay aktwal na tumagal ng ilang halaga at kubo na at ibalik ito. 755 00:39:37,230 --> 00:39:39,570 Upang maaari naming makita na nakukuha ko isang halaga 8 out sa na. 756 00:39:39,570 --> 00:39:42,720 >> Ngunit na halaga y ay hindi Binago dahil sila 757 00:39:42,720 --> 00:39:44,980 ginanap sa pag-uuri ng mga independiyenteng mga variable. 758 00:39:44,980 --> 00:39:47,480 Ang mga ito ay uri ng ginanap sa independiyenteng mga espasyo sa memory. 759 00:39:47,480 --> 00:39:51,290 Kaya kubo ay palaging mayroon x sa lakas ng 3. 760 00:39:51,290 --> 00:39:55,380 At parisukat ay palaging mayroon x sa lakas ng 2, na 761 00:39:55,380 --> 00:39:58,470 ay nangangahulugan na parisukat ay palaging parisukat na mga numero, tulad ng iyong inaasahan ko. 762 00:39:58,470 --> 00:40:01,794 At kubo ay palaging nakakubo mga numero, tulad ng iyong inaasahan ko. 763 00:40:01,794 --> 00:40:04,960 Ibig sabihin din nito na kung minsan maaari kang makakuha ng ilang mga uri ng funky naghahanap syntax 764 00:40:04,960 --> 00:40:09,030 kung saan mayroon kang lakas ng sa pinakadulo ibaba ng screen dito, lakas ng 5. 765 00:40:09,030 --> 00:40:11,410 At pumasa ka sa resulta. 766 00:40:11,410 --> 00:40:14,670 Tatawagan ka na pagpapaandar na Na-ibinalik na kasama ang numero 4. 767 00:40:14,670 --> 00:40:17,440 At kaya kung ano ang tunay na ito 4 sa ikalimang kapangyarihan, 768 00:40:17,440 --> 00:40:20,830 maaari naming makita ang mga resulta doon. 769 00:40:20,830 --> 00:40:23,690 Sa akin sa ngayon? 770 00:40:23,690 --> 00:40:26,620 >> Kaya sa ideya na ito ay tinatawag na isang pagsasara, dahil kung ano talaga naming ginagawa 771 00:40:26,620 --> 00:40:30,610 ay namin encapsulating into---uri-uriin ang ilang data 772 00:40:30,610 --> 00:40:33,050 ng nasasakupang ang data na ito sa isang function at nagpapaumanhin kami 773 00:40:33,050 --> 00:40:36,240 kawalan ng kakayahang muling gamitin ang function na ito. 774 00:40:36,240 --> 00:40:41,480 Ngayon ang syntax na ito bagaman maaari talaga ay pinasimple sa isang mahusay na halaga. 775 00:40:41,480 --> 00:40:45,005 At mayroong maraming mga posibilidad sa Swift para sa pagpapagaan. 776 00:40:45,005 --> 00:40:47,780 At iyon ang kung anong uri ng talagang tumingin kasunod na mga sa. 777 00:40:47,780 --> 00:40:51,400 Kaya sa 7b halimbawa, namin tumagal ito ng eksaktong parehong code. 778 00:40:51,400 --> 00:40:54,360 >> Ngunit ngayon kaysa sa talagang tukuyin ang isang function 779 00:40:54,360 --> 00:40:57,910 sa loob ng kapangyarihan ng gumana at bigyan ito ng isang pangalan, 780 00:40:57,910 --> 00:41:00,150 at pagkatapos ay bumalik sa pangalan ng na function, kung saan 781 00:41:00,150 --> 00:41:02,357 pagkatapos ay ginagamit bilang bahagi ng ito pagsasara, sa halip kami ay 782 00:41:02,357 --> 00:41:03,440 lamang ng pagpunta sa gawing simple ito. 783 00:41:03,440 --> 00:41:06,580 Hindi namin kailangan ang function na ito na may pangalang. 784 00:41:06,580 --> 00:41:09,760 Kaya ito ay ang konsepto ng isang -andar ng hindi nakikilalang kung saan pagkatapos ay maaari naming 785 00:41:09,760 --> 00:41:15,180 tanggapin bilang input, sa mga panaklong dito, x mga variable na ng uri ng double. 786 00:41:15,180 --> 00:41:17,250 >> Kami ay pagpunta sa ibalik ang uri ng double. 787 00:41:17,250 --> 00:41:19,830 At pagkatapos ay ang keyword, n, ay simula ng pag-andar na ito. 788 00:41:19,830 --> 00:41:22,180 Kaya mapapansin na ang lahat ng ito Nasa kulot bracket 789 00:41:22,180 --> 00:41:25,310 at kami ay pagtukoy sa isang anonymous na gumana dito. 790 00:41:25,310 --> 00:41:29,910 Lamang sa isang mas simpleng paraan ng pagtukoy sa eksaktong parehong bagay. 791 00:41:29,910 --> 00:41:30,810 OK? 792 00:41:30,810 --> 00:41:36,740 Ngunit hawakan, aktwal na nagbibigay-daan sa Swift sa amin upang pumunta sa karagdagang at padaliin ang kahit na higit pa, 793 00:41:36,740 --> 00:41:40,180 dahil talagang hindi namin mahalaga na ang parameter na ito ay 794 00:41:40,180 --> 00:41:41,700 pinangalanan anumang partikular na bagay. 795 00:41:41,700 --> 00:41:48,090 Talaga ito maaaring tinatawag anumang bagay at Maaari pa rin namin ang na unang parameter. 796 00:41:48,090 --> 00:41:53,800 >> Kaya sa katotohanan mayroong mga espesyal na ito uri ng data sa mga hindi kilalang mga pag-andar, 797 00:41:53,800 --> 00:41:57,710 may ito espesyal na pangalan ng mga variable sa mga hindi kilalang function 798 00:41:57,710 --> 00:42:00,280 na panimula sa ang dollar sign at kinakatawan 799 00:42:00,280 --> 00:42:03,785 ang mga numero parameter, zero -index, para sa function na ito. 800 00:42:03,785 --> 00:42:05,410 Kaya mayroong ilang mga bagay na nangyayari. 801 00:42:05,410 --> 00:42:08,550 Narito Pupunta ako sa bumalik, at pagkatapos ay isang kulot suhay na kumakatawan sa isang function, 802 00:42:08,550 --> 00:42:09,050 tama? 803 00:42:09,050 --> 00:42:13,920 >> Abiso na hindi ko inilarawan ang parameter uri o mga uri ng binalik. 804 00:42:13,920 --> 00:42:16,460 Talaga ito maaaring natukoy na dahil sa mga lagda 805 00:42:16,460 --> 00:42:18,360 ng orihinal na function. 806 00:42:18,360 --> 00:42:20,500 Kaya maaari naming alisin na bilang isang posibilidad. 807 00:42:20,500 --> 00:42:25,120 Ngunit din maaari kong gamitin dollar sign zero sa katawanin ang unang parameter na 808 00:42:25,120 --> 00:42:28,200 pumasa sa sa mga hindi kilalang function na ito. 809 00:42:28,200 --> 00:42:31,630 Kaya Pinasisimple ito kahit na higit pa. 810 00:42:31,630 --> 00:42:32,750 OK? 811 00:42:32,750 --> 00:42:33,820 Sa ngayon, kaya magandang? 812 00:42:33,820 --> 00:42:36,980 >> Ngayon, ito type-- gagawin mo tandaan ang pag-sign zero dolyar 813 00:42:36,980 --> 00:42:40,130 na nakita natin sa kulot suhay na nakita namin lamang ng ilang sandali 814 00:42:40,130 --> 00:42:43,870 ang nakalipas sa Swift anim na halimbawa? 815 00:42:43,870 --> 00:42:46,560 Ito ay dito mismo. 816 00:42:46,560 --> 00:42:48,430 Pansinin iyon mismo kung ano ang namin ang iyong tinitingnan, 817 00:42:48,430 --> 00:42:51,580 ay ang lumipas na namin sa hating-andar na ito 818 00:42:51,580 --> 00:42:55,140 isang hindi nakikilalang function na Sinusuri ng unang parameter 819 00:42:55,140 --> 00:42:57,830 upang makita kung ito ay katumbas ng simbolo ng colon. 820 00:42:57,830 --> 00:42:59,830 At iyon mismo kung ano ang nangyayari, ay ang lahat ng 821 00:42:59,830 --> 00:43:02,320 kami ay doing-- ang pagbabalik keyword ay ipinahiwatig 822 00:43:02,320 --> 00:43:05,800 sa case-- kami ay bumabalik ang halaga na ito kung saan kami ay naghahambing 823 00:43:05,800 --> 00:43:10,020 ang unang parameter laban ito ng character colon. 824 00:43:10,020 --> 00:43:11,730 At upang ang uri ng demystifies ito. 825 00:43:11,730 --> 00:43:17,210 At ka ng pagpunta upang makita na ito na bumuo ng Marami sa Swift syntax, kaya gawin panatilihing na 826 00:43:17,210 --> 00:43:19,400 sa isip kapag ikaw ay ng pagtingin sa ito. 827 00:43:19,400 --> 00:43:21,970 Ngayon ay maaari naming bumaba ang daang-bakal nang kaunti 828 00:43:21,970 --> 00:43:25,460 at pumunta talaga fancy na palabas kahit ilang higit pa sa kapangyarihan ni Swift. 829 00:43:25,460 --> 00:43:27,950 Maaaring mo ring makita ang ilang mga ng mga ito sa sample code. 830 00:43:27,950 --> 00:43:29,790 Kaya na ang dahilan kung bakit ako pupunta upang ipakita ito sa iyo. 831 00:43:29,790 --> 00:43:37,260 >> Talaga kung ano ang maaari naming gawin ay na, una ng lahat, ito ay uri ng walang kailangan para sa akin 832 00:43:37,260 --> 00:43:41,710 upang ipatupad ang lahat ng na lakas ng code dahil kung nag-import ka ng Darwin 833 00:43:41,710 --> 00:43:46,490 library, ang aktwal na kinabibilangan ng isang function tinatawag na yukod na ginagawa ito para sa iyo. 834 00:43:46,490 --> 00:43:50,570 Upang maaari namin itong gawing simple kahit na higit pa at mayroon na ngayong ang aming mga kapangyarihan up lamang 835 00:43:50,570 --> 00:43:54,890 maging isang kahanga-hangang isa Liner kung saan kami lamang bumalik ng hindi kilalang function na ito na 836 00:43:54,890 --> 00:44:00,780 Tinatanggap ng dollar sign 0 bilang nito base at y bilang simbolo nito. 837 00:44:00,780 --> 00:44:02,582 >> Ngunit maaari naming makakuha ng talagang, talagang magarbong kapag namin 838 00:44:02,582 --> 00:44:04,790 Napag-alaman na Swift ay may maraming kapangyarihan sa ilalim ng hood. 839 00:44:04,790 --> 00:44:07,010 Marami sa mga operator na kami ay pagharap sa, 840 00:44:07,010 --> 00:44:11,270 plus mga palatandaan at mga simbolo dibisyon at lahat ng mga bagay na sa karaniwan 841 00:44:11,270 --> 00:44:15,620 patakbuhin sa may mga uri ng data sa isang programming language, 842 00:44:15,620 --> 00:44:17,600 ay talagang extensible sa Swift. 843 00:44:17,600 --> 00:44:21,460 Kaya kung ano ang ibig sabihin sa na namin maaring tukuyin ng aming sariling mga operator. 844 00:44:21,460 --> 00:44:26,020 >> Kaya ngayon Ako pagod ng pagta-type sa lahat ng ito yukod at pagkatapos ay isang panaklong at pagkatapos ay 845 00:44:26,020 --> 00:44:26,520 ang base. 846 00:44:26,520 --> 00:44:27,520 Hindi ko nais upang gawin iyon. 847 00:44:27,520 --> 00:44:30,190 Talagang gusto kong magkaroon ng isang operator na nagbibigay-daan sa akin upang gawin iyon. 848 00:44:30,190 --> 00:44:34,510 Kaya ang maaari kong sabihin sa Swift na gusto ko upang lumikha ng isang operator, bituin 849 00:44:34,510 --> 00:44:39,472 star-- sa paraan kung hindi ko magamit ang karat dahil ang karat ay isang operator na 850 00:44:39,472 --> 00:44:40,680 ang ibang bagay lahat. 851 00:44:40,680 --> 00:44:42,720 Kaya hindi ko nais upang ayusin ng sumalungat sa iyon. 852 00:44:42,720 --> 00:44:45,750 At kaya kung ano ang makikita mo sa iba't-ibang ng wika, kabilang ang Python, 853 00:44:45,750 --> 00:44:48,810 ay tulad ng bituin bituin operator upang kumatawan exponents. 854 00:44:48,810 --> 00:44:50,730 >> Kaya iyon ang dahilan lamang kung bakit ginawa ko na iyon. 855 00:44:50,730 --> 00:44:53,067 At ito ay magiging isang uri ng itanim operator. 856 00:44:53,067 --> 00:44:54,900 At Mayroon akong upang magbigay ng dito ang ilang impormasyon 857 00:44:54,900 --> 00:44:58,386 tungkol sa karapatan sa pangunguna ng operator kaya kaliwa nag-uugnay. 858 00:44:58,386 --> 00:45:00,260 Ito ay tulad relatibong mataas na mangingibabaw kumpara 859 00:45:00,260 --> 00:45:02,432 sa kabuuan o pagpaparami. 860 00:45:02,432 --> 00:45:04,140 Ito ay mas mataas na mangingibabaw kaysa sa lahat ng mga iyon. 861 00:45:04,140 --> 00:45:04,931 Kaya sa at iba pa. 862 00:45:04,931 --> 00:45:07,410 At pagkatapos ay tukuyin ko ang -andar na aktwal na 863 00:45:07,410 --> 00:45:10,070 dictates kung ano ang ginagawa ang operator na ito. 864 00:45:10,070 --> 00:45:14,150 Kaya kung ipagpalagay na mayroon akong isang kaliwa bahagi at kanang bahagi, 865 00:45:14,150 --> 00:45:17,330 na kung saan ay marahil isang mas mahusay na variable na pangalan para sa. 866 00:45:17,330 --> 00:45:20,690 Kaliwang bahagi at kanang bahagi. 867 00:45:20,690 --> 00:45:26,740 Pagkatapos ay maaari ko ang kapangyarihan ng kaliwang bahagi sa kanang bahagi 868 00:45:26,740 --> 00:45:28,980 at ibalik ang halaga. 869 00:45:28,980 --> 00:45:30,370 Kaya ngayon ito ay sobrang matamis. 870 00:45:30,370 --> 00:45:33,790 Ang lahat ng mayroon kaming gawin ay 2 star star 3 at iyon ang 2 sa ikatlong kapangyarihan, 871 00:45:33,790 --> 00:45:35,290 at kumuha kami ng isang halaga ng 8. 872 00:45:35,290 --> 00:45:40,280 2 star star 10 ay 2 sa Ika-10 kapangyarihan, makakakuha tayo ng 1024. 873 00:45:40,280 --> 00:45:43,630 >> Kaya ngayon ang aming kapangyarihan ng pag-andar, na muli ay iba, 874 00:45:43,630 --> 00:45:47,030 dahil ang buong ideya sa likod na ito ay mayroon kaming isang function na 875 00:45:47,030 --> 00:45:50,700 laging tumatagal ng ilang mga halaga at -multiply it-- o sa halip 876 00:45:50,700 --> 00:45:53,240 tumatagal ang exponent sa parehong kapangyarihan. 877 00:45:53,240 --> 00:45:54,300 Kaya ngayon na kahit simple. 878 00:45:54,300 --> 00:45:57,070 Kaya ngayon ito lang ang dollar -sign 0 star star y. 879 00:45:57,070 --> 00:46:01,190 Hindi namin kahit na kailangang gumamit ng yukod na ngayon. 880 00:46:01,190 --> 00:46:03,020 >> OK, kung sino ang mawawala? 881 00:46:03,020 --> 00:46:03,700 Sigurado namin ang paggawa OK? 882 00:46:03,700 --> 00:46:05,090 Ang anumang mga katanungan sa mga bagay-bagay na ito? 883 00:46:05,090 --> 00:46:05,815 Oo? 884 00:46:05,815 --> 00:46:09,500 >> Madla: Kapag you-- [hindi marinig] maging sobrang lungkot ang kapangyarihan ng y double. 885 00:46:09,500 --> 00:46:11,441 Kaya kapag bumabalik ka ng isang function. 886 00:46:11,441 --> 00:46:13,190 Daniel ARMENDARIZ: Maging sobrang lungkot kapangyarihan ng y double. 887 00:46:13,190 --> 00:46:14,270 Oh oo, hindi ko alam kung ano ang y mga numero. 888 00:46:14,270 --> 00:46:15,708 Paumanhin tungkol doon. 889 00:46:15,708 --> 00:46:19,420 >> Madla: Bakit mo bumabalik isang function [hindi marinig] enclosure. 890 00:46:19,420 --> 00:46:24,214 Ay hindi dolyar zero star star y [hindi marinig] 891 00:46:24,214 --> 00:46:29,710 makahanap ng operator na may na bumabalik double [hindi marinig]-double? 892 00:46:29,710 --> 00:46:32,742 >> Daniel ARMENDARIZ: Kaya hayaan sa akin sagutin ang iyong tanong 893 00:46:32,742 --> 00:46:35,950 paano Nauunawaan ko ito at maaari mong sabihin sa akin kung hindi ko naintindihan ang iyong tanong. 894 00:46:35,950 --> 00:46:42,850 Kaya ito bumuo, ang kulot suhay dollar sign zero star star y, 895 00:46:42,850 --> 00:46:44,280 ay isang katangian. 896 00:46:44,280 --> 00:46:50,080 At tinanggap ito ng parameter na na kinakatawan ng dollar sign sa zero. 897 00:46:50,080 --> 00:46:55,830 Ang pagbabalik keyword ay ipinahiwatig sa napaka-ikling, ang hindi kilalang syntax function. 898 00:46:55,830 --> 00:46:57,870 >> Na nangangahulugan na ang tunay kung ano na ito ay sinasabi 899 00:46:57,870 --> 00:47:01,270 ay na ako ng pagtukoy sa isang function-- at pagkatapos ay idedetalye ko 900 00:47:01,270 --> 00:47:05,320 tumawag lang ito something-- kung saan mayroon akong ilang mga halaga ng y. 901 00:47:05,320 --> 00:47:08,300 Mayroon akong y, na double. 902 00:47:08,300 --> 00:47:10,750 At ako pagbabalik ng isang double. 903 00:47:10,750 --> 00:47:19,010 At mayroon akong sa loob ng return na y-- ng paumanhin, Hindi dapat tinatawag ko ito y-- x. 904 00:47:19,010 --> 00:47:20,240 Oh mahal, oh mahal, oh mahal. 905 00:47:20,240 --> 00:47:27,440 X-- nope-- star star y. 906 00:47:27,440 --> 00:47:29,720 >> Kaya ito ay isa lamang pinasimple na bersyon ng ito. 907 00:47:29,720 --> 00:47:33,990 At kaya ang dahilan na mayroon akong dolyar -sign zero ay ang paggamit ng enclosure 908 00:47:33,990 --> 00:47:41,050 ay nangangahulugan na Wala na akong i-type ang yukod, o hindi na gawin 909 00:47:41,050 --> 00:47:45,570 Kailangan ko bang gumawa ng isang bagay tulad ng 3 star star 2. 910 00:47:45,570 --> 00:47:48,530 Maaari ko na lang ay isang solong function na tinatawag na parisukat 911 00:47:48,530 --> 00:47:50,820 iyon ay laging kumukuha ilang halaga bilang input 912 00:47:50,820 --> 00:47:52,980 at talagang bumalik sa plaza ng iyon. 913 00:47:52,980 --> 00:47:56,460 >> Kaya ang buong layunin ng pagsasara ay sa makatarungan uri ng encapsulate ang katotohanan 914 00:47:56,460 --> 00:47:59,920 na gusto ko laging gamitin y kailanman Tawagan ko na pag-andar bilang ang lakas 915 00:47:59,920 --> 00:48:01,710 kapag pagkuha ito exponent. 916 00:48:01,710 --> 00:48:04,650 Kaya bumabalik pagkatapos, isang function na ito ay tumatanggap 917 00:48:04,650 --> 00:48:08,460 double, kung saan ay ang base, at bumabalik na ang resulta ng na exponent 918 00:48:08,460 --> 00:48:10,740 ay ang susi dito. 919 00:48:10,740 --> 00:48:12,790 At iyon ang mga pangunahing pagkakaiba. 920 00:48:12,790 --> 00:48:14,430 Nagkaroon lamang ng kaunting isang umunlad. 921 00:48:14,430 --> 00:48:17,970 >> Ito ay hindi sa anumang ibang kumpara sa naunang mga halimbawa, 922 00:48:17,970 --> 00:48:20,530 ngunit ito ay lamang ng kaunting isang yumabong namin talaga 923 00:48:20,530 --> 00:48:24,500 lumikha ng isang operator sa Swift at talagang gawin mga bagay-bagay dito, 924 00:48:24,500 --> 00:48:26,396 na kung saan ay uri ng isang cool na bagay. 925 00:48:26,396 --> 00:48:27,520 Nasagot ba ako iyong katanungan? 926 00:48:27,520 --> 00:48:28,390 Sweet. 927 00:48:28,390 --> 00:48:31,350 Ano pa bago ilipat namin sa? 928 00:48:31,350 --> 00:48:33,570 OK. 929 00:48:33,570 --> 00:48:36,430 >> Ngayon ang ganitong uri ng begs ang tanong ay that-- na rin OK, 930 00:48:36,430 --> 00:48:40,870 ngayon kami ay ang kakayahan para sa mga function na ibabalik. 931 00:48:40,870 --> 00:48:48,950 Puwede ba kaming ring magpasa ng mga pag-andar tulad ng data o bilang ng mga parameter sa iba pang mga pag-andar? 932 00:48:48,950 --> 00:48:50,710 At sa katunayan ng aming makakaya. 933 00:48:50,710 --> 00:48:53,480 Kaya sabihin nating mayroon kaming lahat ng ang parehong code. 934 00:48:53,480 --> 00:48:56,120 Mayroon kaming mga parisukat na variable iyon ay parisukat ang code na ito. 935 00:48:56,120 --> 00:48:59,320 At mayroon kaming ang kubo na variable na Cube na mga data. 936 00:48:59,320 --> 00:49:02,440 At talagang namin nais na ilapat ang sa isang malawak na hanay ng mga numero. 937 00:49:02,440 --> 00:49:06,870 >> Kaya kung ano ang maaaring matukso naming gawin, siyempre, na tiyak na wasto, 938 00:49:06,870 --> 00:49:15,430 ay upang umulit sa ibabaw ang listahang ito ng mga numero at ilapat ang aking mga pag-andar square at kubo 939 00:49:15,430 --> 00:49:22,270 at kumuha ng dalawang bagong mga listahan ng mga resulta na ito ang orihinal na listahan nakalapat 940 00:49:22,270 --> 00:49:24,970 at nakakubo, ayon sa pagkakabanggit. 941 00:49:24,970 --> 00:49:26,880 Ganap na ganap katanggap-tanggap. 942 00:49:26,880 --> 00:49:29,130 Ngunit kung ano ang mga bagay na makikita natin dito ay na mayroon kami, 943 00:49:29,130 --> 00:49:31,310 muli, pag-duplicate ng aming mga code. 944 00:49:31,310 --> 00:49:34,310 At mayroong di kaya ng pagkakataon para sa amin upang gawing simple ito nang kaunti. 945 00:49:34,310 --> 00:49:41,260 Paano kung nagkaroon ng isang paraan para sa amin upang talagang laging umulit sa paglipas ng ilang mga listahan 946 00:49:41,260 --> 00:49:45,450 at pumasa lamang sa mahiwagang gumana sa isang variable na 947 00:49:45,450 --> 00:49:47,350 ay kumakatawan sa isang function na na nais naming mag-apply 948 00:49:47,350 --> 00:49:50,336 sa bawat solong item sa listahang ito. 949 00:49:50,336 --> 00:49:53,210 Dinadala ito ng hanggang ang konsepto ng kung ano ang ay tinatawag na mas mataas na mga pag-andar order. 950 00:49:53,210 --> 00:49:57,150 At iyon ay lubos kung ano na ito ay, ay maaari naming lumikha ng isang function. 951 00:49:57,150 --> 00:50:00,210 >> At sa kasong ito ito ay tinatawag na Mapper, upang bigyan lamang ito ng isang pangalan, tulad lamang 952 00:50:00,210 --> 00:50:02,510 pagma-map sa paglipas ng bawat solong item sa isang listahan. 953 00:50:02,510 --> 00:50:06,191 Saan kumuha ako ng isang listahan at gagawa ako ng function. 954 00:50:06,191 --> 00:50:08,440 At na function, siyempre, May ilang mga lagda. 955 00:50:08,440 --> 00:50:11,980 Tinanggap ito bilang isang parameter double at magpo ito output ay isang double. 956 00:50:11,980 --> 00:50:14,310 At ang buong resulta ng function na ito ay pagpunta 957 00:50:14,310 --> 00:50:18,921 upang maging isang bagong listahan na ng uri ng double. 958 00:50:18,921 --> 00:50:19,420 OK? 959 00:50:19,420 --> 00:50:22,650 >> At kung ano ang pupuntahan ko gawin ay upang ilapat ang function na ito f 960 00:50:22,650 --> 00:50:24,960 sa bawat elemento sa aking listahan. 961 00:50:24,960 --> 00:50:30,280 At reply-- at sa halip ibalik ang bagong listahan bilang isang resulta, na kung saan ay talagang cool. 962 00:50:30,280 --> 00:50:31,820 Ngayon ay maaari ba akong magpasa ng mga function sa paligid. 963 00:50:31,820 --> 00:50:35,290 At sa ideya na ito ng mas mataas na pagkakasunod-sunod mga function ay talagang mahalaga. 964 00:50:35,290 --> 00:50:39,260 At ito Mapper ay talagang lamang pagpapatupad ng mahinang tao 965 00:50:39,260 --> 00:50:43,130 ng isang function na ay binuo sa Swift tinatawag na mapa. 966 00:50:43,130 --> 00:50:45,690 At ito ang tiyak na ito, marahil kahit kaunti mas mahusay. 967 00:50:45,690 --> 00:50:48,260 >> Ito ay isa lamang uri ng isang generic, pinasimple na bersyon na 968 00:50:48,260 --> 00:50:51,270 Binibigyang-daan sa amin upang makita ang konsepto na naaangkop dito. 969 00:50:51,270 --> 00:50:54,630 Ngayon tingnan natin ang paraan na ako talaga Maaaring mag-apply ang aking mga parisukat 970 00:50:54,630 --> 00:50:57,850 at ang aking mga pag-andar kubo sa listahan ng mga numero. 971 00:50:57,850 --> 00:50:58,780 Patakbuhin ko ang aking Mapper. 972 00:50:58,780 --> 00:51:00,280 Magbigay kong ito ang aking listahan ng mga numero. 973 00:51:00,280 --> 00:51:02,155 Magbigay ako dito ang mga function na ang nangyayari 974 00:51:02,155 --> 00:51:04,170 mag-apply sa bawat isa sa mga indeks ng. 975 00:51:04,170 --> 00:51:07,120 At ito ay magiging output bilang isang resulta. 976 00:51:07,120 --> 00:51:11,810 At ang makukuha ko upang makita na ang nakalapat ko at nakakubo aking mga numero bilang isang resulta. 977 00:51:11,810 --> 00:51:14,660 >> At syempre ang Mapper ay magdadala anumang uri ng pag-andar ng hindi kilalang. 978 00:51:14,660 --> 00:51:17,640 Maaari rin naming makita na iyong nilikha ko ng isang bagong pag-andar ng hindi nakikilalang na 979 00:51:17,640 --> 00:51:20,220 lamang ay tumatagal ng ilang mga parameter at divides ito sa pamamagitan ng 2. 980 00:51:20,220 --> 00:51:24,340 At maaari naming makita na na hindi ko na, sa katunayan, hinati ang aking listahan sa pamamagitan ng 2 sa halip. 981 00:51:24,340 --> 00:51:25,250 Cool? 982 00:51:25,250 --> 00:51:27,340 Sa ngayon, kaya magandang? 983 00:51:27,340 --> 00:51:29,650 Ang lahat ng mga karapatan, ngayon sabihin bumalik sa ideyang ito. 984 00:51:29,650 --> 00:51:36,160 Ipatupad natin ang pabalik sa Hayaan konteksto ng isang gradebook. 985 00:51:36,160 --> 00:51:41,860 >> At kung gagawin ko iyon, maaari naming makita na maaari kong maglapat ng iba't ibang uri ng mga options-- 986 00:51:41,860 --> 00:51:44,330 o isang malawak na hanay ng mga mas mataas na mga pag-andar ng order 987 00:51:44,330 --> 00:51:51,450 upang aktwal na pasimplehin ang aking kakayahan upang gawin ang isang iba't-ibang mga bagay sa listahan ng mga numero. 988 00:51:51,450 --> 00:51:53,660 Kaya halimbawa, kung ako kumuha ng isang listahan ng mga numero, 989 00:51:53,660 --> 00:51:57,060 isa sa mga mas pag-andar ng order na umiiral ay tinatawag na bawasan. 990 00:51:57,060 --> 00:52:00,080 Ano bawasan ang ginagawa sa halip sa mapa, ay nabawasan habilin 991 00:52:00,080 --> 00:52:03,710 magsagawa ng dalawang mga elemento sa listahan, ay aabot ng ilang function na 992 00:52:03,710 --> 00:52:07,420 Inihahambing ang dalawang mga elemento ng listahan, at pagkatapos nito habilin 993 00:52:07,420 --> 00:52:09,610 uri ng output-- ang output ng pag-andar na 994 00:52:09,610 --> 00:52:13,790 Magiging isa pang elemento na sa iyo at pagkatapos ay ihambing sa iba. 995 00:52:13,790 --> 00:52:18,190 >> Kaya maaari mong gamitin ito upang aktwal na kabuuan ng mga numero sa iyong listahan. 996 00:52:18,190 --> 00:52:20,640 Halimbawa, kung mayroon kang isang listahan ng 1, 2, 3, 4, 5, 997 00:52:20,640 --> 00:52:22,940 Dadalhin ka sa unang elemento, 1 at 2. 998 00:52:22,940 --> 00:52:27,270 Maaari mong ilapat dito ang isang karagdagan function na tumatagal ng mga dalawang mga elemento 999 00:52:27,270 --> 00:52:30,980 at spits out sa isa sa mga elementong iyon, na kung saan ay magiging ang halaga 3. 1000 00:52:30,980 --> 00:52:35,684 Pagkatapos ay dadalhin namin na halaga 3 sa mga susunod na elemento ng listahan, sabihin sa ilang mga dalawang, 1001 00:52:35,684 --> 00:52:37,100 at pagkatapos ay panatilihin ang pagpunta pababa sa listahan. 1002 00:52:37,100 --> 00:52:40,410 >> Kami ay pagbawas ng ilista sa isang solong halaga. 1003 00:52:40,410 --> 00:52:42,700 At ito lang kaya ang mangyayari na ang mga simbolong plus 1004 00:52:42,700 --> 00:52:44,670 ay isang operator, tulad ng nakita natin lamang. 1005 00:52:44,670 --> 00:52:47,500 Operator na ito talagang isang function na 1006 00:52:47,500 --> 00:52:53,100 May tiyak na ito listahan na namin gugustuhing, sa halip mga pag-aari 1007 00:52:53,100 --> 00:52:54,770 na nais naming gusto. 1008 00:52:54,770 --> 00:52:56,760 Kaya hinihikayat kitang tingnan ito. 1009 00:52:56,760 --> 00:52:59,290 Gusto kong ayusin ng paglipat sa mula sa ilan sa ang code na ito 1010 00:52:59,290 --> 00:53:05,330 sa gayon ay maaari talagang namin tingnan ang ilan aktwal, tunay, tunay Swift sa Xcode, 1011 00:53:05,330 --> 00:53:06,880 sa iOS-unlad. 1012 00:53:06,880 --> 00:53:08,630 Ngunit tumingin sa ito at tingnan kung maaari mong 1013 00:53:08,630 --> 00:53:11,171 -parse sa pamamagitan ng kung ano ang nangyayari sa sa ilan sa mga mas mataas na pagkakasunod-sunod 1014 00:53:11,171 --> 00:53:13,790 mga function kabilang ang filter, bawasan, at ikaw ay kahit na 1015 00:53:13,790 --> 00:53:17,060 makita ang isang lugar sa mapa ang dito pati na rin. 1016 00:53:17,060 --> 00:53:17,910 Ito ay dito mismo. 1017 00:53:17,910 --> 00:53:20,410 Saan ang aabutin ng pagkakasunud-sunod ng mga grado at ito habilin talaga 1018 00:53:20,410 --> 00:53:24,230 -map ang mga ito gamit ang switch bumuo, kung saan maaari mong makilala mula sa C, 1019 00:53:24,230 --> 00:53:27,640 pero sa totoo ito ay isang maraming higit pa makapangyarihan kaysa sa switch na bumuo ng 1020 00:53:27,640 --> 00:53:29,810 mayroon kaming sa C. 1021 00:53:29,810 --> 00:53:31,930 >> At ilalapat namin na sa bawat elemento sa listahan 1022 00:53:31,930 --> 00:53:34,540 at talagang magbigay ang titik grado ng bawat 1023 00:53:34,540 --> 00:53:40,780 ng mga grado paggamit ng lahat ng mga konsepto na lang na usapan natin ang tungkol sa bago. 1024 00:53:40,780 --> 00:53:44,760 Ngayon tumabi para lang ipaalam minuto at talk tungkol sa structs. 1025 00:53:44,760 --> 00:53:49,680 At kaya structs ang paghihintay sa C na namin nagawang tukuyin ang isang bagong uri ng data. 1026 00:53:49,680 --> 00:53:53,590 Umiiral Structs sa loob Swift. 1027 00:53:53,590 --> 00:53:58,980 At kaya gawin ng maraming iba pang mga constructs tinatawag na enums at mga klase, na talagang 1028 00:53:58,980 --> 00:54:01,175 kumuha ng ideyang ito sa isang buong iba't ibang mga antas. 1029 00:54:01,175 --> 00:54:05,300 >> At isa lamang ito ay lamang ng isang paraan ng pagtukoy sa isang bagong uri ng data. 1030 00:54:05,300 --> 00:54:11,010 Kaya kung get-- sa iyo kung dumating ka sa kabuuan ng klase o structs o enums, 1031 00:54:11,010 --> 00:54:13,290 hindi makakuha ng nalilito sa pamamagitan ng ito. 1032 00:54:13,290 --> 00:54:16,280 Ito ay sa paraan ng pagtukoy ilang bagong mga partikular na uri ng data. 1033 00:54:16,280 --> 00:54:20,230 At ito ay talagang mahalaga kapag kami ay pakikipag-usap tungkol sa pag-unlad iOS app 1034 00:54:20,230 --> 00:54:24,630 dahil ang lahat ng bagay na Umiiral na sa loob ng iOS app 1035 00:54:24,630 --> 00:54:27,460 ay mahalagang isang bagay ng ilang mga uri. 1036 00:54:27,460 --> 00:54:31,980 At ang isang bagay ay isa lamang klase o isang enum o isang struct. 1037 00:54:31,980 --> 00:54:34,760 >> Kaya sa kasong ito ako ay pagtukoy sa isang bagong uri ng data 1038 00:54:34,760 --> 00:54:37,740 na ako sa pagtawag pagtatasa na ang ilang mga katangian, kabilang ang 1039 00:54:37,740 --> 00:54:41,040 isang pangalan at isang pagkakasunod-sunod ng mga grado. 1040 00:54:41,040 --> 00:54:43,470 Kaya isang uri ng pagtatasa na maaaring mayroon ako sa isip 1041 00:54:43,470 --> 00:54:44,760 ay magiging mga pagsusulit, halimbawa. 1042 00:54:44,760 --> 00:54:48,180 Gusto ko nais na magkaroon ng isang pagtatasa na ay isang pagsusulit 1043 00:54:48,180 --> 00:54:51,460 at nagkaroon ng iba't-ibang mga marka ng na nauugnay sa na, para sa pagsusulit isa, 1044 00:54:51,460 --> 00:54:52,840 pagsusulit ng dalawang, kaya sa at iba pa. 1045 00:54:52,840 --> 00:54:55,720 >> O maaari ba akong magkaroon ng ibang uri ng pagtatasa para sa mga hanay ng problema. 1046 00:54:55,720 --> 00:54:56,650 At maaari ba akong gumawa ng mga bagay. 1047 00:54:56,650 --> 00:54:59,860 Maaari ko talagang magkaroon mga pag-andar sa loob ng ganitong uri 1048 00:54:59,860 --> 00:55:02,645 ng data, na kung saan ay tinatawag na ngayong mga pamamaraan. 1049 00:55:02,645 --> 00:55:04,520 Kaya kung sakaling makita mo ang pamamaraan ng salita, ito talaga 1050 00:55:04,520 --> 00:55:08,190 lamang ng isang function na naaangkop sa isang napaka-tukoy na klase, 1051 00:55:08,190 --> 00:55:10,100 o sa isang napaka-tukoy na uri ng data. 1052 00:55:10,100 --> 00:55:12,350 Pinapayagan nito sa amin na baguhin ang data sa loob. 1053 00:55:12,350 --> 00:55:15,510 >> Kaya sa ibang salita, kapag gusto kong magdagdag ng grado sa aking mga pagtasa, 1054 00:55:15,510 --> 00:55:18,630 pagkatapos ang lahat ng kailangan kong gawin ay Ikabit ang iskor na pag-input 1055 00:55:18,630 --> 00:55:22,660 upang ang function na ito upang ang aking panloob na ari-arian. 1056 00:55:22,660 --> 00:55:25,880 May isa pang kapong baka magtayo dito sa Swift, na ang tuldok tuldok tuldok 1057 00:55:25,880 --> 00:55:31,780 operator, na nangangahulugan na ang mga puntos sa makakaya ngayon tumatanggap ng anumang bilang ng mga integer. 1058 00:55:31,780 --> 00:55:33,940 At mga marka ay magiging isang hanay ng mga integer na 1059 00:55:33,940 --> 00:55:39,030 Na-ipasa sa aking mga pag-andar, na ay nangangahulugan na maaari kong gawin mga bagay-bagay na tulad nito. 1060 00:55:39,030 --> 00:55:42,360 >> Maaari ko magdagdag ng mga grado at magbigay lamang arbitrary na numero ng integer sa ito 1061 00:55:42,360 --> 00:55:47,420 at talagang ipagkakaloob isang array ng mga halagang iyon sa aking mga pag-andar 1062 00:55:47,420 --> 00:55:50,270 o sa aking mga paraan, tulad ng kaso. 1063 00:55:50,270 --> 00:55:54,040 Ngayon ito ay mahalaga dahil lahat ng bagay sa Xcode, ang lahat sa iOS, 1064 00:55:54,040 --> 00:55:56,250 ay sa katunayan isang bagay. 1065 00:55:56,250 --> 00:55:59,630 Kaya panatilihin na sa isip kapag pumutok namin bukas Xcode 1066 00:55:59,630 --> 00:56:04,890 at lumaktaw nang higit pa sa iOS mga bersyon ng dalawa at tatlong 1067 00:56:04,890 --> 00:56:08,820 at talagang pumunta sa sa bersyon apat. 1068 00:56:08,820 --> 00:56:11,940 >> At muli, ang lahat ng mga ito habilin -post sa pahina ng seminar. 1069 00:56:11,940 --> 00:56:16,980 iOS apat ay isang uri ng isang buong tinatangay ng hangin pagpapatupad ng isang napaka-basic na app. 1070 00:56:16,980 --> 00:56:23,920 At kung ano ang app na ito ang ginagawa ito naglo-load ng UI, na kamukha ito. 1071 00:56:23,920 --> 00:56:28,680 Muli, kung i-click namin sa storyboard ng aming makakaya makita na ito ay kung ano ang mukhang. 1072 00:56:28,680 --> 00:56:31,320 Ito ang UI. 1073 00:56:31,320 --> 00:56:33,676 Ito ay may titulo sa itaas napaka. 1074 00:56:33,676 --> 00:56:34,800 Tinatawag ko na ito sa web gallery. 1075 00:56:34,800 --> 00:56:38,400 >> Sa gitna may isang elemento tinatawag na view ng imahe UI. 1076 00:56:38,400 --> 00:56:41,340 At sa ibaba mayroong isang toolbar na may isang solong pindutan na 1077 00:56:41,340 --> 00:56:46,850 May stretchy mga puwang na nagbibigay-daan ito sa center sa gitna ng toolbar. 1078 00:56:46,850 --> 00:56:51,780 At ano ang mangyayari ay na kapag ito naglo-load nagda-download ito ng JSON file na 1079 00:56:51,780 --> 00:56:55,540 na nakapaloob sa isang server sa ibang lugar, Pina-parse ng JSON na file, 1080 00:56:55,540 --> 00:56:58,130 at kamukha ng JSON file ng kaunti tulad nito. 1081 00:56:58,130 --> 00:57:02,770 1082 00:57:02,770 --> 00:57:06,230 Tinitingnan ng JSON file na katulad nito. 1083 00:57:06,230 --> 00:57:08,650 May ito ay. 1084 00:57:08,650 --> 00:57:11,730 >> Ito ay isang pangalan ng album at ito ay isang hanay ng mga larawan. 1085 00:57:11,730 --> 00:57:13,490 Ang bawat isa sa mga larawan May pangalan at din 1086 00:57:13,490 --> 00:57:19,460 isang URL ang kanilang mga sarili na kumakatawan sa jpeg bersyon ng mga indibidwal na larawan. 1087 00:57:19,460 --> 00:57:24,780 Kaya kung ano ang mangyayari ay na kapag ang program na ito naglo-load, nagda-download ito sa JSON na file, 1088 00:57:24,780 --> 00:57:30,590 Pina-parse nito, naglalagay ang lahat ng ito sa ang katumbas ng isang array sa iOS 1089 00:57:30,590 --> 00:57:33,020 pagbuo ng app, na kung saan ay isang nsarray. 1090 00:57:33,020 --> 00:57:37,520 At pagkatapos ay ako Maaaring i-load ang data na ito sa isang application 1091 00:57:37,520 --> 00:57:41,100 at i-load ito sa aking screen. 1092 00:57:41,100 --> 00:57:44,760 >> May isang imahe na ni-load may button sa ibaba napaka. 1093 00:57:44,760 --> 00:57:49,190 Kung nag-click ako Kumuha Susunod na Imahe, ito pagkatapos pulls na imahe mula sa internet 1094 00:57:49,190 --> 00:57:53,370 at pumapalit na imahe sa view ng imahe ng UI. 1095 00:57:53,370 --> 00:57:57,820 Kaya maaari mong i-download ito at talagang tingnan ito sa iyong computer. 1096 00:57:57,820 --> 00:58:00,940 At magtayo ito at talagang mag-compile ito sa iyong device. 1097 00:58:00,940 --> 00:58:04,710 Ngunit mahalagang proseso noon ay ito, lumikha ng storyboard-- 1098 00:58:04,710 --> 00:58:08,080 o sa halip hindi create-- ngunit piliin ang storyboard. 1099 00:58:08,080 --> 00:58:15,030 At talagang we'll-- kung hindi mo mind-- isasaalang-alang namin lang ng ilang mga segundo 1100 00:58:15,030 --> 00:58:18,390 upang aktwal na maipakita sa iyo kung paano tapos na ito. 1101 00:58:18,390 --> 00:58:22,430 1102 00:58:22,430 --> 00:58:27,820 >> Upang masiguro paano namin magagawa talaga makamit ito ay ginawa nang kaunti higit pa 1103 00:58:27,820 --> 00:58:28,360 maliwanag. 1104 00:58:28,360 --> 00:58:30,651 Tingnan ang application Single, ako pagpunta sa tumawag ito pantas-aral 1105 00:58:30,651 --> 00:58:35,330 apat na kumakatawan ito partikular na numero. 1106 00:58:35,330 --> 00:58:36,335 I-save ito sa desktop. 1107 00:58:36,335 --> 00:58:39,890 1108 00:58:39,890 --> 00:58:42,110 OK, pagpunta sa mag-click sa storyboard. 1109 00:58:42,110 --> 00:58:47,030 At kung ano ang pupuntahan ko gawin ay upang mahanap ang aking mga view ng imahe, 1110 00:58:47,030 --> 00:58:50,940 i-drag ito papunta sa aking gumagamit interface at sentro ito. 1111 00:58:50,940 --> 00:58:54,850 Ngayon lang pagsasentro ito sa kasamaang-palad Hindi pagpunta sa gawin marami, 1112 00:58:54,850 --> 00:58:58,680 maliban sa isang screen na ito eksaktong laki. 1113 00:58:58,680 --> 00:59:03,950 >> Kaya maaari naming kumbinsihin ang ating sarili ng mga na sa pamamagitan ng pag-click sa double lupon bagay, 1114 00:59:03,950 --> 00:59:08,290 nagdadala down na ito pop up menu dito at pagbabago 1115 00:59:08,290 --> 00:59:11,110 upang i-preview, kung saan namin idedetalye talaga makakuha ng isang pagkakataon upang i-preview kung paano 1116 00:59:11,110 --> 00:59:13,530 na ito ay talagang tumingin sa iba pang mga device. 1117 00:59:13,530 --> 00:59:16,500 Tulad ng maaari naming makita, hindi namin kahit na makita ito sa partikular na kasong ito. 1118 00:59:16,500 --> 00:59:18,500 Kaya Pupunta ako upang isara ito sa ngayon. 1119 00:59:18,500 --> 00:59:22,100 >> At ako pupunta upang piliin ang icon na ito pababa sa pinakadulo 1120 00:59:22,100 --> 00:59:23,910 ilalim na bahagi ng screen. 1121 00:59:23,910 --> 00:59:26,584 Sinasabi nito Lutasin ang Isyu Auto Layout. 1122 00:59:26,584 --> 00:59:28,000 Paumanhin, ito ay cut off sa ibaba. 1123 00:59:28,000 --> 00:59:36,360 Ngunit kung nag-click ako sa na, kung ano ang aking makakuha ay ang pop up-- pumunta ang layo. 1124 00:59:36,360 --> 00:59:39,740 1125 00:59:39,740 --> 00:59:51,220 Ano ang nakukuha ko ay ang mga pop up na ay nagbibigay-daan sa akin upang magdagdag ng mga nawawalang mga hadlang. 1126 00:59:51,220 --> 00:59:53,780 At sa pamamagitan ng paggawa na ito Pagkatapos ay isang uri ng lock ito 1127 00:59:53,780 --> 00:59:56,640 sa gitna na bahagi ng screen tulad ko maaaring asahan. 1128 00:59:56,640 --> 01:00:00,520 >> Ngayon upang makakuha ng ang pindutan na ito sa tuktok ng ito, kailangan ko upang pumunta sa Editor. 1129 01:00:00,520 --> 01:00:05,010 Pumunta sa I-embed Sa at pag-click Kontroler Navigation. 1130 01:00:05,010 --> 01:00:08,900 Ano na ang gagawin ay na magdagdag ito buong iba pang mga bahagi nito, 1131 01:00:08,900 --> 01:00:11,310 ngunit ito ang aktwal na link ito pabalik sa aking orihinal na UI. 1132 01:00:11,310 --> 01:00:14,450 At ang mga detalye, muli, hindi namin talagang kailangan upang pangalagaan ang tungkol sa ngayon. 1133 01:00:14,450 --> 01:00:16,710 Ngunit ko nais upang magkaroon ng isang toolbar sa ibaba napaka. 1134 01:00:16,710 --> 01:00:18,530 Kaya makikita check ko Mga Palabas Toolbar. 1135 01:00:18,530 --> 01:00:21,870 >> At ito ay nagbibigay sa loob ng aking view, na kung saan ay sa ibang lugar ngayon, 1136 01:00:21,870 --> 01:00:23,900 maaari naming makita ito na naka-link sa paglipas dito. 1137 01:00:23,900 --> 01:00:28,710 Nagbibigay ito ngayon ng toolbar sa ibaba ng aking UI. 1138 01:00:28,710 --> 01:00:34,770 Kaya ngayon, sa halip ng pagpili ng isang view ng imahe, maaari ko mahahanap ang isang label, 1139 01:00:34,770 --> 01:00:41,140 o sa halip ng isang toolbar-- tingnan natin, kung saan ay na? 1140 01:00:41,140 --> 01:00:41,890 Ano ay tinatawag na ito? 1141 01:00:41,890 --> 01:00:49,760 Ang isang button-- item bar-- item-- sorry-- bar item na pindutan. 1142 01:00:49,760 --> 01:00:54,590 Gumawa ng mapa na mayroong at ilapat ang ilang ng kakayahang umangkop na mga puwang sa magkabilang panig 1143 01:00:54,590 --> 01:00:57,429 upang aktwal na nakasentro na iyon. 1144 01:00:57,429 --> 01:00:58,970 Kaya ngayon Lumikha ako ng aking UI, talaga. 1145 01:00:58,970 --> 01:01:01,428 At maaari kong bigyan ito ng isang pangalan sa pamamagitan ng double click sa itaas na napaka 1146 01:01:01,428 --> 01:01:04,880 dito at sinasabi gallery ng web at iba pa. 1147 01:01:04,880 --> 01:01:08,100 Ngayon muli, ang mga ito ay mga elemento na umiiral sa pamamagitan ng kanilang mga sarili. 1148 01:01:08,100 --> 01:01:10,400 At Mayroon akong upang kumonekta mga ito sa aking code na 1149 01:01:10,400 --> 01:01:14,297 Ang maaari kong gawin sa pamamagitan ng pagdadala muli up ito double icon na bilog, 1150 01:01:14,297 --> 01:01:15,380 pagbabago mula sa preview. 1151 01:01:15,380 --> 01:01:18,950 Aling, sa pamamagitan ng ang paraan, ngayon, maaari naming makita ang mabuti nakasentro at ang magiging hitsura ng mahusay 1152 01:01:18,950 --> 01:01:23,720 sa iba't ibang mga aparato. 1153 01:01:23,720 --> 01:01:27,280 >> Lumipat sa awtomatikong, na ilabas ang ViewController code. 1154 01:01:27,280 --> 01:01:29,030 At ngayon bahaging ito ay mahalaga. 1155 01:01:29,030 --> 01:01:34,590 Sa order para sa iyo upang ikonekta ang mga ang dalawang mga elemento, ang iyong code sa UI, 1156 01:01:34,590 --> 01:01:36,680 piliin mo ang item na Nais mo bang kumonekta. 1157 01:01:36,680 --> 01:01:39,570 Kaya sa kasong ito, kami talagang gusto upang i-encode 1158 01:01:39,570 --> 01:01:43,520 baguhin ang imahe na nakapaloob sa loob ng view ng imahe UI. 1159 01:01:43,520 --> 01:01:47,070 Kaya kung kinokontrol mo click mula sa ang view ng imahe at i-drag, 1160 01:01:47,070 --> 01:01:51,960 mapapansin mo na kang makakuha ng isang maliit na bar, kapag hayaan kang pumunta ang lahat ng ito pop 1161 01:01:51,960 --> 01:01:53,550 up na magaganap. 1162 01:01:53,550 --> 01:01:56,470 >> At sinasabi nito na kami ay lumikha ng isang koneksyon. 1163 01:01:56,470 --> 01:01:59,300 At mula dito Gusto kong bigyan ito ng isang pangalan, isang bagay tulad ng gallery. 1164 01:01:59,300 --> 01:02:00,240 Pindutin ang Enter. 1165 01:02:00,240 --> 01:02:03,040 At ito talaga ay nagbibigay ng variable na tinatawag na isang gallery 1166 01:02:03,040 --> 01:02:08,600 na ang maaari kong pagkatapos ay sumangguni sa aking code upang baguhin ang imahe, halimbawa. 1167 01:02:08,600 --> 01:02:10,430 Kaya kung paano na code aktwal na hitsura ay? 1168 01:02:10,430 --> 01:02:13,030 Well muli, hindi ko nais na gumastos ng masyadong maraming oras sa ito. 1169 01:02:13,030 --> 01:02:15,430 At hinihikayat kitang i-download ito at tingnan. 1170 01:02:15,430 --> 01:02:18,330 Ngunit isa sa mga pinaka mahalagang aspeto ay ang code 1171 01:02:18,330 --> 01:02:20,980 na aktwal na kinukuha ng isang imahe. 1172 01:02:20,980 --> 01:02:26,470 >> Kaya sa kasong ito Gusto kong upang makakuha sa loob ng aking mga larawan 1173 01:02:26,470 --> 01:02:28,520 array, na nakapaloob sa loob ng aking klase. 1174 01:02:28,520 --> 01:02:33,390 Gusto kong tukuyin ang pangalan at URL na hindi parse out ng JSON. 1175 01:02:33,390 --> 01:02:39,810 Sa totoo lang tanungin ang aparato upang makuha ang URL, kunin ang URL mula ito, 1176 01:02:39,810 --> 01:02:44,060 at pagkatapos ay kunin ang data mula sa ang mga nilalaman ng URL na iyon. 1177 01:02:44,060 --> 01:02:49,430 Pagkatapos ay i-convert ang data na iyon sa isang larawan sa pamamagitan ng pagpasa ito sa imahe UI. 1178 01:02:49,430 --> 01:02:52,880 Kaya muli, ang mga ito ay ang lahat ng iba't ibang uri ng mga bagay, iba't ibang uri ng mga klase. 1179 01:02:52,880 --> 01:02:58,410 >> At pagkatapos ay ako maaaring pagkatapos ay itakda ang aking gallery.image katumbas na data. 1180 01:02:58,410 --> 01:03:00,750 At iyon ang uri ng mga karne nito na talagang ay pagkatapos 1181 01:03:00,750 --> 01:03:08,250 magagawang baguhin ang pagbabago ng data from-- larawan mula sa isa sa susunod. 1182 01:03:08,250 --> 01:03:10,660 Kaya muli, sana ay ngayon Marami ang constructs 1183 01:03:10,660 --> 01:03:12,240 ay gumawa ng isang maliit na kaunti pang kahulugan. 1184 01:03:12,240 --> 01:03:15,260 Pansinin na mayroong ilan tandang padamdam dito. 1185 01:03:15,260 --> 01:03:19,810 Ang tandang padamdam ay lubos na may kaugnayan sa optionals. 1186 01:03:19,810 --> 01:03:22,657 >> Ano talaga ako sinasabi ay na walang kahit pagsuri 1187 01:03:22,657 --> 01:03:24,490 upang makita kung mayroong data sa loob ng opsyonal, 1188 01:03:24,490 --> 01:03:27,140 Pupunta ako sa sige at angkinin na mayroong at mag-alis ng balot nito. 1189 01:03:27,140 --> 01:03:31,340 Tandaan na ang ginamit namin ang pagkakatulad ng uri ng isang pakete para sa optionals 1190 01:03:31,340 --> 01:03:34,700 at kailangan naming mag-alis ng balot ang package at hilahin ang data. 1191 01:03:34,700 --> 01:03:37,570 Ang tandang padamdam pwersa na aktwal na mangyayari. 1192 01:03:37,570 --> 01:03:39,590 >> Ngunit alam ko na ito ay ligtas dahil Sinuri ko 1193 01:03:39,590 --> 01:03:42,070 upang makita kung ang data ng imahe ay katumbas sa kawalan, talagang ako tingnan 1194 01:03:42,070 --> 01:03:45,420 upang makita kung opsyonal ay, sa katunayan, ang nabigo. 1195 01:03:45,420 --> 01:03:47,110 Kung mayroon na, sa katunayan, nabigo pa. 1196 01:03:47,110 --> 01:03:52,450 At kaya ako sigurado na sa sandaling nakuha ko sa ito point ang maaari kong ligtas na maalis ang balot na data. 1197 01:03:52,450 --> 01:03:55,710 Maaari mo ring makita ito sa sa anyo ng isang tandang pananong. 1198 01:03:55,710 --> 01:03:59,100 Kaya kung mag-scroll namin pababa sa kung saan ako kailangan upang aktwal na i-parse ang data. 1199 01:03:59,100 --> 01:04:01,850 >> Kaya huwag ilagay off sa pamamagitan ng mga uri ng mahahabang pangalan. 1200 01:04:01,850 --> 01:04:06,580 Maaari mong mahanap sa Apple site ng nag-develop ng maraming 1201 01:04:06,580 --> 01:04:09,620 ng mga sanggunian sa lahat ng mga bagay at lahat ng mga proseso 1202 01:04:09,620 --> 01:04:11,170 na aktwal na gawin itong posible. 1203 01:04:11,170 --> 01:04:15,990 Ngunit mapansin na ito ay mahalagang isang function kung saan ako pumasa ito ng ilang data. 1204 01:04:15,990 --> 01:04:18,410 At kumuha ako pabalik uri ng data. 1205 01:04:18,410 --> 01:04:24,190 At kailangan kong gamitin ito bilang keyword sa -convert ito sa nsdictionary ito? 1206 01:04:24,190 --> 01:04:26,490 Alin ang muli, isang opsyonal nsdictionary. 1207 01:04:26,490 --> 01:04:31,070 Aling Kailangan ko pagkatapos ay sa suriin upang makita kung ito ay umiiral na. 1208 01:04:31,070 --> 01:04:37,130 >> Kaya ang maaari kong gamitin na kung ipaalam matagumpay equals parse, 1209 01:04:37,130 --> 01:04:40,620 pagkatapos ay alam ko na iyon opsyonal talaga ay naglalaman ng ilang data. 1210 01:04:40,620 --> 01:04:43,840 O kung ano ang ginawa ko dito ay ipinapalagay lamang na kapag mayroong 1211 01:04:43,840 --> 01:04:49,067 ay walang mga error na ito ay sa katunayan safe. 1212 01:04:49,067 --> 01:04:51,400 Ang lahat ng mga karapatan, gusto kong pasalamatan mo ang lahat talaga para sa darating na. 1213 01:04:51,400 --> 01:04:53,540 Alam ko na ito ay marami, ngunit ito ay lamang ng isang oras 1214 01:04:53,540 --> 01:04:55,920 makipag-usap tungkol sa ilang Kahanga-advanced na mga bagay-bagay. 1215 01:04:55,920 --> 01:04:59,640 At kaya sana makakakuha ka ng pagkakataon upang i-download ang lahat ng mga code 1216 01:04:59,640 --> 01:05:01,657 at maglaan ng mas mahusay, higit pa masusing pagtingin sa ito. 1217 01:05:01,657 --> 01:05:04,240 Pagsunud-sunurin ng kumbinsihin ang iyong sarili ng lahat ng ng mga bagay-bagay na nangyayari sa. 1218 01:05:04,240 --> 01:05:06,800 At gusto ko upang pasalamatan ka lahat, muli, para sa darating na. 1219 01:05:06,800 --> 01:05:08,760 At good luck sa iyong huling proyekto. 1220 01:05:08,760 --> 01:05:10,600 Mayroon ba kayong dakilang araw. 1221 01:05:10,600 --> 01:05:11,467