1 00:00:00,000 --> 00:00:11,270 2 00:00:11,270 --> 00:00:14,340 >> DANIEL ARMENDARIZ: Hello, semua orang, selamat datang ke iOS pembangunan aplikasi 3 00:00:14,340 --> 00:00:15,020 dengan pantas. 4 00:00:15,020 --> 00:00:15,870 Saya Dan Armendariz. 5 00:00:15,870 --> 00:00:18,920 Saya precepter komputer sains di sini di Sekolah 6 00:00:18,920 --> 00:00:21,200 Kejuruteraan dan Sains Gunaan. 7 00:00:21,200 --> 00:00:24,310 Dan pantas sebenarnya jenis daripada bahasa benar-benar kemas. 8 00:00:24,310 --> 00:00:27,190 Dan saya mempunyai beberapa rancangan untuk hari ini. 9 00:00:27,190 --> 00:00:31,430 Jadi lebih jam berikutnya atau jadi kita akan untuk melihat pembangunan aplikasi iOS sendiri 10 00:00:31,430 --> 00:00:36,640 menggunakan Xcode dan benar-benar mewujudkan beberapa sangat asas, permohonan yang sangat mudah. 11 00:00:36,640 --> 00:00:40,070 Dan meninjau cara yang anda sebenarnya membawa aplikasi tersebut, 12 00:00:40,070 --> 00:00:42,887 dan membina mereka, dan benar-benar meletakkan mereka pada peranti iOS. 13 00:00:42,887 --> 00:00:44,970 Antara perkara-perkara yang kita tidak akan melihat 14 00:00:44,970 --> 00:00:47,540 akan termasuk perkara-perkara seperti sebenarnya mengambil permohonan 15 00:00:47,540 --> 00:00:48,940 dan meletakkannya di kedai app. 16 00:00:48,940 --> 00:00:52,930 Ada banyak tutorial dalam talian yang akan membantu anda dengan itu aspeknya. 17 00:00:52,930 --> 00:00:56,230 Tetapi juga kerana sebagai sebahagian daripada CS50, anda akan mendapat 18 00:00:56,230 --> 00:00:59,780 untuk menyertai pembangunan Apple pasukan, pasukan pembangunan aplikasi CS50 ini. 19 00:00:59,780 --> 00:01:02,790 Jika anda belum lagi dilakukan bahawa dan anda bergabung dengan CS50, 20 00:01:02,790 --> 00:01:04,810 Saya menyarankan anda berbuat demikian kerana yang 21 00:01:04,810 --> 00:01:08,820 adalah bagaimana anda dapat mewujudkan beberapa program di Xcode, 22 00:01:08,820 --> 00:01:11,890 membina mereka, dan benar-benar meletakkan mereka pada beberapa peranti iOS anda 23 00:01:11,890 --> 00:01:14,087 jika anda benar-benar mempunyai peranti iOS fizikal. 24 00:01:14,087 --> 00:01:16,670 Jika anda tidak mempunyai iOS fizikal alat yang lebih daripada denda. 25 00:01:16,670 --> 00:01:19,810 Anda sebenarnya boleh membangunkan untuk iOS. 26 00:01:19,810 --> 00:01:22,390 Dan Xcode mempunyai simulator yang membolehkan anda 27 00:01:22,390 --> 00:01:26,570 untuk melihat aplikasi anda dalam tindakan pada komputer anda. 28 00:01:26,570 --> 00:01:30,440 Tetapi ia jenis adalah satu perkara yang kemas untuk benar-benar bermain dan berinteraksi 29 00:01:30,440 --> 00:01:34,235 dengan permohonan anda pada peranti sebenar. 30 00:01:34,235 --> 00:01:37,360 Jadi ada beberapa keperluan untuk sebenarnya melakukan semua perkembangan ini. 31 00:01:37,360 --> 00:01:39,151 Salah seorang daripada mereka ialah anda perlu mempunyai Mac. 32 00:01:39,151 --> 00:01:44,770 Ia perlu berjalan 10.9.4 atau kemudian untuk melakukan pembangunan dengan pantas. 33 00:01:44,770 --> 00:01:47,770 >> Anda boleh menggunakan yang lebih awal versi untuk membangunkan 34 00:01:47,770 --> 00:01:50,810 dengan Objektif C untuk iOS dan Mac. 35 00:01:50,810 --> 00:01:53,990 Tetapi saya cadangkan, dan banyak yang contoh-contoh yang kita akan lihat pada hari ini, 36 00:01:53,990 --> 00:01:55,700 menggunakan 10.10 Yosemite. 37 00:01:55,700 --> 00:02:00,910 Oleh itu, jika anda belum dinaik taraf, ia adalah satu alasan yang baik untuk berbuat demikian. 38 00:02:00,910 --> 00:02:05,480 Sekarang Xcode 6.1 adalah versi terbaru persekitaran pembangunan bersepadu 39 00:02:05,480 --> 00:02:08,979 bahawa Apple menyediakan secara percuma yang anda boleh memuat turun dari kedai app. 40 00:02:08,979 --> 00:02:11,220 Dan saya mengesyorkan anda juga menjalankan versi terkini. 41 00:02:11,220 --> 00:02:14,700 >> Jika anda berlaku untuk berjalan lebih awal versi, Xcode 5 dan ke bawah sahaja 42 00:02:14,700 --> 00:02:16,741 hanya tidak menyokong pantas jua. 43 00:02:16,741 --> 00:02:19,490 Dan versi beta enam, yang telah dikeluarkan sepanjang musim panas, 44 00:02:19,490 --> 00:02:21,770 melakukan menyokong pantas, tetapi ada merupakan satu jumlah yang sangat besar 45 00:02:21,770 --> 00:02:25,220 perubahan bahasa, cukup supaya kod yang anda 46 00:02:25,220 --> 00:02:28,320 akan melihat dan bahawa anda mungkin mencari di internet 47 00:02:28,320 --> 00:02:33,294 tidak akan benar-benar menyusun dengan betul dalam versi terdahulu Xcode. 48 00:02:33,294 --> 00:02:35,460 Jadi sekali lagi, jika anda tidak lagi mempunyai akaun pemaju, 49 00:02:35,460 --> 00:02:38,560 Saya cadangkan anda pergi ke developer.apple.com. 50 00:02:38,560 --> 00:02:42,240 Daftarlah, membuat akaun pemaju, dan menyertai pasukan CS50 pembangunan aplikasi. 51 00:02:42,240 --> 00:02:45,530 Yang akan menyediakan kepada anda peluang untuk menyusun aplikasi anda 52 00:02:45,530 --> 00:02:47,840 dan meletakkan mereka pada peranti anda. 53 00:02:47,840 --> 00:02:49,222 OK, jadi mari kita bermula. 54 00:02:49,222 --> 00:02:50,930 Perkara pertama kita akan lakukan adalah 55 00:02:50,930 --> 00:02:55,140 untuk benar-benar membuat yang sangat projek mudah di Xcode 56 00:02:55,140 --> 00:02:59,530 yang akan membolehkan anda untuk membuat permohonan. 57 00:02:59,530 --> 00:03:03,170 >> Jadi, jika anda tidak lagi mempunyai Xcode terbuka, pergi ke depan dan membukanya 58 00:03:03,170 --> 00:03:04,270 dan mewujudkan satu projek baru. 59 00:03:04,270 --> 00:03:06,570 Skrin percikan khas akan dibuka dan akan memberikan anda 60 00:03:06,570 --> 00:03:08,800 beberapa pilihan mengenai apa yang sahaja yang anda mahu lakukan. 61 00:03:08,800 --> 00:03:12,170 Hanya mengatakan bahawa anda ingin membuat projek baru, permohonan baru. 62 00:03:12,170 --> 00:03:15,650 Tetingkap ini akan timbul, dengan andaian anda menggunakan Xcode 6.1. 63 00:03:15,650 --> 00:03:17,650 Pada masa ini, dan untuk tempoh seminar ini, 64 00:03:17,650 --> 00:03:19,990 kita akan menggunakan aplikasi paparan tunggal, hanya 65 00:03:19,990 --> 00:03:22,590 jenis aplikasi asas untuk mendapatkan kaki anda basah. 66 00:03:22,590 --> 00:03:25,200 Dan anda boleh cawangan keluar sendiri dari sana. 67 00:03:25,200 --> 00:03:27,660 >> Klik Seterusnya pada ketika ini. 68 00:03:27,660 --> 00:03:30,796 Sekarang di sini ada beberapa perkara yang yang anda mungkin mahu untuk masuk. 69 00:03:30,796 --> 00:03:32,670 Nama produk adalah menamakan projek anda. 70 00:03:32,670 --> 00:03:34,859 Dalam kes ini, saya hanya akan memanggilnya Seminar1 71 00:03:34,859 --> 00:03:36,150 kerana ia adalah contoh pertama kami. 72 00:03:36,150 --> 00:03:38,290 Nama organisasi, dalam kes ini adalah hanya nama saya. 73 00:03:38,290 --> 00:03:41,760 Anda boleh sudah tentu mengubahnya untuk nama anda sendiri, atau untuk CS50. 74 00:03:41,760 --> 00:03:46,160 Pertubuhan pengecam, jika anda berlaku untuk mempunyai laman web yang hanya mengambil 75 00:03:46,160 --> 00:03:49,940 nama domain dalam berbalik, com.yourname. 76 00:03:49,940 --> 00:03:54,200 dan kemudian nama produk akan muncul secara automatik 77 00:03:54,200 --> 00:03:55,820 selepas itu sebagai pengecam berkas. 78 00:03:55,820 --> 00:03:59,200 >> Jelas sekali bahasa yang kami akan menggunakan untuk hari ini adalah pantas. 79 00:03:59,200 --> 00:04:02,590 Anda boleh, sudah tentu, menggunakan Objektif C untuk itu, tetapi hari ini akan menjadi pantas. 80 00:04:02,590 --> 00:04:04,920 Dan kami akan untuk dapat berkata peranti universal, jadi 81 00:04:04,920 --> 00:04:06,900 bahawa ia berfungsi pada kedua-dua iPad dan iPhone. 82 00:04:06,900 --> 00:04:10,040 Dan kita akan meninggalkan teras data tidak terkawal untuk menjaga 83 00:04:10,040 --> 00:04:12,830 projek yang agak mudah buat masa ini. 84 00:04:12,830 --> 00:04:14,430 Jadi mari kita pergi ke depan dan klik Seterusnya. 85 00:04:14,430 --> 00:04:16,471 Dan ia akan bertanya kepada saya di mana saya mahu menyimpannya. 86 00:04:16,471 --> 00:04:19,250 Saya akan menyimpannya untuk desktop saya buat masa ini. 87 00:04:19,250 --> 00:04:22,267 >> Baiklah, jadi sekarang ini adalah apa yang akan berlaku apabila anda Xcode sebenarnya terbuka. 88 00:04:22,267 --> 00:04:24,100 Dan perhatikan bahawa Perkara pertama yang anda lihat 89 00:04:24,100 --> 00:04:28,770 adalah tanda seru ini yang berkata tidak ada identiti menandatangani dijumpai. 90 00:04:28,770 --> 00:04:31,520 Saya sengaja berbuat demikian pada komputer saya dan saya 91 00:04:31,520 --> 00:04:34,220 berharap bahawa saya akan dapat benar-benar menetapkan ia, 92 00:04:34,220 --> 00:04:37,860 kerana saya mahu anda untuk melihat bagaimana ini sebenarnya akan bekerja pada mesin anda sendiri. 93 00:04:37,860 --> 00:04:40,400 >> Teruskan dan klik isu tetap. 94 00:04:40,400 --> 00:04:45,400 Ia akan meminta anda jika anda mempunyai akaun pemaju epal yang sedia ada. 95 00:04:45,400 --> 00:04:48,330 Ini adalah di mana menyertai CS50 pasukan pembangunan aplikasi 96 00:04:48,330 --> 00:04:51,240 adalah penting supaya anda tidak hanya mempunyai akaun aplikasi, 97 00:04:51,240 --> 00:04:53,690 tetapi anda juga mempunyai keupayaan untuk menandatangani aplikasi 98 00:04:53,690 --> 00:04:56,420 dan meletakkan mereka pada peranti iOS anda. 99 00:04:56,420 --> 00:04:58,957 Ini adalah klik elok isu menetapkan tidak perlu 100 00:04:58,957 --> 00:05:01,040 jika anda hanya akan membina dan membangunkan negara, 101 00:05:01,040 --> 00:05:03,520 sepenuhnya dalam simulator iOS. 102 00:05:03,520 --> 00:05:05,820 >> Tetapi buat masa ini saya akan untuk membangun dan meletakkan mereka 103 00:05:05,820 --> 00:05:08,160 pada iPad saya, yang akan menjadi dapat disiarkan juga. 104 00:05:08,160 --> 00:05:10,770 Jadi saya mahu untuk benar-benar menambah ini. 105 00:05:10,770 --> 00:05:13,670 Dan ia akan bertanya saya untuk ID epal saya. 106 00:05:13,670 --> 00:05:15,700 Jadi ia akan menjadi ini. 107 00:05:15,700 --> 00:05:18,940 Dan saya perlu memanggil saya kata laluan, yang berakhir di sini. 108 00:05:18,940 --> 00:05:27,760 Jadi saya hanya memberikan satu kedua untuk mendapati bahawa, dan menyalin itu, dan tampal di sini. 109 00:05:27,760 --> 00:05:28,580 >> Klik Tambah. 110 00:05:28,580 --> 00:05:31,095 Ia akan bertanya kepada saya pasukan mana yang saya mahu untuk menyertai. 111 00:05:31,095 --> 00:05:33,240 Saya akan lakukan sekolah kejuruteraan. 112 00:05:33,240 --> 00:05:35,680 Klik Sertai. 113 00:05:35,680 --> 00:05:37,780 Alamak, itu satu yang salah. 114 00:05:37,780 --> 00:05:40,730 Mari kita buat satu ini. 115 00:05:40,730 --> 00:05:42,060 Mudah-mudahan satu yang akan bekerja. 116 00:05:42,060 --> 00:05:44,220 Salah satu yang masih tidak berfungsi. 117 00:05:44,220 --> 00:05:46,610 Kami kehabisan yang baik di sini. 118 00:05:46,610 --> 00:05:48,260 OK, ini harus bekerja. 119 00:05:48,260 --> 00:05:50,816 Sekarang yang menutup. 120 00:05:50,816 --> 00:05:54,450 Sekarang mari kita buat sekolah kejuruteraan, klik pilih. 121 00:05:54,450 --> 00:06:00,190 >> Dan kini diharapkan selepas beberapa saat anda can-- OK, 122 00:06:00,190 --> 00:06:02,550 Saya akan membatalkan dan permintaan. 123 00:06:02,550 --> 00:06:05,410 Oh lelaki, ini akan tidak berfungsi. 124 00:06:05,410 --> 00:06:08,890 OK, saya akan cuba yang lain. 125 00:06:08,890 --> 00:06:11,167 Mari kita buat satu ini di sini. 126 00:06:11,167 --> 00:06:17,020 127 00:06:17,020 --> 00:06:19,310 Demo Live gagal saya. 128 00:06:19,310 --> 00:06:22,540 Kami mungkin perlu kembali kepada hanya membina sepenuhnya di dalam negara, 129 00:06:22,540 --> 00:06:25,050 tetapi adakah itu ok dalam kes ini. 130 00:06:25,050 --> 00:06:28,560 >> Jadi di sini, selama ini sebenarnya kerja, apa yang kita akan lakukan adalah hanya 131 00:06:28,560 --> 00:06:31,190 membuat sangat mudah Hello permohonan Dunia. 132 00:06:31,190 --> 00:06:32,340 Jadi ini adalah Xcode. 133 00:06:32,340 --> 00:06:37,300 Dan jika anda tidak pernah melihat lagi, ia boleh sedikit menakutkan pada mulanya. 134 00:06:37,300 --> 00:06:41,430 Ada banyak anak tetingkap, ada banyak doodads dalam pelbagai bidang. 135 00:06:41,430 --> 00:06:44,300 Tetapi menyedari bahawa ada benar-benar beberapa komponen utama 136 00:06:44,300 --> 00:06:46,580 kepada persekitaran pembangunan ini. 137 00:06:46,580 --> 00:06:51,090 Di sebelah kiri ini adalah semua fail-fail yang berkaitan dengan program anda 138 00:06:51,090 --> 00:06:52,997 atau projek tertentu anda. 139 00:06:52,997 --> 00:06:55,080 Kami akan mengklik sekitar atas sebahagian daripada mereka dan kami akan 140 00:06:55,080 --> 00:06:57,660 menunjukkan yang paling yang penting dari masa ke masa. 141 00:06:57,660 --> 00:06:59,650 Jauh ke kanan, kita mempunyai satu set ciri-ciri. 142 00:06:59,650 --> 00:07:02,920 Dan semua sifat-sifat ini, terdapat pelbagai anak tetingkap untuk sifat-sifat. 143 00:07:02,920 --> 00:07:06,770 Anak tetingkap akan berubah bergantung kepada konteks kandungan utama, yang 144 00:07:06,770 --> 00:07:08,290 kebetulan di tengah-tengah. 145 00:07:08,290 --> 00:07:11,740 Sekarang tengah sebenarnya boleh menunjukkan anda pelbagai perkara, contohnya 146 00:07:11,740 --> 00:07:13,290 kod anda sendiri. 147 00:07:13,290 --> 00:07:17,070 Atau anda sebenarnya mungkin have-- apabila anda klik pada papan cerita yang 148 00:07:17,070 --> 00:07:21,270 adalah, dengan cara itu, hanya kerja yang perwakilan pengguna anda 149 00:07:21,270 --> 00:07:25,350 antara muka untuk application-- anda maka sifat-sifat anak tetingkap 150 00:07:25,350 --> 00:07:27,334 di sangat paling kanan sebenarnya akan berubah. 151 00:07:27,334 --> 00:07:29,750 Sekarang ada beberapa lain perkara yang saya mahu menuding. 152 00:07:29,750 --> 00:07:33,360 Anda boleh semacam meneroka sekitar dalam persekitaran pada anda sendiri. 153 00:07:33,360 --> 00:07:35,730 Tetapi salah satu perkara yang yang amat berguna 154 00:07:35,730 --> 00:07:38,470 adalah butang ini di sini, kanan atas tetingkap. 155 00:07:38,470 --> 00:07:41,230 Ada butang ini bahawa kelihatan seperti di hujung 156 00:07:41,230 --> 00:07:46,090 meninggalkan ia mempunyai perenggan yang diikuti oleh dua bulatan dan jenis 157 00:07:46,090 --> 00:07:49,540 dua anak panah menunjuk dari satu sama lain. 158 00:07:49,540 --> 00:07:52,640 Jika anda menukar antara editor standard, yang 159 00:07:52,640 --> 00:07:55,560 adalah salah satu yang paling kiri, yang yang yang dipilih secara lalai, 160 00:07:55,560 --> 00:08:01,040 dan kedua-dua bulatan yang bertindih antara satu sama lain, apa yang anda benar-benar mendapatkan 161 00:08:01,040 --> 00:08:02,210 adalah pane dua. 162 00:08:02,210 --> 00:08:04,240 >> Dan ini sebenarnya akan menjadi berguna untuk kita 163 00:08:04,240 --> 00:08:07,330 apabila kita perlu mengaitkan perkara dalam UI untuk kod. 164 00:08:07,330 --> 00:08:09,330 Dan kita akan bercakap lebih lanjut mengenai bahawa dalam seketika. 165 00:08:09,330 --> 00:08:12,050 Tetapi menyedari bahawa jika anda mendapatkan lebih anak tetingkap seperti ini, 166 00:08:12,050 --> 00:08:15,830 anda boleh memudahkan pandangan anda hanya sedikit dengan mengklik kembali 167 00:08:15,830 --> 00:08:20,680 pada editor tunggal anda. 168 00:08:20,680 --> 00:08:21,580 Setakat ini begitu baik. 169 00:08:21,580 --> 00:08:24,560 Jadi, pada asasnya kita mempunyai kod pada kiri, sifat di sebelah kanan, 170 00:08:24,560 --> 00:08:28,260 dan apa sahaja yang kami bekerja di sini di tengah-tengah. 171 00:08:28,260 --> 00:08:30,390 >> Jadi di sini saya telah diklik pada papan cerita utama. 172 00:08:30,390 --> 00:08:33,350 Dan papan cerita, sekali lagi, adalah satu cara di Xcode 173 00:08:33,350 --> 00:08:38,110 bahawa anda benar-benar boleh membuat pengguna anda antara muka menggunakan hanya seret dan lepas 174 00:08:38,110 --> 00:08:39,130 teknik. 175 00:08:39,130 --> 00:08:41,190 Dan sebagainya untuk sangat kami Permohonan pertama ini 176 00:08:41,190 --> 00:08:42,720 adalah tepat apa yang kita akan lakukan. 177 00:08:42,720 --> 00:08:45,950 Kami akan turun ke bahagian kanan sangat jauh lebih rendah 178 00:08:45,950 --> 00:08:49,900 skrin, yang mengandungi pelbagai elemen pengguna 179 00:08:49,900 --> 00:08:53,270 bahawa anda boleh klik dan seret untuk mewujudkan antara muka pengguna anda. 180 00:08:53,270 --> 00:08:55,550 >> Sekarang semua ini elemen dipanggil pandangan 181 00:08:55,550 --> 00:08:57,370 kerana mereka membekalkan beberapa jenis pandangan. 182 00:08:57,370 --> 00:09:00,190 Ada satu imej paparan, untuk Sebagai contoh, untuk benar-benar menunjukkan 183 00:09:00,190 --> 00:09:01,740 imej pada antara muka pengguna. 184 00:09:01,740 --> 00:09:04,310 Ada paparan jadual untuk sebenarnya menunjukkan meja. 185 00:09:04,310 --> 00:09:05,190 Sebagainya dan sebagainya. 186 00:09:05,190 --> 00:09:08,250 Ada pelbagai jenis pandangan yang boleh anda pilih di sini. 187 00:09:08,250 --> 00:09:11,100 Jadi, buat masa ini kita akan untuk mencari label. 188 00:09:11,100 --> 00:09:13,550 Anda hanya boleh menatal melalui semua senarai yang ada di sana. 189 00:09:13,550 --> 00:09:15,460 Tetapi ada carian bar di bahagian paling bawah 190 00:09:15,460 --> 00:09:19,460 yang menjadikan ia lebih mudah untuk mengenal pasti pandangan tertentu yang anda sebenarnya 191 00:09:19,460 --> 00:09:22,020 mahu seret ke dalam antara muka pengguna anda. 192 00:09:22,020 --> 00:09:23,560 >> Found label saya. 193 00:09:23,560 --> 00:09:28,430 Saya akan tarik di sini, secara langsung ke permohonan sampel saya. 194 00:09:28,430 --> 00:09:30,130 Di sana di tengah-tengah kelihatan baik. 195 00:09:30,130 --> 00:09:33,180 Dan saya akan menaip "Hello World!" 196 00:09:33,180 --> 00:09:33,810 Tekan Enter. 197 00:09:33,810 --> 00:09:34,877 Sekarang saya mempunyai label. 198 00:09:34,877 --> 00:09:36,960 Ia tidak kelihatan seperti itu berpusat agak betul. 199 00:09:36,960 --> 00:09:38,500 Jadi saya boleh cuba untuk mengetengahkan ia. 200 00:09:38,500 --> 00:09:42,100 Nasib baik ia menawarkan ini panduan untuk membuat perkara yang lebih mudah. 201 00:09:42,100 --> 00:09:44,130 Saya akan cuba untuk menyusun ia. 202 00:09:44,130 --> 00:09:46,570 Mudah-mudahan ia sebenarnya akan bekerja di sini. 203 00:09:46,570 --> 00:09:52,870 Dan jika tidak, dalam hanya seketika ia akan sebenarnya muncul pada iPad saya. 204 00:09:52,870 --> 00:09:54,360 Ia adalah di sini. 205 00:09:54,360 --> 00:09:55,060 Terdapat ia. 206 00:09:55,060 --> 00:09:56,590 >> OK, jadi itu sahaja. 207 00:09:56,590 --> 00:09:57,160 Kami selesai. 208 00:09:57,160 --> 00:09:58,868 Kami telah membuat sangat kami permohonan pertama. 209 00:09:58,868 --> 00:10:01,330 Sekarang jelas ini tidak berbuat apa-apa. 210 00:10:01,330 --> 00:10:02,280 Ia hanya label. 211 00:10:02,280 --> 00:10:07,350 Tidak ada hubungan antara antara muka pengguna dan kod. 212 00:10:07,350 --> 00:10:10,130 Jadi, jika kita benar-benar mahu untuk membuat sambungan ini, 213 00:10:10,130 --> 00:10:14,790 jika kita benar-benar mahu mempunyai beberapa jenis komunikasi antara unsur-unsur 214 00:10:14,790 --> 00:10:17,540 yang wujud pada skrin dan kod yang 215 00:10:17,540 --> 00:10:19,810 membolehkan kita untuk mengawal unsur-unsur, maka 216 00:10:19,810 --> 00:10:23,570 kita sebenarnya perlu melihat kod itu sendiri. 217 00:10:23,570 --> 00:10:27,000 >> Jadi ini adalah apa yang dipanggil ViewController.swift. 218 00:10:27,000 --> 00:10:30,080 Dan untuk, terutama untuk beberapa program pertama anda, 219 00:10:30,080 --> 00:10:33,120 ini akan menjadi jenis yang Sebahagian besar kod yang anda enter-- 220 00:10:33,120 --> 00:10:35,980 akan menjadi dalam dokumen ini di sini. 221 00:10:35,980 --> 00:10:38,390 Ada banyak perkara yang ada di sini setakat ini, bukan? 222 00:10:38,390 --> 00:10:42,660 Ada import UI kit kelas, mengatasi, [? funk,?] semua ini pelbagai. 223 00:10:42,660 --> 00:10:45,820 Dan ia tidak jelas apa yang ia adalah bahawa semua ini bermakna. 224 00:10:45,820 --> 00:10:48,570 Jadi mari kita mengambil langkah ke belakang lagi dari Xcode untuk sedikit 225 00:10:48,570 --> 00:10:52,420 dan melihat bahasa itu sendiri, pantas. 226 00:10:52,420 --> 00:10:56,370 >> Jadi dengan pantas, ia adalah dalam reka bentuk dan pembangunan 227 00:10:56,370 --> 00:10:58,645 di Apple selama lebih kurang empat tahun untuk pemahaman saya. 228 00:10:58,645 --> 00:11:01,270 Dan ada beberapa ciri-ciri mengenainya yang benar-benar kemas. 229 00:11:01,270 --> 00:11:03,910 Pertama sekali, ia disusun bahasa, hanya suka C. 230 00:11:03,910 --> 00:11:06,120 Jadi, anda perlu pertama menyusun dan kemudian menjalankannya 231 00:11:06,120 --> 00:11:09,580 sebelum anda boleh sebenarnya melaksanakan kod yang terhasil. 232 00:11:09,580 --> 00:11:14,250 Tetapi ada, tidak seperti C, interaktif meminta bahawa anda benar-benar boleh menjalankan 233 00:11:14,250 --> 00:11:16,680 dan taip arahan sewenang-wenangnya ke dalam. 234 00:11:16,680 --> 00:11:20,280 Dan sangat banyak seperti konsol JavaScript, yang anda mungkin biasa dengan sekarang, 235 00:11:20,280 --> 00:11:24,506 ia sebenarnya akan menilai mereka arahan dan menyediakan untuk anda output. 236 00:11:24,506 --> 00:11:26,380 Dan mereka telah pun diambil yang ke peringkat seterusnya 237 00:11:26,380 --> 00:11:29,100 dan mereka telah membuat sesuatu dipanggil taman permainan di Xcode 238 00:11:29,100 --> 00:11:31,720 yang membolehkan anda untuk visual bekerja dengan kod. 239 00:11:31,720 --> 00:11:34,910 Dan kita sebenarnya akan melihat beberapa contoh itu hanya sedikit. 240 00:11:34,910 --> 00:11:41,680 Ia berdasarkan kepada C. C mendasari itu, kerana semua penyusun 241 00:11:41,680 --> 00:11:46,820 mewujudkan kod daripada C dan mewujudkan kod objek daripadanya. 242 00:11:46,820 --> 00:11:49,240 Tetapi ia benar-benar saham agak sedikit sintaks. 243 00:11:49,240 --> 00:11:50,721 Ia akan kelihatan agak berbeza. 244 00:11:50,721 --> 00:11:51,970 Akan ada beberapa persamaan. 245 00:11:51,970 --> 00:11:54,140 Tetapi ada akan menjadi cukup beberapa perbezaan 246 00:11:54,140 --> 00:11:57,200 berbanding, katakan, JavaScript atau PHP. 247 00:11:57,200 --> 00:11:59,070 Dan kami akan menunjukkan ini dalam hanya seketika. 248 00:11:59,070 --> 00:12:01,420 >> Sekarang salah satu perkara yang paling besar kira-kira pantas yang bagus 249 00:12:01,420 --> 00:12:05,650 ialah, terutamanya berbanding kepada C, ia bertujuan untuk menjadi selamat. 250 00:12:05,650 --> 00:12:08,100 Segala-galanya dalam ia bertujuan untuk akan sangat kuat ditaip. 251 00:12:08,100 --> 00:12:10,780 Malah ia hampir menjengkelkan pada mulanya, apabila anda pertama 252 00:12:10,780 --> 00:12:15,610 mula bekerja dengan pantas, betapa banyak ia menguatkuasakan jenis mana-mana. 253 00:12:15,610 --> 00:12:17,860 Apa-apa yang adalah rentetan mempunyai kekal rentetan. 254 00:12:17,860 --> 00:12:22,100 Ia amat sukar untuk menyusun daripada mualaf atau memaksa ia ke dalam bentuk lain. 255 00:12:22,100 --> 00:12:23,800 >> Dan sekali lagi, kami akan menunjukkan contoh-contoh ini. 256 00:12:23,800 --> 00:12:26,830 Tetapi akhirnya menyedari bahawa ini adalah bertujuan untuk melindungi anda, 257 00:12:26,830 --> 00:12:32,010 dan oleh yang saya maksudkan anda kod anda, dari terhempas dalam beberapa cara dahsyat apabila 258 00:12:32,010 --> 00:12:34,330 anda mempunyai beberapa jenis jenis berpadanan. 259 00:12:34,330 --> 00:12:36,040 Dan sekali lagi, bekerja dengannya. 260 00:12:36,040 --> 00:12:40,210 Kerana ia akan mengecewakan pada mulanya seperti yang anda cuba untuk memahami mengapa tepat 261 00:12:40,210 --> 00:12:43,070 anda mendapat ini luar biasa kesilapan berurusan dengan jenis. 262 00:12:43,070 --> 00:12:45,350 Tetapi ia akan menjadi berbaloi akhirnya. 263 00:12:45,350 --> 00:12:47,267 >> Ia menangani automatik pengurusan memori, 264 00:12:47,267 --> 00:12:49,100 sehingga tidak ada lagi yang anda perlu berurusan dengan perkara-perkara 265 00:12:49,100 --> 00:12:51,400 seperti malloc dan bebas dan semua ini macam perkara. 266 00:12:51,400 --> 00:12:53,066 Dan ia juga direka untuk Secara Umum. 267 00:12:53,066 --> 00:12:58,360 Oleh itu, sambil kita boleh menggunakan Xcode untuk mewujudkan IOS aplikasi dan aplikasi Mac, 268 00:12:58,360 --> 00:13:00,380 kita juga boleh hanya menggunakannya sebagai bahasa skrip. 269 00:13:00,380 --> 00:13:03,660 Dan supaya kita boleh menggunakannya semacam daripada bukan PHP atau sebaliknya 270 00:13:03,660 --> 00:13:07,800 daripada Python untuk benar-benar cepat dan menghuraikan proses 271 00:13:07,800 --> 00:13:09,800 beberapa data yang kita ada pada komputer kami. 272 00:13:09,800 --> 00:13:13,290 >> Ia mempunyai pelbagai jenis moden ciri-ciri, optionals, hal berubah-ubah, 273 00:13:13,290 --> 00:13:17,900 generik, penutupan, dan banyak ini bahan yang anda mungkin atau mungkin tidak menyedari. 274 00:13:17,900 --> 00:13:22,810 Dan ia hanya jenis yang kurang baik sebahagian daripada bahasa yang sesetengah 275 00:13:22,810 --> 00:13:26,700 semacam futuristik, unsur-unsur moden yang terkandung dalam elemen ini 276 00:13:26,700 --> 00:13:34,520 jadi yang tertanam dalam kehidupan yang saya benar-benar akan perlu mengajar anda CS50.5 sedikit. 277 00:13:34,520 --> 00:13:37,305 >> Kami perlu belajar sedikit lebih mengenai beberapa ciri-ciri bagi 278 00:13:37,305 --> 00:13:40,180 untuk benar-benar memahami apa yang berlaku pada dan supaya anda boleh melihat kod 279 00:13:40,180 --> 00:13:42,450 dan tidak merasa benar-benar hilang. 280 00:13:42,450 --> 00:13:44,820 Dan anda akan melihat apa yang saya maksudkan oleh yang hanya dalam satu minit. 281 00:13:44,820 --> 00:13:47,830 OK, jadi let's-- cukup ini jenis barangan teori. 282 00:13:47,830 --> 00:13:52,450 Mari kita sebenarnya melihat kami program pantas yang pertama. 283 00:13:52,450 --> 00:13:53,590 Ia satu baris kod. 284 00:13:53,590 --> 00:13:57,690 Line 14 di sini, ia kata cetak l n hello CS50. 285 00:13:57,690 --> 00:14:01,160 >> Jadi ada beberapa perkara itu yang berbeza terhadap topik ini berbanding 286 00:14:01,160 --> 00:14:04,140 kepada perkara-perkara yang anda mungkin digunakan untuk dari C, sebagai contoh. 287 00:14:04,140 --> 00:14:08,390 Salah seorang daripada mereka adalah bahawa tidak ada intmain, tidak ada termasuk seksyen, 288 00:14:08,390 --> 00:14:10,790 ada tiada bahan tambahan ini. 289 00:14:10,790 --> 00:14:13,790 Termasuk, seperti standard I / O, seperti perpustakaan 290 00:14:13,790 --> 00:14:16,580 yang benar-benar memberi ciri-ciri standard bahasa, 291 00:14:16,580 --> 00:14:19,180 secara automatik dimasukkan sebagai sebahagian daripada perpustakaan standard pantas ini 292 00:14:19,180 --> 00:14:20,680 dan yang diimport secara automatik. 293 00:14:20,680 --> 00:14:23,740 Anda tidak perlu melakukan import yang secara manual. 294 00:14:23,740 --> 00:14:27,360 >> Intmain tidak wujud kerana pintu masuk utama untuk kod 295 00:14:27,360 --> 00:14:29,470 sebenarnya di bermula dari kod. 296 00:14:29,470 --> 00:14:32,000 Jadi apa-apa kod yang anda mempunyai bermula dari awal 297 00:14:32,000 --> 00:14:34,940 sebenarnya akan dilaksanakan pada permulaan. 298 00:14:34,940 --> 00:14:36,520 Jadi ini amat memudahkan. 299 00:14:36,520 --> 00:14:38,470 Perhatikan juga, bahawa tidak ada koma bertitik. 300 00:14:38,470 --> 00:14:41,040 Tidak ada koma bertitik dalam bahasa ini. 301 00:14:41,040 --> 00:14:43,261 Anda meletakkan kenyataan di barisan individu 302 00:14:43,261 --> 00:14:45,510 dan kemudian baris seterusnya mewakili kenyataan yang lain. 303 00:14:45,510 --> 00:14:47,420 Jika anda ingin meletakkan penyata mulitiple talian, 304 00:14:47,420 --> 00:14:49,086 maka anda perlu memisahkan ia oleh koma bertitik. 305 00:14:49,086 --> 00:14:50,940 Tetapi bagi sebahagian besar, untuk gaya yang baik, kami 306 00:14:50,940 --> 00:14:56,530 tidak pernah akan melihat koma bertitik untuk tujuan penyata memisahkan 307 00:14:56,530 --> 00:14:58,420 dalam pantas. 308 00:14:58,420 --> 00:14:59,820 Jadi bagaimana ini sebenarnya berfungsi? 309 00:14:59,820 --> 00:15:04,080 Baik sangat seperti C kita sebenarnya perlu menyusun ini. 310 00:15:04,080 --> 00:15:10,640 Dan supaya kita boleh berbuat demikian dengan menggunakan c pantas dan kemudian 1.swift. 311 00:15:10,640 --> 00:15:13,850 Dan kemudian selepas pasangan minit ini akan menyusun 312 00:15:13,850 --> 00:15:16,340 dan kemudian saya boleh menjalankan satu item. 313 00:15:16,340 --> 00:15:19,691 Dan daripada ia hanya akan berkata "Hello CS50." 314 00:15:19,691 --> 00:15:20,690 Awesome, jadi kita pergi. 315 00:15:20,690 --> 00:15:22,273 Ada program dunia hello pertama kami. 316 00:15:22,273 --> 00:15:24,790 Mari kita beralih ke nombor dua. 317 00:15:24,790 --> 00:15:30,450 >> Sekarang dalam this-- ini telah berubah sedikit, kerana sedangkan biasanya anda 318 00:15:30,450 --> 00:15:34,720 do-- sebenarnya sentiasa yang anda perlu menyusun aplikasi pantas sebelum anda 319 00:15:34,720 --> 00:15:37,180 sebenarnya menjalankan satu it-- ciri-ciri yang hebat 320 00:15:37,180 --> 00:15:40,230 yang telah saya katakan sebelum ini bahawa pantas sebenarnya boleh digunakan dalam jenis 321 00:15:40,230 --> 00:15:43,390 daripada mod pseudo-tafsiran, terdapat sebenarnya seperti jurubahasa. 322 00:15:43,390 --> 00:15:46,690 Tetapi apa yang akan dilakukan adalah terdapat adalah, sebenarnya, aplikasi pantas 323 00:15:46,690 --> 00:15:47,520 bahawa anda boleh menjalankan. 324 00:15:47,520 --> 00:15:51,050 >> Sebagai contoh, jika anda hanya menaip pantas di sini, apa yang akan berlaku 325 00:15:51,050 --> 00:15:52,330 adalah bahawa anda akan mendapat satu segera. 326 00:15:52,330 --> 00:15:59,040 Dan anda boleh menaip pantas anda kod, mencetak hello, dan menjalankannya. 327 00:15:59,040 --> 00:16:01,867 Dan ia benar-benar akan print-- dengan baik, ia tidak mencetak dalam kes ini 328 00:16:01,867 --> 00:16:04,450 kerana ia dicetak untuk berpusat keluar, yang tidak dapat dilihat di sini. 329 00:16:04,450 --> 00:16:06,660 Tetapi ia adalah benar-benar dapat berfungsi. 330 00:16:06,660 --> 00:16:09,580 Dan sebagainya dalam kes ini, saya hanya akan menggunakan ini sebagai skrip. 331 00:16:09,580 --> 00:16:11,259 Dan saya benar-benar boleh menjalankan kod ini di sana. 332 00:16:11,259 --> 00:16:13,800 Jadi cara yang saya benar-benar menjalankan ia akan menjadi sedikit berbeza, 333 00:16:13,800 --> 00:16:15,710 tetapi anda akan melihat bahawa dalam seketika. 334 00:16:15,710 --> 00:16:18,890 Sekarang, dalam kes ini apa yang kita akan lakukan adalah untuk pertama menentukan pembolehubah. 335 00:16:18,890 --> 00:16:22,160 Jadi ini adalah bagaimana kita menentukan pembolehubah dalam pantas, 336 00:16:22,160 --> 00:16:25,900 adalah kita menggunakan kata kunci yang disewakan, diikuti dengan nama pembolehubah, 337 00:16:25,900 --> 00:16:29,280 dan kemudian kami menyediakan beberapa Memulakan data secara pilihan. 338 00:16:29,280 --> 00:16:34,660 Jadi kes ini kami mendefinisikan tetap yang dipanggil nama, 339 00:16:34,660 --> 00:16:37,775 dan kita akan menggunakan bahawa dalam output talian kami cetak 340 00:16:37,775 --> 00:16:39,590 di bahagian bawah sangat, hello nama. 341 00:16:39,590 --> 00:16:43,260 >> Sekarang perhatikan bahawa daripada menggunakan% s, kita boleh mengambilkira nama ini 342 00:16:43,260 --> 00:16:49,960 pembolehubah dalam / () dan dapat menyatukan dalam kandungan ini 343 00:16:49,960 --> 00:16:51,790 tali ke dalam rentetan ini. 344 00:16:51,790 --> 00:16:56,510 Sekarang tidak seperti C, rentetan adalah Jenis sebenar sebenar dalam pantas. 345 00:16:56,510 --> 00:16:59,240 Dan supaya ia duduk bersama ints dan bersama 346 00:16:59,240 --> 00:17:02,220 beregu dengan mudah dan secara semula jadi berbanding 347 00:17:02,220 --> 00:17:05,450 kepada sebahagian daripada yang lain bahasa yang kita lihat. 348 00:17:05,450 --> 00:17:07,980 Jadi ini akan benar-benar berfungsi seperti yang anda inginkan. 349 00:17:07,980 --> 00:17:10,540 >> Saya dapat berjalan 2.swift. 350 00:17:10,540 --> 00:17:14,390 Dan kita melihat bahawa nama saya sebenarnya disambungkan dalam, "Hello Dan." 351 00:17:14,390 --> 00:17:16,050 OK, hebat. 352 00:17:16,050 --> 00:17:17,485 Beralih kepada nombor tiga. 353 00:17:17,485 --> 00:17:19,359 Kini ia adalah sedikit daripada dusta putih yang saya 354 00:17:19,359 --> 00:17:23,369 berkata bahawa cara kita mengisytiharkan pembolehubah adalah untuk menggunakan kata kunci yang disewakan. 355 00:17:23,369 --> 00:17:27,640 Seberapa banyak kali yang anda mungkin boleh anda lakukan mahu menggunakan biarkan, kerana apa yang tidak 356 00:17:27,640 --> 00:17:29,280 adalah ia mentakrifkan pemalar. 357 00:17:29,280 --> 00:17:33,010 Dan yang memberitahu pantas bahawa ia boleh mengoptimumkan kelajuan permohonan anda 358 00:17:33,010 --> 00:17:36,230 kerana ia tahu bahawa yang pembolehubah tidak akan berubah. 359 00:17:36,230 --> 00:17:38,760 >> Jadi berhati-hati menilai apabila anda akan menggunakan 360 00:17:38,760 --> 00:17:41,382 pembolehubah bagi maksud mengubahnya. 361 00:17:41,382 --> 00:17:43,340 Dan apabila anda pergi ke mencipta pembolehubah yang adil 362 00:17:43,340 --> 00:17:47,010 memegang beberapa data dan yang sebenarnya tidak akan berubah. 363 00:17:47,010 --> 00:17:50,150 Jadi konsep ketetapan, ia tidak benar-benar akan berubah, 364 00:17:50,150 --> 00:17:53,740 adalah satu yang penting-penting sebagai jauh ke bawah sebagai mentakrifkan pembolehubah. 365 00:17:53,740 --> 00:17:56,870 Jadi di sini kita telah ditakrifkan nama, biarkan nama, dan dalam hal ini 366 00:17:56,870 --> 00:18:02,120 ia yang tetap, iaitu jenis tali, dan ia adalah sama dengan Dan. 367 00:18:02,120 --> 00:18:05,580 >> Jadi manakala dalam terlebih dahulu versi, ia infers-- dan oleh "ia" 368 00:18:05,580 --> 00:18:08,220 Maksud saya pantas swift-- Kesimpulannya di sini, jenis data 369 00:18:08,220 --> 00:18:10,850 bahawa kita telah dimasukkan ke dalam pembolehubah. 370 00:18:10,850 --> 00:18:12,930 Dalam kes ini, kita boleh menjadi jelas. 371 00:18:12,930 --> 00:18:17,590 Oleh itu, marilah kemudian nama ini pembolehubah adalah nama, maka noktah bertindih. 372 00:18:17,590 --> 00:18:21,350 Dan selepas koma kita menentukan jenis data. 373 00:18:21,350 --> 00:18:24,694 Maka tidak lagi ia adalah nama int atau Nama tali atau sesuatu seperti itu. 374 00:18:24,694 --> 00:18:26,860 Tetapi sebaliknya membiarkan label, kami menentukan sama ada atau tidak 375 00:18:26,860 --> 00:18:29,090 itu tetap atau berubah-ubah, diikuti dengan nama, 376 00:18:29,090 --> 00:18:31,870 diikuti dengan pilihan jenis. 377 00:18:31,870 --> 00:18:34,730 >> Jadi dalam kes ini kami mendefinisikan Nama ini adalah rentetan. 378 00:18:34,730 --> 00:18:35,790 Kami katakan adalah Dan. 379 00:18:35,790 --> 00:18:39,270 Dan sekarang saya mempunyai pembolehubah yang lain, dalam kes ini ia dipanggil label. 380 00:18:39,270 --> 00:18:42,090 Tetapi perhatikan bahawa bermula dengan kata kunci yang var. 381 00:18:42,090 --> 00:18:44,430 Cara var kata kunci yang berubah-ubah ini boleh 382 00:18:44,430 --> 00:18:48,720 ditukar pada titik kemudian dalam masa, tempat turun dalam kod 383 00:18:48,720 --> 00:18:52,480 boleh kita sebenarnya mengubahnya dan ia tidak akan memberikan apa-apa kesilapan tertentu. 384 00:18:52,480 --> 00:18:56,760 >> Kita boleh melakukan concatenating standard operator di sini menggunakan simbol campur 385 00:18:56,760 --> 00:19:00,130 untuk benar-benar menambah kami menamakan ke dalam rentetan ini. 386 00:19:00,130 --> 00:19:02,921 Dan kemudian kita boleh mencetak seperti yang kita lihat hanya sebentar tadi. 387 00:19:02,921 --> 00:19:04,920 Sekarang mari kita mengatakan bahawa anda mahu mencipta pembolehubah 388 00:19:04,920 --> 00:19:06,586 tetapi anda tidak mahu untuk memulakan lagi. 389 00:19:06,586 --> 00:19:08,590 Anda tidak lagi mahu meletakkan apa-apa data di dalamnya. 390 00:19:08,590 --> 00:19:11,760 Baik anda perlu memberitahu pantas apa jenis data 391 00:19:11,760 --> 00:19:16,430 akan menjadi sebelum anda boleh sebenarnya menentukan dengan betul. 392 00:19:16,430 --> 00:19:20,360 >> Jadi dalam kes ini, apabila kita telah ditakrifkan pembolehubah dipanggil gred kita perlu 393 00:19:20,360 --> 00:19:24,450 yang jelas mengenai jenis, kerana ia tidak boleh membuat kesimpulan hanya mencari 394 00:19:24,450 --> 00:19:27,300 pada data yang dimulakan yang anda berikan kepadanya. 395 00:19:27,300 --> 00:19:30,050 Ia akan memberikan suatu kesilapan jika anda Jenis hanya var gred, misalnya, 396 00:19:30,050 --> 00:19:31,830 kerana ia tidak mempunyai jenis itu. 397 00:19:31,830 --> 00:19:33,353 Jadi gred = 100. 398 00:19:33,353 --> 00:19:35,790 Supaya 100 adalah integer, ia sesuai sangat baik ke dalam itu. 399 00:19:35,790 --> 00:19:36,998 Ia akan terus berfungsi. 400 00:19:36,998 --> 00:19:40,350 401 00:19:40,350 --> 00:19:43,022 Kita boleh lihat bagaimana kita boleh menyatukan ini. 402 00:19:43,022 --> 00:19:44,730 Sekarang anda mungkin tergoda, jika anda benar-benar 403 00:19:44,730 --> 00:19:48,610 mahu menyatukan yang gred ke dalam rentetan teks lain, 404 00:19:48,610 --> 00:19:52,560 ke tali yang lain, yang anda akan hanya menggunakan pengendali concatenating sama. 405 00:19:52,560 --> 00:19:54,630 Dan yang biasanya akan menjadi benar. 406 00:19:54,630 --> 00:20:00,540 Tetapi pantas tidak akan membolehkan anda untuk tersirat menukar jenis data. 407 00:20:00,540 --> 00:20:03,440 Jadi dalam kes ini, ini talian, 25, akan gagal 408 00:20:03,440 --> 00:20:06,650 kerana gred adalah integer dan tidak rentetan. 409 00:20:06,650 --> 00:20:08,760 Dan jadi ada sesuatu yang tidak kena set jenis. 410 00:20:08,760 --> 00:20:11,780 Jadi, anda perlu jelas apabila anda mahu menukar data ini, 411 00:20:11,780 --> 00:20:14,080 apabila anda mahu untuk memaksa ini data ke dalam jenis yang berbeza 412 00:20:14,080 --> 00:20:17,250 dan berkata, OK, saya ingin mengambil gred ini, yang adalah integer, 413 00:20:17,250 --> 00:20:19,050 dan menukarkannya kepada rentetan. 414 00:20:19,050 --> 00:20:23,970 >> Jadi saya mengambil String modal s semua jenis, anda akan perasan, dipermodalkan, 415 00:20:23,970 --> 00:20:26,280 Int, Double, String, sebagainya dan sebagainya. 416 00:20:26,280 --> 00:20:28,930 Kesemua mereka dipermodalkan hanya untuk membuat perkara yang lebih mudah. 417 00:20:28,930 --> 00:20:32,240 Dan kami akan berkata kesempatan Rentetan itu masuk ke dalam kelas. 418 00:20:32,240 --> 00:20:35,020 Dan ia akan mewujudkan satu rentetan daripada integer itu. 419 00:20:35,020 --> 00:20:37,970 Dan kemudian kita boleh menyatukan kedua-dua sangat baik. 420 00:20:37,970 --> 00:20:40,500 Sebarang pertanyaan mengenai perkara ini setakat ini? 421 00:20:40,500 --> 00:20:43,770 Baiklah, mari kita membajak melalui nombor empat. 422 00:20:43,770 --> 00:20:47,870 >> Sekarang mari kita bercakap tentang beberapa lebih maju struktur, seperti tatasusunan dan gelung. 423 00:20:47,870 --> 00:20:54,920 Dan tidak seperti C, tatasusunan dalam pantas tidak diwakili oleh petunjuk. 424 00:20:54,920 --> 00:20:58,730 Petunjuk dalam pantas, walaupun wujud, yang dipanggil 425 00:20:58,730 --> 00:21:02,840 seperti petunjuk yang tidak selamat atau beberapa jenis yang sama seperti ini, 426 00:21:02,840 --> 00:21:04,950 mereka tidak terdedah kepada anda biasanya. 427 00:21:04,950 --> 00:21:07,300 Jadi ia menjadi sangat sukar untuk anda untuk memanipulasi 428 00:21:07,300 --> 00:21:10,020 memori secara langsung dari komputer anda. 429 00:21:10,020 --> 00:21:11,670 >> Jadi tatasusunan hanya jenis data. 430 00:21:11,670 --> 00:21:16,830 Dan mereka yang dirujuk menggunakan jenis ini kini standard notasi kurungan persegi 431 00:21:16,830 --> 00:21:18,280 yang anda telah lihat sebelum ini. 432 00:21:18,280 --> 00:21:21,130 Tetapi apabila anda benar-benar mahu menentukan jenis pembolehubah 433 00:21:21,130 --> 00:21:24,330 sebagai pelbagai beberapa jenis tertentu, maka anda 434 00:21:24,330 --> 00:21:27,150 meletakkan jenis yang dalam kurungan persegi. 435 00:21:27,150 --> 00:21:30,260 Jadi apa yang saya cakapkan di sini ialah Saya mencipta pembolehubah yang dipanggil 436 00:21:30,260 --> 00:21:33,930 gred jenis int pelbagai. 437 00:21:33,930 --> 00:21:37,380 Dan saya menetapkan yang sama dengan beberapa data dimulakan, yang dalam kes ini 438 00:21:37,380 --> 00:21:42,960 adalah 100, 0, 90, 85, yang hanya koleksi gred sewenang-wenangnya di sini. 439 00:21:42,960 --> 00:21:46,480 Sekarang dalam kes ini saya boleh, ingat, keluarkan jenis, 440 00:21:46,480 --> 00:21:49,580 dan ia akan dapat membuat kesimpulan ia berdasarkan data dimulakan. 441 00:21:49,580 --> 00:21:51,990 Tetapi jika saya dikeluarkan dan ini Saya perlu untuk menetapkan kemudian, 442 00:21:51,990 --> 00:21:56,840 maka saya perlu memastikan bahawa saya mempunyai jenis yang ada. 443 00:21:56,840 --> 00:21:58,750 Baiklah, mari kita bergerak bersama-sama. 444 00:21:58,750 --> 00:22:03,010 Oleh itu, kita can-- tatasusunan berikan kepada kami pelbagai 445 00:22:03,010 --> 00:22:07,130 melalui kaedah yang tatatanda dot pada anda mungkin sekarang tahu. 446 00:22:07,130 --> 00:22:10,360 Jadi grades.count, sebagai contoh, memberitahu kita dengan tepat jumlah 447 00:22:10,360 --> 00:22:13,680 unsur-unsur yang yang terkandung dalam pelbagai ini. 448 00:22:13,680 --> 00:22:17,260 >> Jika saya ingin menambah additional-- kini melihat bahawa ini adalah satu var 449 00:22:17,260 --> 00:22:20,140 dan ini elok dijadikan pemboleh ubah dan tidak tetap, yang 450 00:22:20,140 --> 00:22:24,410 bermakna bahawa saya boleh menukar kandungan array ini, saya boleh menambah objek kepadanya. 451 00:22:24,410 --> 00:22:28,870 Tetapi saya tidak boleh hanya berkata gred dan kemudian dalam kurungan persegi 452 00:22:28,870 --> 00:22:33,280 empat, kerana yang akan menjadi kesesatan batas dalam hal ini. 453 00:22:33,280 --> 00:22:36,190 Jika saya mahu sebenarnya perubahan saiz array ini, 454 00:22:36,190 --> 00:22:41,140 Saya perlu menggunakan kaedah dot append untuk menambah sesuatu ke akhir sangat itu. 455 00:22:41,140 --> 00:22:46,900 Saya boleh, bagaimanapun, perubahan indeks individu. 456 00:22:46,900 --> 00:22:48,920 >> Jadi saya boleh menggunakan gred dan kemudian kurungan persegi 457 00:22:48,920 --> 00:22:52,480 sifar untuk memanipulasi indeks pertama ini dan sebagainya, seperti yang biasa anda inginkan. 458 00:22:52,480 --> 00:22:56,530 Dan saya boleh melakukan perkara yang sama untuk benar-benar menerima data dari itu juga. 459 00:22:56,530 --> 00:23:00,420 Sekarang terdapat juga jenis kaedah mewah untuk berbuat demikian, gred ditambah setaraf 460 00:23:00,420 --> 00:23:02,525 dan kemudian indeks lain, yang akan append-- 461 00:23:02,525 --> 00:23:04,400 atau tidak lain index-- tetapi senarai yang lain 462 00:23:04,400 --> 00:23:07,340 akan menambah senarai yang ke belakang gred. 463 00:23:07,340 --> 00:23:09,780 Dan gred akan kemudian mengandungi semua itu. 464 00:23:09,780 --> 00:23:13,850 Tetapi itu semacam satu perkara tambahan bahawa saya hanya menunjukkan anda untuk bersenang-senang. 465 00:23:13,850 --> 00:23:14,910 >> Sekarang ada untuk gelung. 466 00:23:14,910 --> 00:23:18,970 Dan ini adalah permulaan di mana perkara mula berubah sedikit. 467 00:23:18,970 --> 00:23:22,920 Perhatikan bagaimana ini untuk gelung adalah berbeza dari untuk gelung dalam C. 468 00:23:22,920 --> 00:23:26,470 Sekarang saya akan ambil perhatian bahawa untuk gelung dalam Swift boleh 469 00:23:26,470 --> 00:23:30,650 dibuat untuk kelihatan seperti untuk gelung dalam C, tetapi ada banyak membina lebih berguna 470 00:23:30,650 --> 00:23:37,840 yang pada dasarnya menghapuskan keperluan untuk mempunyai untuk var i sama dengan 0 koma bertitik i 471 00:23:37,840 --> 00:23:40,340 adalah kurang daripada beberapa panjang, sebagainya dan sebagainya, bukan? 472 00:23:40,340 --> 00:23:42,940 Dan membina ini adalah salah satu daripada mereka. 473 00:23:42,940 --> 00:23:49,030 >> Bagi indeks, indeks adalah baru pembolehubah, dalam kes ini, di dalam julat. 474 00:23:49,030 --> 00:23:52,730 Dan apa yang saya katakan ialah ada pelbagai dari 0 sepanjang jalan sehingga ke 475 00:23:52,730 --> 00:23:55,870 tetapi tidak termasuk grades.count. 476 00:23:55,870 --> 00:23:58,470 Jadi ini dot dot kurang daripada tanda mewakili 477 00:23:58,470 --> 00:24:05,040 julat nilai bermula dari sifar semua jalan sehingga grades.count tolak 1. 478 00:24:05,040 --> 00:24:07,070 Ada yang berasingan Pengendali yang wujud, 479 00:24:07,070 --> 00:24:13,320 yang dot dot dot, yang akan bermakna saya mahu julat sifar 480 00:24:13,320 --> 00:24:16,310 untuk mengira gred inklusif. 481 00:24:16,310 --> 00:24:19,130 >> Tetapi dalam kes ini, kerana ini tatasusunan adalah indeks sifar, kita sudah tentu 482 00:24:19,130 --> 00:24:23,290 tidak mahu pergi ke Bilangan maksimum gred. 483 00:24:23,290 --> 00:24:26,390 Saya boleh jumlah gred, seperti yang anda mungkin mengharapkan, dan output semua barangan ini. 484 00:24:26,390 --> 00:24:29,620 OK, beralih. 485 00:24:29,620 --> 00:24:32,270 Sekarang mari kita bercakap tentang fungsi. 486 00:24:32,270 --> 00:24:35,465 Untuk menentukan fungsi anda menggunakan kata kunci funk. 487 00:24:35,465 --> 00:24:38,090 Dan sekali lagi, di Swift anda perlu berhati-hati dengan jenis. 488 00:24:38,090 --> 00:24:41,530 Anda memberikan kepadanya parameter dengan menentukan, contohnya, 489 00:24:41,530 --> 00:24:45,440 nama parameter dan maka dalam Colin, jenis data 490 00:24:45,440 --> 00:24:47,690 bahawa anda menjangkakan bahawa parameter untuk menerima. 491 00:24:47,690 --> 00:24:50,700 >> Jadi dalam kes ini kita mempunyai fungsi dipanggil kiraan cetak gred. 492 00:24:50,700 --> 00:24:54,630 Ia menerima pembolehubah yang dipanggil gradebook, atau lebih tepat parameter yang dipanggil gradebook. 493 00:24:54,630 --> 00:24:59,267 Dan kami menjangkakan bahawa gradebook menjadi pelbagai integer. 494 00:24:59,267 --> 00:25:01,350 Jika gradebook yang kosong, kami akan mencetak satu perkara. 495 00:25:01,350 --> 00:25:06,090 Jika tidak, kita akan mencetak jumlah gred ini sebenarnya mempunyai. 496 00:25:06,090 --> 00:25:09,470 >> Sekarang jika kita mahu kembali beberapa nilai, maka cara 497 00:25:09,470 --> 00:25:14,595 bahawa kita mengubah definisi ini adalah untuk benar-benar menggunakan anak panah ini kata kunci, 498 00:25:14,595 --> 00:25:16,870 atau untuk menggunakan ini arrow penanda. 499 00:25:16,870 --> 00:25:19,440 Jadi di sini kita akan menentukan fungsi yang dipanggil purata. 500 00:25:19,440 --> 00:25:21,940 Kami akan menerima senarai nombor. 501 00:25:21,940 --> 00:25:25,430 Dan kami akan mengembalikan dua kali, yang akan diharapkan 502 00:25:25,430 --> 00:25:31,270 menjadi purata array ini. 503 00:25:31,270 --> 00:25:34,570 Dan untuk berbuat demikian, untuk untuk benar-benar mengira purata ini, 504 00:25:34,570 --> 00:25:38,651 kami akan mengambil sejumlah wang dan kita kehendak kursus kesimpulan semua tujuan yang 505 00:25:38,651 --> 00:25:39,400 dalam pelbagai ini. 506 00:25:39,400 --> 00:25:41,480 >> Perhatikan bahawa ada yang baru gaya untuk gelung di sini. 507 00:25:41,480 --> 00:25:45,450 Kami tidak mempunyai untuk menjadi jelas mengenai iterating atas setiap elemen tunggal, 508 00:25:45,450 --> 00:25:48,280 tetapi kita bukannya boleh mengatakan gred dan gradebook, makna 509 00:25:48,280 --> 00:25:50,930 bahawa bagi setiap satu barang yang kita ada dalam ini, 510 00:25:50,930 --> 00:25:53,482 menyediakan item yang dalam ini ubah dikenali sebagai gred. 511 00:25:53,482 --> 00:25:54,940 Dan saya mahu melakukan sesuatu dengan ia. 512 00:25:54,940 --> 00:26:00,350 Jadi saya akan meringkaskan semua data ini dan benar-benar kembali bahagian dua. 513 00:26:00,350 --> 00:26:04,436 >> Sekarang perhatikan sekali lagi di sini ada yang konsep pembahagian integer dalam Swift. 514 00:26:04,436 --> 00:26:06,810 Jika anda ingin menggandakan bahagian kerana anda mahu perpuluhan, 515 00:26:06,810 --> 00:26:09,460 maka anda perlu menjadi jelas, tidak hanya kira-kira satu sisi, 516 00:26:09,460 --> 00:26:14,030 kerana ia tidak akan membenarkan anda untuk memaksa data sama ada di sebelah ini, 517 00:26:14,030 --> 00:26:17,030 anda mempunyai untuk benar-benar kursus kedua-dua pihak ke beregu 518 00:26:17,030 --> 00:26:19,440 supaya anda sangat jelas tentang memastikan 519 00:26:19,440 --> 00:26:23,370 yang anda lakukan bahagian dua. 520 00:26:23,370 --> 00:26:26,150 >> Mari kita bergerak. 521 00:26:26,150 --> 00:26:31,150 Jadi jika saya benar-benar ingin accept-- jadi dalam contoh ini tertentu, 522 00:26:31,150 --> 00:26:34,260 ini masih arahan aplikasi berasaskan talian. 523 00:26:34,260 --> 00:26:37,920 Dan kami mula melihat beberapa batasan bahasa muda 524 00:26:37,920 --> 00:26:41,850 dalam bahawa walaupun kita boleh mengakses hujah-hujah dengan menggunakan 525 00:26:41,850 --> 00:26:44,940 process.arguments ini, ia masih tidak semestinya yang paling bersih 526 00:26:44,940 --> 00:26:46,200 perkara yang kita pernah lihat. 527 00:26:46,200 --> 00:26:49,142 Tetapi pada dasarnya saya menggalakkan anda untuk jenis melihat kod ini 528 00:26:49,142 --> 00:26:51,100 dan cuba untuk memikirkan apa sebenarnya yang sedang berlaku. 529 00:26:51,100 --> 00:26:55,030 >> Pada dasarnya apa yang berlaku ialah kami mengambil senarai hujah 530 00:26:55,030 --> 00:26:57,610 dan telah memaksa mereka ke dalam integer, dan kemudian kami 531 00:26:57,610 --> 00:27:03,620 akan menggunakannya sebagai satu cara untuk mencetak daripada purata semua gred kami. 532 00:27:03,620 --> 00:27:06,150 533 00:27:06,150 --> 00:27:07,350 Beralih. 534 00:27:07,350 --> 00:27:11,190 Sekarang ada satu lagi jenis data-- data lain menaip daripada tatasusunan 535 00:27:11,190 --> 00:27:14,940 dipanggil kamus, yang amat sama dengan hash jadual atau peta hash 536 00:27:14,940 --> 00:27:18,560 dan sama juga untuk Tatasusunan PHP bersekutu itu. 537 00:27:18,560 --> 00:27:20,770 Jadi mereka mempunyai tanggapan kunci dan nilai-nilai. 538 00:27:20,770 --> 00:27:23,780 >> Dan mereka juga ditakrifkan dengan ini notasi kurungan persegi, 539 00:27:23,780 --> 00:27:26,750 tetapi perbezaannya adalah yang mempunyai kamus 540 00:27:26,750 --> 00:27:29,370 di dalam kurungan persegi dengan noktah bertindih. 541 00:27:29,370 --> 00:27:33,850 Dan kolon memisahkan data menaip yang merupakan kunci dan nilai. 542 00:27:33,850 --> 00:27:38,540 Jadi dalam kes ini, saya akan membuat kamus untuk menerima beberapa gred. 543 00:27:38,540 --> 00:27:44,200 Dan ia akan menjadi jenis tali: int, 544 00:27:44,200 --> 00:27:46,940 yang bermaksud bahawa semua kunci akan menjadi tali, 545 00:27:46,940 --> 00:27:53,080 dan semua nilai-nilai mereka kunci akan menjadi integer. 546 00:27:53,080 --> 00:27:55,780 >> Adakah ini bermakna bahawa saya boleh maka rujukan data yang tertentu 547 00:27:55,780 --> 00:28:00,490 yang saya mahu menggunakan orang-orang bukan kunci daripada menggunakan indeks angka seperti saya 548 00:28:00,490 --> 00:28:04,350 akan mempunyai untuk pelbagai standard. 549 00:28:04,350 --> 00:28:06,470 Sekarang mari kita lihat, ada satu perkara penting 550 00:28:06,470 --> 00:28:10,790 saya juga ingin menyebut tentang urutan ini tertentu kod. 551 00:28:10,790 --> 00:28:12,910 Dan itulah yang ada satu lagi jenis data, 552 00:28:12,910 --> 00:28:15,580 atau sebaliknya ada ini idea data yang 553 00:28:15,580 --> 00:28:18,340 yang terkandung dalam Swift dipanggil optionals. 554 00:28:18,340 --> 00:28:21,270 >> Dan apa optionals bermakna bahawa ia mengakui hakikat 555 00:28:21,270 --> 00:28:27,500 yang kadang-kadang anda tidak akan mendapatkan data yang sebenarnya yang anda harapkan. 556 00:28:27,500 --> 00:28:31,400 Dan jadi apa yang saya maksudkan dengan itu is-- mari kita kita lihat pada urutan ini kod 557 00:28:31,400 --> 00:28:38,910 lelaran yang lebih semua hujah-hujah yang telah diluluskan untuk kod ini 558 00:28:38,910 --> 00:28:43,460 dan cuba untuk menukar mereka, cuba untuk berpecah kepada pelbagai rentetan, 559 00:28:43,460 --> 00:28:47,310 kerana ia menerima yang sangat jenis tertentu hujah. 560 00:28:47,310 --> 00:28:51,530 Dan kemudian ia akan cuba untuk memaksa tali yang mewakili nombor 561 00:28:51,530 --> 00:28:55,460 kepada integer yang gred, yang saya boleh mengira. 562 00:28:55,460 --> 00:28:58,230 >> Jadi, pada asasnya saya akan menggunakan fungsi ini perpecahan yang 563 00:28:58,230 --> 00:29:00,080 wujud dalam Perpustakaan standard Swift. 564 00:29:00,080 --> 00:29:03,720 Saya akan masuk ke dalam ia yang rentetan yang saya mahu berpecah. 565 00:29:03,720 --> 00:29:06,980 Dan kemudian dalam menggunakan ini semacam sintaks funky, yang 566 00:29:06,980 --> 00:29:09,670 Saya tidak tahu jika kita akan dapat, tetapi mungkin, kita 567 00:29:09,670 --> 00:29:14,320 sebenarnya akan menentukan tepat watak yang kita mahu berpecah di. 568 00:29:14,320 --> 00:29:16,030 Jadi apakah ini benar-benar kelihatan seperti? 569 00:29:16,030 --> 00:29:18,740 Mari kita lihat pada sebenarnya berjalan kod ini. 570 00:29:18,740 --> 00:29:22,000 >> Sebagai contoh, katakan saya mempunyai kuiz dan saya mendapat 50 pada itu. 571 00:29:22,000 --> 00:29:23,960 Dan saya mempunyai PSETs dan Saya mendapat seratus pada itu. 572 00:29:23,960 --> 00:29:29,180 Dan saya got-- terdapat satu lagi kuiz dan saya mendapat 40 pada itu. 573 00:29:29,180 --> 00:29:33,520 Saya tekan Enter, dan akhirnya apa yang yang akan berlaku ialah apa yang ia lakukan 574 00:29:33,520 --> 00:29:37,730 mengambil parameter ini, membelah tali di titik dua ini, 575 00:29:37,730 --> 00:29:41,390 mengiktiraf bahawa ada dua elemen dalam setiap satu, 576 00:29:41,390 --> 00:29:43,700 dan ia pada asasnya menjejaki setiap. 577 00:29:43,700 --> 00:29:49,226 >> Jadi saya mempunyai di dalam kamus saya kuiz, yang nilai diwakili dengan jumlah 50, 578 00:29:49,226 --> 00:29:54,290 Saya mempunyai Serangga yang mempunyai nilai 100, dan satu kuiz yang mempunyai nilai 40. 579 00:29:54,290 --> 00:29:57,400 Maka kemudian dalam kod yang saya sebenarnya purata semua nilai-nilai 580 00:29:57,400 --> 00:30:01,160 dan senaraikan semua kunci bahawa kamus tertentu. 581 00:30:01,160 --> 00:30:03,217 Tetapi ini adalah penting supaya anda boleh melihat 582 00:30:03,217 --> 00:30:06,050 apa yang sedang berlaku, adalah bahawa apa yang kita mahu lakukan adalah untuk mengambil tali ini 583 00:30:06,050 --> 00:30:11,450 dan ia berpecah pada watak ini, yang boleh kita lakukan lagi dengan perpecahan ini 584 00:30:11,450 --> 00:30:15,690 fungsi menggunakan seperti ini sintaks menarik yang wujud di sini. 585 00:30:15,690 --> 00:30:17,880 >> Hanya untuk sekarang menganggap bahawa tidak apa-apa. 586 00:30:17,880 --> 00:30:19,980 Kami akan kelihatan lebih di ini hanya dalam masa yang sedikit. 587 00:30:19,980 --> 00:30:23,230 Tetapi sekarang ada yang menarik aspek yang kita sebenarnya 588 00:30:23,230 --> 00:30:27,250 ingin mencuba untuk menukar ini tali ke dalam integer. 589 00:30:27,250 --> 00:30:29,720 Tetapi dalam bahasa lain apa yang mungkin berlaku adalah 590 00:30:29,720 --> 00:30:33,440 bahawa kita mungkin akan cuba untuk melakukannya dan sama ada kembali 591 00:30:33,440 --> 00:30:36,185 semacam sentinel nilai negatif seperti 592 00:30:36,185 --> 00:30:39,420 atau mungkin batal atau sesuatu seperti itu. 593 00:30:39,420 --> 00:30:41,070 Atau mungkin ia hanya akan menyebabkan ralat. 594 00:30:41,070 --> 00:30:42,820 Dan kita perlu kemudian menangkap kesilapan yang 595 00:30:42,820 --> 00:30:44,820 dan kemudian cuba untuk melakukan sesuatu yang berdasarkan fakta 596 00:30:44,820 --> 00:30:48,280 bahawa penukaran ini kepada integer gagal. 597 00:30:48,280 --> 00:30:50,460 Itulah di mana idea ini daripada optionals datang dalam. 598 00:30:50,460 --> 00:30:56,120 Anda sebenarnya boleh membuat jenis data yang adalah soalan tanda int, sebagai contoh. 599 00:30:56,120 --> 00:30:59,140 600 00:30:59,140 --> 00:31:01,910 Ini bermakna bahawa integer ini adalah, sebenarnya, pilihan. 601 00:31:01,910 --> 00:31:05,980 Dan apa yang akan berlaku ialah ia boleh mengandungi integer, atau mungkin tidak. 602 00:31:05,980 --> 00:31:10,650 Ia boleh, sebenarnya, ini lain idea, sekali dipanggil nill. 603 00:31:10,650 --> 00:31:14,900 Di mana itu bererti bahawa ada tidak mempunyai nilai apa-apa jua dalam ini. 604 00:31:14,900 --> 00:31:16,810 Ia bukan sifar, ada hanya tiada nilai. 605 00:31:16,810 --> 00:31:18,790 Sama sekali tidak ada nilai diwakili. 606 00:31:18,790 --> 00:31:21,650 >> Dan itulah yang baris ini 71 melakukan. 607 00:31:21,650 --> 00:31:25,990 Ialah ia mengatakan saya yang mahu cuba untuk menetapkan nilai, 608 00:31:25,990 --> 00:31:31,790 pembolehubah yang dipanggil gred, sama dengan penukaran tali ini ke dalam int. 609 00:31:31,790 --> 00:31:34,010 Jadi saya telah mengambil tali ini, ini komponen pertama, 610 00:31:34,010 --> 00:31:37,680 atau bukan yang kedua komponen, kerana ini 611 00:31:37,680 --> 00:31:40,770 adalah sifar diindeks, ini rentetan yang saya telah berpecah. 612 00:31:40,770 --> 00:31:42,930 Dan saya mahu untuk menukar yang kepada integer. 613 00:31:42,930 --> 00:31:46,730 Tetapi ia mungkin tidak sentiasa meneruskan biasanya, kerana bayangkan 614 00:31:46,730 --> 00:31:50,710 apa yang akan berlaku jika, bukannya jenis nombor, saya menaip kursus seperti Lelaman. 615 00:31:50,710 --> 00:31:51,534 >> Ia akan gagal. 616 00:31:51,534 --> 00:31:54,200 Ia tidak benar-benar akan menjadi dapat untuk menukar bahawa untuk integer 617 00:31:54,200 --> 00:31:55,510 seperti yang saya inginkan. 618 00:31:55,510 --> 00:31:58,660 Jadi, daripada memulakan beberapa jenis ralat, 619 00:31:58,660 --> 00:32:01,210 kita mempunyai idea ini sesuatu pilihan. 620 00:32:01,210 --> 00:32:04,240 Dan ini bermakna yang menggunakan tanda tanya ini boleh saya katakan, 621 00:32:04,240 --> 00:32:09,100 OK, adakah mungkin bahawa saya boleh mengambil ini, ditukar ke dalam int, 622 00:32:09,100 --> 00:32:12,630 dan memasukkannya ke dalam pemboleh ubah, yang juga akan menjadi int. 623 00:32:12,630 --> 00:32:15,420 Jika ya, maka yang cara bahawa ini adalah berjaya 624 00:32:15,420 --> 00:32:18,720 dan bahagian ini pertama blok boleh terus. 625 00:32:18,720 --> 00:32:21,040 >> Jika tidak, ia gagal. 626 00:32:21,040 --> 00:32:25,840 Tidak ada nilai dalam grade-- atau bahawa tidak terdapat nilai dalam yang sedia ada, 627 00:32:25,840 --> 00:32:30,220 dan saya benar-benar perlu cuba mengendalikan Keadaan ralat ini. 628 00:32:30,220 --> 00:32:33,340 Anda akan melihat ini tanda soalan sepanjang masa 629 00:32:33,340 --> 00:32:35,990 dalam Swift dan dalam contoh kod untuk Swift. 630 00:32:35,990 --> 00:32:40,980 Dan sebenarnya pengendali nill, seperti ini daripada tanda tanya, sebahagian optionals itu, 631 00:32:40,980 --> 00:32:45,057 akan menjadi mungkin salah satu perkara yang lebih sukar 632 00:32:45,057 --> 00:32:47,640 untuk jenis balut kepala anda sekitar seperti yang anda benar-benar bekerja dengannya. 633 00:32:47,640 --> 00:32:48,490 >> Ia mungkin masuk akal sekarang. 634 00:32:48,490 --> 00:32:50,760 Dan sebenarnya, ketika saya menulis kod sampel untuk ini, 635 00:32:50,760 --> 00:32:52,780 pasti saya memahami apa yang berlaku, 636 00:32:52,780 --> 00:32:55,570 tetapi masih ditangkap saya oleh kejutan sering sekali 637 00:32:55,570 --> 00:32:58,370 apabila saya mendapati bahawa beberapa data sebenarnya 638 00:32:58,370 --> 00:33:04,024 versi sifar, versi pilihan data yang saya telah menjangkakan. 639 00:33:04,024 --> 00:33:06,190 Jadi hanya menyedari bahawa jika anda mempunyai versi pilihan 640 00:33:06,190 --> 00:33:09,360 anda perlu buka bungkusan yang data dari kotak ini. 641 00:33:09,360 --> 00:33:15,870 >> Jadi ia adalah jenis seperti I-- bayangkan jika anda mempunyai kotak dan ia mengandungi sesuatu. 642 00:33:15,870 --> 00:33:18,490 Dan apa yang perlu anda lakukan adalah untuk bertanya soalan, 643 00:33:18,490 --> 00:33:22,800 adakah mungkin bahawa kotak ini sebenarnya mengandungi data yang saya cari? 644 00:33:22,800 --> 00:33:28,180 Jika ya, maka tarik keluar bahawa data dan memasukkannya ke dalam pembolehubah ini yang sedia ada. 645 00:33:28,180 --> 00:33:32,080 Jika tidak, maka saya hanya perlu tidak mengambil kira kandungan kotak ini 646 00:33:32,080 --> 00:33:34,310 sama sekali kerana ia literal mengandungi apa-apa. 647 00:33:34,310 --> 00:33:36,880 648 00:33:36,880 --> 00:33:40,400 >> Sebarang pertanyaan mengenai perkara ini? 649 00:33:40,400 --> 00:33:44,430 OK, mari kita beralih daripada ini perkara seperti baris arahan berasaskan 650 00:33:44,430 --> 00:33:47,610 dan mula mencari di dengan teknologi 651 00:33:47,610 --> 00:33:53,060 yang Xcode menyediakan kepada kami dalam bentuk taman permainan. 652 00:33:53,060 --> 00:33:56,669 Jadi ada banyak keupayaan sini dengan Swift. 653 00:33:56,669 --> 00:33:59,210 Dan jika anda membuka Xcode dan ia meminta anda apa yang anda mahu lakukan, 654 00:33:59,210 --> 00:34:01,340 anda boleh membuka taman permainan dan hanya bermain-main 655 00:34:01,340 --> 00:34:06,200 dengan banyak struktur yang berbeza dan aspek bahasa 656 00:34:06,200 --> 00:34:11,800 sebelum anda mula menyentuh SDK iOS atau Mac SDK. 657 00:34:11,800 --> 00:34:15,670 >> Jadi kes ini, mari kita mengatakan bahawa saya have-- Saya mempunyai contoh yang agak dibuat-buat 658 00:34:15,670 --> 00:34:18,460 di sini, tetapi menanggung dengan saya seperti yang kita semacam daripada bekerja melalui contoh ini. 659 00:34:18,460 --> 00:34:22,639 Mari kita mengatakan bahawa kita perlu melakukan banyak eksponen dengan nilai yang tetap, 660 00:34:22,639 --> 00:34:26,397 seperti yang kita tahu bahawa kita akan perlu melakukan banyak kuasa persegi, sebagai contoh. 661 00:34:26,397 --> 00:34:28,980 Jadi, kita akan mengambil beberapa nilai x, kita akan untuk persegi itu, 662 00:34:28,980 --> 00:34:30,540 kita akan mengambil beberapa nilai y dan kita akan untuk persegi itu. 663 00:34:30,540 --> 00:34:31,780 Sebagainya dan sebagainya. 664 00:34:31,780 --> 00:34:35,549 >> Sekarang kita mungkin sebenarnya hanya mewujudkan kuasa 2 untuk fungsi ini, bukan? 665 00:34:35,549 --> 00:34:37,090 Oleh itu, kita akan mewujudkan kuasa 2 fungsi. 666 00:34:37,090 --> 00:34:38,600 Kami akan menerima dua. 667 00:34:38,600 --> 00:34:41,489 Kami akan output-- atau kami akan kembali jenis double. 668 00:34:41,489 --> 00:34:46,159 Kami akan mengambil keputusan ini dan kemudian untuk dua kali 669 00:34:46,159 --> 00:34:52,040 apa yang kita benar-benar mengambil keputusan, yang telah yang dimulakan dengan nilai satu, 670 00:34:52,040 --> 00:34:53,090 dan kalikan dengan x. 671 00:34:53,090 --> 00:34:56,540 Jadi pada dasarnya kita mempunyai x masa x di sini. 672 00:34:56,540 --> 00:35:01,860 >> Dan sebagainya maka saya boleh kemudian, seperti yang kita mungkin menjangka, mengambil ini, kuasa menjalankan 2, 673 00:35:01,860 --> 00:35:03,680 memberikan kepadanya beberapa data, saya suka 2.0. 674 00:35:03,680 --> 00:35:05,756 Dan kita dapat melihat keputusan di sini 4.0. 675 00:35:05,756 --> 00:35:09,200 Kuasa 2 berjalan pada 3.2 dan kami dapat melihat hasil kami, 10.24. 676 00:35:09,200 --> 00:35:10,840 Setakat ini begitu baik, bukan? 677 00:35:10,840 --> 00:35:12,070 Sekarang kita terfikir, baik, OK. 678 00:35:12,070 --> 00:35:15,530 Sekarang saya benar-benar perlu melakukan banyak kuasa 3. 679 00:35:15,530 --> 00:35:19,180 Jadi saya akan tulis semua kod ini, menukar nama fungsi dari 680 00:35:19,180 --> 00:35:24,440 kuasa 2 untuk kuasa 3, dan segala-galanya akan sama kecuali untuk nilai ini 681 00:35:24,440 --> 00:35:26,740 di sini, julat ini, 1 ... 2. 682 00:35:26,740 --> 00:35:29,590 >> Jadi, daripada mengulangi gelung ini dua kali, 683 00:35:29,590 --> 00:35:31,880 Saya mahu mengulangi gelung ini tiga kali. 684 00:35:31,880 --> 00:35:36,330 Jadi saya hanya menukar nilai yang dari 1 untuk 3-- atau sebaliknya 2-3. 685 00:35:36,330 --> 00:35:39,230 Jadi sekali lagi, kod yang sama, itulah satu-satunya perubahan. 686 00:35:39,230 --> 00:35:40,080 Sekarang ini juga bekerja. 687 00:35:40,080 --> 00:35:43,860 Kuasa 3 disediakan dalam beberapa nilai 2. 688 00:35:43,860 --> 00:35:44,420 Kami mendapat 8. 689 00:35:44,420 --> 00:35:45,370 Jadi 2 cubed. 690 00:35:45,370 --> 00:35:48,060 Dan 3.2 cubed adalah 32,768. 691 00:35:48,060 --> 00:35:50,597 Dan setakat ini begitu baik, bukan? 692 00:35:50,597 --> 00:35:52,930 Tetapi mudah-mudahan ini adalah sedikit sedikit bendera merah untuk anda 693 00:35:52,930 --> 00:35:55,530 dalam bahawa kita kini mempunyai beberapa pertindihan kod 694 00:35:55,530 --> 00:35:58,800 kecuali untuk beberapa sangat kecil berubah dari satu ke yang berikutnya. 695 00:35:58,800 --> 00:36:02,170 Jadi ada beberapa cara yang kita mungkin dapat memudahkan 696 00:36:02,170 --> 00:36:06,080 masalah ini, di mana kita boleh sebenarnya, pada masa jangka, memikirkan beberapa, 697 00:36:06,080 --> 00:36:11,320 berikan kepada kami beberapa fungsi yang mempunyai tepat kuasa yang kita mahu. 698 00:36:11,320 --> 00:36:13,960 >> Dan ada idea ini penutupan, yang benar-benar, benar-benar 699 00:36:13,960 --> 00:36:18,180 penting dalam konteks Swift, dan dalam pelbagai bahasa yang lain. 700 00:36:18,180 --> 00:36:21,580 Tetapi mungkin anda akan melihat ia digunakan lebih-lebih lagi dalam Swift 701 00:36:21,580 --> 00:36:23,650 kerana ia tertanam dalam bahasa 702 00:36:23,650 --> 00:36:28,280 daripada anda akan di lain juga bahasa-bahasa moden. 703 00:36:28,280 --> 00:36:31,140 Jadi idea penutupan yang adalah ini, ialah kita 704 00:36:31,140 --> 00:36:35,430 boleh mempunyai satu fungsi yang bertujuan untuk menjadi fungsi generik, kuasa generik 705 00:36:35,430 --> 00:36:36,860 fungsi. 706 00:36:36,860 --> 00:36:41,010 >> Dan fungsi ini akan menerima eksponen ini bahawa kita sebenarnya 707 00:36:41,010 --> 00:36:42,990 ingin membuat. 708 00:36:42,990 --> 00:36:46,550 Jadi, sebagai contoh, yang pertama Contohnya, kita mahukan kuasa 2. 709 00:36:46,550 --> 00:36:50,050 Oleh itu, kita akan memberi kuasa dan kemudian dalam kurungan 2. 710 00:36:50,050 --> 00:36:52,490 Dan kini melihat apa yang ini sebenarnya kembali. 711 00:36:52,490 --> 00:36:57,680 Ini mengambil input daripada buku asas yang dipanggil y iaitu integer, 712 00:36:57,680 --> 00:37:03,090 dan ia mengembalikan ini gila cari perkara dalam kurungan parentheses-- 713 00:37:03,090 --> 00:37:06,230 dua kali dan kemudian arrow dua. 714 00:37:06,230 --> 00:37:10,270 >> Adakah ini bermakna bahawa saya akan kembali fungsi. 715 00:37:10,270 --> 00:37:13,510 Saya tidak kembali satu lagi jenis data, saya 716 00:37:13,510 --> 00:37:16,350 sebenarnya kembali fungsi yang mempunyai parameter ini, yang 717 00:37:16,350 --> 00:37:22,680 menerima dua sebagai input dan output yang berganda sebagai nilai pulangan. 718 00:37:22,680 --> 00:37:29,750 Dan hasilnya, kerana sekarang saya telah dipanggil kuasa, lulus dalam beberapa nilai untuk y, 719 00:37:29,750 --> 00:37:32,280 dan saya membuat ini lain notis function-- yang ada 720 00:37:32,280 --> 00:37:35,980 lain fungsi yang yang sedang dicipta bahagian dalam this-- apa yang saya lakukan 721 00:37:35,980 --> 00:37:37,830 yang saya boleh menukar nilai itu, salah satu yang 722 00:37:37,830 --> 00:37:41,010 nilai yang saya telah berubah 2-3, saya kini menjadikannya y. 723 00:37:41,010 --> 00:37:42,500 >> Dan ini berterusan. 724 00:37:42,500 --> 00:37:48,530 Jadi setiap kali aku menyeru kuasa daripada, pada dasarnya apa yang berlaku 725 00:37:48,530 --> 00:37:51,030 adalah bahawa saya akan kembali fungsi. 726 00:37:51,030 --> 00:37:54,310 Perhatikan di sini saya telah ditakrifkan pembolehubah baru yang dipanggil persegi. 727 00:37:54,310 --> 00:37:59,340 Saya telah menetapkan ia sama dengan kuasa, dengan syarat nilai 2 untuk kuasa. 728 00:37:59,340 --> 00:38:02,030 Dan apa ini kembali adalah fungsi. 729 00:38:02,030 --> 00:38:05,970 Jadi persegi, pembolehubah persegi, kini fungsi jenis 730 00:38:05,970 --> 00:38:11,390 yang mempunyai this-- oops, tatal ke atas yang sedikit bit-- yang mempunyai tandatangan ini, 731 00:38:11,390 --> 00:38:15,560 menerima dua dan output double. 732 00:38:15,560 --> 00:38:17,330 >> Jadi sekarang apa yang saya lakukan adalah saya telah pada dasarnya 733 00:38:17,330 --> 00:38:22,890 mencipta persegi fungsi yang dipanggil menerima apa-apa nilai dan akan persegi itu. 734 00:38:22,890 --> 00:38:24,960 Kita boleh lihat apa yang berlaku ke bawah di sini. 735 00:38:24,960 --> 00:38:29,960 Square 3 contohnya, bermakna saya akan mengambil nilai 3 dan kuasa dua itu. 736 00:38:29,960 --> 00:38:32,010 Jadi bagaimana sebenarnya ini berfungsi? 737 00:38:32,010 --> 00:38:37,800 Apabila saya lulus kuasa 2-- apabila saya lulus 2 ke dalam kuasa ini fungsi, 738 00:38:37,800 --> 00:38:44,430 pembolehubah ini y adalah penduduk dengan nilai yang 2. 739 00:38:44,430 --> 00:38:46,340 Dan yang semacam diadakan dalam ingatan. 740 00:38:46,340 --> 00:38:49,430 Itu jenis suka diadakan di negeri di suatu tempat di dalam komputer, 741 00:38:49,430 --> 00:38:51,980 kita tidak benar-benar peduli bagaimana atau di mana pada ketika ini. 742 00:38:51,980 --> 00:38:54,692 >> Tetapi saya kembali fungsi ini dipanggil exponentiate. 743 00:38:54,692 --> 00:38:57,400 Dan sekali lagi, ia tidak benar-benar perkara apa fungsi ini dipanggil, 744 00:38:57,400 --> 00:39:01,730 kita benar-benar boleh memanggilnya apa-apa, yang menerima dua dan mengembalikan dua kali, 745 00:39:01,730 --> 00:39:05,640 tetapi menggunakan nilai ini y di dalamnya. 746 00:39:05,640 --> 00:39:09,290 Jadi, walaupun ia adalah fungsi ini, fungsi exponentiater ini itulah 747 00:39:09,290 --> 00:39:13,600 telah dikembalikan semula kepada saya pembolehubah yang saya dipanggil persegi, 748 00:39:13,600 --> 00:39:17,980 ia terkandung di dalamnya Tanggapan ini adalah apa y. 749 00:39:17,980 --> 00:39:19,070 Dan ingat bahawa. 750 00:39:19,070 --> 00:39:24,810 >> Jadi setiap kali saya memanggil fungsi yang yang kini dikenali sebagai persegi, ia menggunakan itu. 751 00:39:24,810 --> 00:39:27,990 Tetapi ini juga bermakna bahawa saya boleh mencipta pembolehubah yang lain dengan menggunakan 752 00:39:27,990 --> 00:39:29,120 kuasa yang berbeza. 753 00:39:29,120 --> 00:39:33,240 Jadi saya boleh membuat ubah kiub, untuk Contohnya, memberikan kepadanya kuasa 3. 754 00:39:33,240 --> 00:39:37,230 Sekarang kiub sebenarnya akan mengambil nilai dan kiub itu dan mengembalikannya. 755 00:39:37,230 --> 00:39:39,570 Oleh itu, kita dapat melihat bahawa saya mendapat nilai 8 daripada itu. 756 00:39:39,570 --> 00:39:42,720 >> Tetapi itu nilai y tidak mempunyai berubah kerana mereka 757 00:39:42,720 --> 00:39:44,980 diadakan dalam bentuk pembolehubah bebas. 758 00:39:44,980 --> 00:39:47,480 Mereka semacam diadakan di ruang bebas dalam ingatan. 759 00:39:47,480 --> 00:39:51,290 Jadi kiub akan sentiasa mempunyai x kepada kuasa 3. 760 00:39:51,290 --> 00:39:55,380 Dan persegi akan sentiasa mempunyai x kepada kuasa 2, yang 761 00:39:55,380 --> 00:39:58,470 ertinya persegi yang akan sentiasa nombor persegi, seperti yang saya harapkan. 762 00:39:58,470 --> 00:40:01,794 Dan kiub akan sentiasa cubed nombor, seperti yang saya harapkan. 763 00:40:01,794 --> 00:40:04,960 Ini juga bermakna bahawa kadang-kadang anda boleh mendapatkan semacam sintaks jumpa 764 00:40:04,960 --> 00:40:09,030 di mana anda mempunyai kuasa sekurang- bawah skrin sini, kuasa 5. 765 00:40:09,030 --> 00:40:11,410 Dan anda masuk ke dalam keputusan. 766 00:40:11,410 --> 00:40:14,670 Anda memanggil fungsi itu telah dikembalikan dengan jumlah 4. 767 00:40:14,670 --> 00:40:17,440 Dan jadi apa dasarnya ini 4 hingga kuasa kelima, 768 00:40:17,440 --> 00:40:20,830 kita boleh melihat hasil di sana. 769 00:40:20,830 --> 00:40:23,690 Dengan saya setakat ini? 770 00:40:23,690 --> 00:40:26,620 >> Jadi idea ini dipanggil penutupan satu, kerana apa yang kita lakukan pada dasarnya 771 00:40:26,620 --> 00:40:30,610 adalah kami yang merangkumi beberapa jenis data into-- 772 00:40:30,610 --> 00:40:33,050 daripada melampirkan data ini ke dalam satu majlis dan kami 773 00:40:33,050 --> 00:40:36,240 dapat menggunakan semula fungsi ini. 774 00:40:36,240 --> 00:40:41,480 Sekarang sintaks ini walaupun boleh sebenarnya dipermudahkan jumlah yang besar. 775 00:40:41,480 --> 00:40:45,005 Dan ada banyak kemungkinan dalam Swift untuk memudahkan ini. 776 00:40:45,005 --> 00:40:47,780 Dan itulah yang semacam itu yang berikutnya sebenarnya melihat. 777 00:40:47,780 --> 00:40:51,400 Jadi dalam 7b sebagai contoh, kita mengambil kod ini sama. 778 00:40:51,400 --> 00:40:54,360 >> Tetapi sekarang dan bukan sebenarnya menentukan fungsi 779 00:40:54,360 --> 00:40:57,910 dalam kuasa ini berfungsi dan memberikan nama, 780 00:40:57,910 --> 00:41:00,150 dan kemudian kembali nama fungsi berkenaan, yang 781 00:41:00,150 --> 00:41:02,357 kemudian digunakan sebagai sebahagian daripada penutupan ini, bukan kami 782 00:41:02,357 --> 00:41:03,440 hanya akan memudahkan ia. 783 00:41:03,440 --> 00:41:06,580 Kita tidak memerlukan fungsi ini untuk dinamakan. 784 00:41:06,580 --> 00:41:09,760 Jadi ini adalah konsep yang fungsi tanpa nama di mana kita boleh kemudian 785 00:41:09,760 --> 00:41:15,180 menerima sebagai input, dalam kurungan di sini, x pembolehubah yang jenis double. 786 00:41:15,180 --> 00:41:17,250 >> Kami akan kembali dua jenis. 787 00:41:17,250 --> 00:41:19,830 Dan kemudian kata kunci, n, adalah permulaan fungsi ini. 788 00:41:19,830 --> 00:41:22,180 Jadi melihat bahawa semua ini adalah dalam kurungan kerinting 789 00:41:22,180 --> 00:41:25,310 dan kami mendefinisikan sebuah tanpa nama berfungsi di sini. 790 00:41:25,310 --> 00:41:29,910 Hanya cara yang lebih mudah daripada menentukan perkara yang sama. 791 00:41:29,910 --> 00:41:30,810 OK? 792 00:41:30,810 --> 00:41:36,740 Tetapi berpegang, Swift sebenarnya membolehkan kita untuk pergi lebih jauh dan memudahkan yang lebih, 793 00:41:36,740 --> 00:41:40,180 kerana benar-benar kita tidak peduli bahawa parameter ini adalah 794 00:41:40,180 --> 00:41:41,700 bernama apa-apa benda tertentu. 795 00:41:41,700 --> 00:41:48,090 Ia benar-benar boleh dipanggil apa-apa dan kita masih boleh menggunakan parameter yang pertama. 796 00:41:48,090 --> 00:41:53,800 >> Jadi sebenarnya ada ini khas jenis data dalam fungsi tanpa nama, 797 00:41:53,800 --> 00:41:57,710 ada nama ini khas pembolehubah dalam fungsi tanpa nama 798 00:41:57,710 --> 00:42:00,280 yang permulaan dengan tanda dolar dan mewakili 799 00:42:00,280 --> 00:42:03,785 nombor parameter, sifar diindeks, untuk fungsi ini. 800 00:42:03,785 --> 00:42:05,410 Jadi ada beberapa perkara yang berlaku. 801 00:42:05,410 --> 00:42:08,550 Di sini saya akan kembali, dan kemudian pendakap kerinting mewakili fungsi, 802 00:42:08,550 --> 00:42:09,050 hak? 803 00:42:09,050 --> 00:42:13,920 >> Notis bahawa saya tidak telah ditakrifkan jenis parameter atau jenis pulangan. 804 00:42:13,920 --> 00:42:16,460 Ia benar-benar dapat disimpulkan kerana tandatangan 805 00:42:16,460 --> 00:42:18,360 fungsi asal ini. 806 00:42:18,360 --> 00:42:20,500 Oleh itu, kita boleh menghapuskan bahawa sebagai satu kemungkinan. 807 00:42:20,500 --> 00:42:25,120 Tetapi juga saya boleh menggunakan tanda dolar sifar untuk mewakili parameter pertama ini itulah 808 00:42:25,120 --> 00:42:28,200 diluluskan ke dalam fungsi tanpa nama ini. 809 00:42:28,200 --> 00:42:31,630 Jadi memudahkan bahkan lebih. 810 00:42:31,630 --> 00:42:32,750 OK? 811 00:42:32,750 --> 00:42:33,820 Setakat ini, begitu baik? 812 00:42:33,820 --> 00:42:36,980 >> Sekarang ia type-- ini adakah anda ingat ini tanda sifar dolar 813 00:42:36,980 --> 00:42:40,130 yang kita lihat dalam pendakap kerinting ini yang kita lihat sebentar sahaja 814 00:42:40,130 --> 00:42:43,870 lalu di enam contoh Swift ini? 815 00:42:43,870 --> 00:42:46,560 Ia adalah di sini. 816 00:42:46,560 --> 00:42:48,430 Perhatikan betul-betul apa yang kita cari pada, 817 00:42:48,430 --> 00:42:51,580 adalah bahawa kita telah berlalu ke dalam fungsi perpecahan ini 818 00:42:51,580 --> 00:42:55,140 fungsi tanpa nama yang memeriksa parameter pertama 819 00:42:55,140 --> 00:42:57,830 untuk melihat jika ia sama dengan simbol kolon. 820 00:42:57,830 --> 00:42:59,830 Dan itulah apa yang berlaku, adalah bahawa semua 821 00:42:59,830 --> 00:43:02,320 kami doing-- pulangan kata kunci yang tersirat 822 00:43:02,320 --> 00:43:05,800 dalam case-- ini kita kembali nilai ini di mana kita membandingkan 823 00:43:05,800 --> 00:43:10,020 parameter pertama terhadap ini kolon watak. 824 00:43:10,020 --> 00:43:11,730 Dan supaya semacam merungkai ini. 825 00:43:11,730 --> 00:43:17,210 Dan anda akan melihat konstruk ini banyak dalam sintaks Swift, begitu juga yang menyimpan 826 00:43:17,210 --> 00:43:19,400 dalam fikiran apabila anda mengambil lihat ini. 827 00:43:19,400 --> 00:43:21,970 Sekarang kita boleh turun rel sedikit 828 00:43:21,970 --> 00:43:25,460 dan pergi benar-benar mewah yang menunjukkan walaupun lebih banyak kuasa Swift ini. 829 00:43:25,460 --> 00:43:27,950 Anda mungkin melihat beberapa ini dalam Kod sampel. 830 00:43:27,950 --> 00:43:29,790 Jadi itulah sebabnya saya akan menunjukkan ini kepada anda. 831 00:43:29,790 --> 00:43:37,260 >> Pada asasnya apa yang kita boleh lakukan ialah, pertama sekali, ia adalah jenis yang sia-sia untuk saya 832 00:43:37,260 --> 00:43:41,710 untuk melaksanakan semua itu kuasa kod kerana jika anda mengimport Darwin 833 00:43:41,710 --> 00:43:46,490 perpustakaan, ia sebenarnya termasuk fungsi dipanggil pow yang melakukan ini untuk anda. 834 00:43:46,490 --> 00:43:50,570 Oleh itu, kita boleh memudahkan ia lebih dan mempunyai fungsi kuasa sehingga kami kini hanya 835 00:43:50,570 --> 00:43:54,890 menjadi indah satu liner di mana kita hanya kembali fungsi tanpa nama ini yang 836 00:43:54,890 --> 00:44:00,780 menerima tanda dolar 0 dalam jawatan asas dan y sebagai eksponen yang. 837 00:44:00,780 --> 00:44:02,582 >> Tetapi kita boleh mendapatkan benar-benar, benar-benar mewah apabila kita 838 00:44:02,582 --> 00:44:04,790 menyedari bahawa Swift mempunyai banyak kuasa di bawah hood. 839 00:44:04,790 --> 00:44:07,010 Banyak pengusaha yang kami telah berurusan dengan, 840 00:44:07,010 --> 00:44:11,270 ditambah dengan tanda-tanda dan simbol-simbol dan bahagian semua yang anda biasanya 841 00:44:11,270 --> 00:44:15,620 beroperasi dengan dengan jenis data dalam bahasa pengaturcaraan, 842 00:44:15,620 --> 00:44:17,600 sebenarnya boleh perluas dalam Swift. 843 00:44:17,600 --> 00:44:21,460 Jadi apa yang bermakna dalam kita yang boleh menentukan pengendali kami sendiri. 844 00:44:21,460 --> 00:44:26,020 >> Jadi sekarang saya sudah serik dengan menaip dalam semua ini pow dan kemudian kurungan dan kemudian 845 00:44:26,020 --> 00:44:26,520 asas. 846 00:44:26,520 --> 00:44:27,520 Saya tidak mahu berbuat demikian. 847 00:44:27,520 --> 00:44:30,190 Saya benar-benar ingin mempunyai Pengendali yang membolehkan saya untuk melakukan itu. 848 00:44:30,190 --> 00:44:34,510 Jadi saya boleh memberitahu Swift yang saya mahu untuk mewujudkan pengendali, bintang 849 00:44:34,510 --> 00:44:39,472 star-- dengan cara itu saya tidak boleh menggunakan karat kerana karat adalah pengendali yang 850 00:44:39,472 --> 00:44:40,680 melakukan sesuatu yang lain sama sekali. 851 00:44:40,680 --> 00:44:42,720 Jadi, saya tidak mahu untuk menyusun daripada berlanggar dengan itu. 852 00:44:42,720 --> 00:44:45,750 Dan jadi apa yang anda lihat dalam pelbagai bahasa, termasuk Python, 853 00:44:45,750 --> 00:44:48,810 adalah seperti pengendali bintang bintang untuk mewakili atlet. 854 00:44:48,810 --> 00:44:50,730 >> Jadi itulah satu-satunya sebab mengapa saya lakukan itu. 855 00:44:50,730 --> 00:44:53,067 Dan ia akan menjadi pengendali Jenis memasang di antara. 856 00:44:53,067 --> 00:44:54,900 Dan saya perlu menyediakan kepadanya beberapa maklumat 857 00:44:54,900 --> 00:44:58,386 tentang keutamaan ini Pengendali jadi ia bersekutu kiri. 858 00:44:58,386 --> 00:45:00,260 Ia seperti agak keutamaan yang tinggi berbanding 859 00:45:00,260 --> 00:45:02,432 kepada penjumlahan atau pendaraban. 860 00:45:02,432 --> 00:45:04,140 Ia adalah keutamaan yang lebih tinggi daripada semua orang-orang. 861 00:45:04,140 --> 00:45:04,931 Sebagainya dan sebagainya. 862 00:45:04,931 --> 00:45:07,410 Dan kemudian saya menentukan fungsi yang benar-benar 863 00:45:07,410 --> 00:45:10,070 menentukan apa yang pengendali ini tidak. 864 00:45:10,070 --> 00:45:14,150 Jadi dengan andaian bahawa saya mempunyai satu kiri sebelah tangan dan sebelah tangan kanan, 865 00:45:14,150 --> 00:45:17,330 yang mungkin akan menjadi satu nama pembolehubah yang lebih baik untuk ini. 866 00:45:17,330 --> 00:45:20,690 Sebelah kiri dan sebelah kanan. 867 00:45:20,690 --> 00:45:26,740 Saya kemudian boleh mengambil kuasa ini daripada sebelah kiri ke sebelah kanan 868 00:45:26,740 --> 00:45:28,980 dan kembali nilai itu. 869 00:45:28,980 --> 00:45:30,370 Jadi kini ia super manis. 870 00:45:30,370 --> 00:45:33,790 Apa yang perlu kita lakukan ialah 2 bintang bintang 3 dan bahawa adalah 2 hingga kuasa ketiga, 871 00:45:33,790 --> 00:45:35,290 dan kita akan mendapat nilai 8. 872 00:45:35,290 --> 00:45:40,280 2 bintang bintang 10 adalah 2 kepada Kuasa ke-10, kita akan mendapat 1,024. 873 00:45:40,280 --> 00:45:43,630 >> Jadi sekarang kita kuasa fungsi, yang sekali lagi adalah berbeza, 874 00:45:43,630 --> 00:45:47,030 kerana idea di sebalik ini adalah bahawa kita mempunyai satu fungsi yang 875 00:45:47,030 --> 00:45:50,700 sentiasa mengambil sedikit nilai dan menggandakan it-- atau sebaliknya 876 00:45:50,700 --> 00:45:53,240 mengambil eksponen kepada kuasa yang sama. 877 00:45:53,240 --> 00:45:54,300 Oleh sebab itu ia lebih mudah. 878 00:45:54,300 --> 00:45:57,070 Oleh sebab itu ia hanya dolar menandatangani 0 bintang bintang y. 879 00:45:57,070 --> 00:46:01,190 Kita tidak perlu menggunakan pow lagi. 880 00:46:01,190 --> 00:46:03,020 >> OK, siapa yang hilang? 881 00:46:03,020 --> 00:46:03,700 Adakah kita melakukan OK? 882 00:46:03,700 --> 00:46:05,090 Sebarang pertanyaan mengenai perkara ini? 883 00:46:05,090 --> 00:46:05,815 Yeah? 884 00:46:05,815 --> 00:46:09,500 >> PENONTON: Apabila you-- [didengar] kuasa funk y berganda. 885 00:46:09,500 --> 00:46:11,441 Oleh itu, apabila anda kembali fungsi. 886 00:46:11,441 --> 00:46:13,190 DANIEL ARMENDARIZ: Kuasa Funk y berganda. 887 00:46:13,190 --> 00:46:14,270 Oh yeah, saya tidak tahu apa nombor y adalah. 888 00:46:14,270 --> 00:46:15,708 Harap maaf. 889 00:46:15,708 --> 00:46:19,420 >> PENONTON: Mengapa kamu kembali fungsi [didengar] kepungan. 890 00:46:19,420 --> 00:46:24,214 Bukankah dolar bintang sifar bintang y [didengar] 891 00:46:24,214 --> 00:46:29,710 mendapati bahawa pengendali dengan yang kembali dua [didengar] dua kali ganda? 892 00:46:29,710 --> 00:46:32,742 >> DANIEL ARMENDARIZ: Oleh itu, marilah saya menjawab soalan anda 893 00:46:32,742 --> 00:46:35,950 bagaimana saya memahaminya dan anda boleh beritahu saya jika saya tidak memahami soalan anda. 894 00:46:35,950 --> 00:46:42,850 Jadi konstruk ini, pendakap kerinting tanda dolar bintang sifar bintang y, 895 00:46:42,850 --> 00:46:44,280 adalah fungsi. 896 00:46:44,280 --> 00:46:50,080 Dan ia menerima satu parameter yang ini diwakili oleh tanda dolar sifar. 897 00:46:50,080 --> 00:46:55,830 Kata kunci pulangan yang tersirat dalam ini sangat pendek, fungsi sintaksis tanpa nama. 898 00:46:55,830 --> 00:46:57,870 >> Yang bermaksud bahawa pada dasarnya apa ini mengatakan 899 00:46:57,870 --> 00:47:01,270 adalah bahawa saya mentakrifkan function-- dan kemudian saya akan 900 00:47:01,270 --> 00:47:05,320 hanya memanggilnya something-- di mana saya mempunyai beberapa nilai y. 901 00:47:05,320 --> 00:47:08,300 Saya mempunyai y, yang dua kali. 902 00:47:08,300 --> 00:47:10,750 Dan saya kembali dua. 903 00:47:10,750 --> 00:47:19,010 Dan saya mempunyai tempoh pulangan yang y-- maaf, Saya tidak sepatutnya memanggil x y-- ini. 904 00:47:19,010 --> 00:47:20,240 Oh sayang, oh sayang, oh sayang. 905 00:47:20,240 --> 00:47:27,440 X-- nope-- bintang bintang y. 906 00:47:27,440 --> 00:47:29,720 >> Jadi ini adalah hanya versi mudah ini. 907 00:47:29,720 --> 00:47:33,990 Dan sebagainya sebab yang saya ada dolar tanda sifar ialah menggunakan kepungan ini 908 00:47:33,990 --> 00:47:41,050 bermakna bahawa saya tidak lagi perlu menaip pow, atau tidak lagi berbuat 909 00:47:41,050 --> 00:47:45,570 Saya perlu melakukan sesuatu seperti bintang 3 bintang 2. 910 00:47:45,570 --> 00:47:48,530 Saya hanya boleh mempunyai satu fungsi dipanggil persegi 911 00:47:48,530 --> 00:47:50,820 yang akan sentiasa mengambil beberapa nilai sebagai input 912 00:47:50,820 --> 00:47:52,980 dan benar-benar kembali kuasa dua itu. 913 00:47:52,980 --> 00:47:56,460 >> Jadi matlamat utama penutupan adalah hanya semacam payung kepada hakikat 914 00:47:56,460 --> 00:47:59,920 yang saya sentiasa mahu menggunakan y apabila Saya memanggil fungsi yang sebagai kuasa 915 00:47:59,920 --> 00:48:01,710 apabila mengambil eksponen ini. 916 00:48:01,710 --> 00:48:04,650 Jadi kembali kemudian, yang fungsi yang menerima 917 00:48:04,650 --> 00:48:08,460 dua, iaitu asas, dan kembali hasil eksponen yang 918 00:48:08,460 --> 00:48:10,740 adalah kunci di sini. 919 00:48:10,740 --> 00:48:12,790 Dan itulah perbezaan utama. 920 00:48:12,790 --> 00:48:14,430 Terdapat hanya sedikit yang berkembang. 921 00:48:14,430 --> 00:48:17,970 >> Ini bukan apa-apa yang berbeza berbanding dengan contoh sebelumnya, 922 00:48:17,970 --> 00:48:20,530 tetapi ia hanya sedikit yang berkembang kita boleh sebenarnya 923 00:48:20,530 --> 00:48:24,500 mewujudkan pengendali di Swift dan benar-benar melakukan barangan dengannya, 924 00:48:24,500 --> 00:48:26,396 yang jenis satu perkara yang sejuk. 925 00:48:26,396 --> 00:48:27,520 Adakah saya menjawab soalan anda? 926 00:48:27,520 --> 00:48:28,390 Sweet. 927 00:48:28,390 --> 00:48:31,350 Apa-apa lagi sebelum kita bergerak? 928 00:48:31,350 --> 00:48:33,570 OK. 929 00:48:33,570 --> 00:48:36,430 >> Sekarang ini semacam menimbulkan yang soalan adalah bahawa- juga OK, 930 00:48:36,430 --> 00:48:40,870 sekarang kita mempunyai keupayaan untuk fungsi yang akan dikembalikan. 931 00:48:40,870 --> 00:48:48,950 Bolehkah kami juga lulus berfungsi sebagai data atau sebagai parameter kepada fungsi lain? 932 00:48:48,950 --> 00:48:50,710 Dan sebenarnya kita boleh. 933 00:48:50,710 --> 00:48:53,480 Jadi mari kita mengatakan bahawa kita mempunyai semua kod yang sama. 934 00:48:53,480 --> 00:48:56,120 Kami mempunyai pembolehubah persegi yang akan mengambil ancang-kod ini. 935 00:48:56,120 --> 00:48:59,320 Dan kita mempunyai pembolehubah kiub yang akan Cube beberapa data. 936 00:48:59,320 --> 00:49:02,440 Dan kita benar-benar ingin memohon untuk pelbagai nombor. 937 00:49:02,440 --> 00:49:06,870 >> Jadi apa yang kita mungkin akan terdorong untuk melakukan, sudah tentu, yang sudah pasti sah, 938 00:49:06,870 --> 00:49:15,430 adalah untuk melelar lebih senarai ini nombor dan memohon fungsi saya persegi dan kiub 939 00:49:15,430 --> 00:49:22,270 dan mendapatkan dua senarai baru sebagai hasil senarai yang asal ini kuasa dua 940 00:49:22,270 --> 00:49:24,970 dan cubed, masing-masing. 941 00:49:24,970 --> 00:49:26,880 Sempurna diterima. 942 00:49:26,880 --> 00:49:29,130 Tetapi apa yang perkara yang kita lihat di sini adalah yang kita ada, 943 00:49:29,130 --> 00:49:31,310 sekali lagi, pertindihan kod kami. 944 00:49:31,310 --> 00:49:34,310 Dan ada mungkin peluang bagi kita untuk memudahkan ini sedikit. 945 00:49:34,310 --> 00:49:41,260 Bagaimana jika ada cara untuk kita sebenarnya sentiasa melelar lebih senarai beberapa 946 00:49:41,260 --> 00:49:45,450 dan melepaskan sahaja untuk ini ajaib berfungsi dengan pemboleh ubah yang 947 00:49:45,450 --> 00:49:47,350 mewakili fungsi yang kita mahu untuk memohon 948 00:49:47,350 --> 00:49:50,336 untuk setiap item tunggal dalam senarai ini. 949 00:49:50,336 --> 00:49:53,210 Butang ini menampilkan konsep apa dipanggil fungsi aras tinggi. 950 00:49:53,210 --> 00:49:57,150 Dan yang pada dasarnya apa ini adalah, adalah bahawa kita boleh membuat fungsi. 951 00:49:57,150 --> 00:50:00,210 >> Dan dalam kes ini ia dikenali sebagai mapper, hanya untuk memberikan nama, hanya 952 00:50:00,210 --> 00:50:02,510 pemetaan ke atas setiap item tunggal dalam senarai. 953 00:50:02,510 --> 00:50:06,191 Tempat aku senarai dan saya mengambil fungsi. 954 00:50:06,191 --> 00:50:08,440 Dan fungsi yang, sudah tentu, mempunyai tandatangan tertentu. 955 00:50:08,440 --> 00:50:11,980 Ia menerima sebagai dua parameter dan ia akan keluar adalah dua kali ganda. 956 00:50:11,980 --> 00:50:14,310 Dan hasil keseluruhan fungsi ini akan 957 00:50:14,310 --> 00:50:18,921 menjadi satu senarai baru yang jenis double. 958 00:50:18,921 --> 00:50:19,420 OK? 959 00:50:19,420 --> 00:50:22,650 >> Dan apa yang saya akan lakukan adalah untuk memohon fungsi f ini 960 00:50:22,650 --> 00:50:24,960 untuk setiap elemen dalam senarai saya. 961 00:50:24,960 --> 00:50:30,280 Dan reply-- dan agak kembali ini baru senarai hasil, yang benar-benar sejuk. 962 00:50:30,280 --> 00:50:31,820 Sekarang saya boleh lulus fungsi sekitar. 963 00:50:31,820 --> 00:50:35,290 Dan idea ini perintah yang lebih tinggi fungsi adalah benar-benar penting. 964 00:50:35,290 --> 00:50:39,260 Dan mapper ini adalah benar-benar hanya pelaksanaan bagi golongan miskin 965 00:50:39,260 --> 00:50:43,130 daripada satu fungsi yang dibina ke dalam Swift dipanggil peta. 966 00:50:43,130 --> 00:50:45,690 Dan ia tidak tepat ini, mungkin walaupun sedikit lebih baik. 967 00:50:45,690 --> 00:50:48,260 >> Ini adalah jenis generik, versi sederhana yang 968 00:50:48,260 --> 00:50:51,270 membolehkan kita melihat konsep yang terpakai di sini. 969 00:50:51,270 --> 00:50:54,630 Sekarang melihat jalan yang aku sebenarnya boleh memohon persegi saya 970 00:50:54,630 --> 00:50:57,850 dan fungsi kiub saya untuk senarai ini nombor. 971 00:50:57,850 --> 00:50:58,780 Saya menjalankan mapper saya. 972 00:50:58,780 --> 00:51:00,280 Saya memberikan kepadanya senarai saya nombor. 973 00:51:00,280 --> 00:51:02,155 Saya memberikan kepadanya yang yang fungsi yang berlaku 974 00:51:02,155 --> 00:51:04,170 memohon kepada setiap orang indeks. 975 00:51:04,170 --> 00:51:07,120 Dan ia akan menjadi output akibat. 976 00:51:07,120 --> 00:51:11,810 Dan saya akan dapat melihat bahawa saya telah kuasa dua dan cubed nombor saya sebagai hasilnya. 977 00:51:11,810 --> 00:51:14,660 >> Dan sudah tentu mapper akan mengambil apa-apa jenis fungsi tanpa nama. 978 00:51:14,660 --> 00:51:17,640 Kita juga boleh melihat bahawa saya telah membuat fungsi tanpa nama baru yang 979 00:51:17,640 --> 00:51:20,220 hanya mengambil masa beberapa parameter dan dibahagikan dengan 2. 980 00:51:20,220 --> 00:51:24,340 Dan kita dapat melihat bahawa saya telah, sebenarnya, dibahagikan senarai saya sebanyak 2 sebaliknya. 981 00:51:24,340 --> 00:51:25,250 Cool? 982 00:51:25,250 --> 00:51:27,340 Setakat ini, begitu baik? 983 00:51:27,340 --> 00:51:29,650 Baiklah, sekarang mari kita kembali kepada idea ini. 984 00:51:29,650 --> 00:51:36,160 Mari kita kembali melaksanakan ini dalam konteks gradebook a. 985 00:51:36,160 --> 00:51:41,860 >> Dan jika saya berbuat demikian, kita dapat melihat bahawa saya boleh memohon pelbagai options-- ini 986 00:51:41,860 --> 00:51:44,330 atau pelbagai ini fungsi aras tinggi 987 00:51:44,330 --> 00:51:51,450 untuk benar-benar memudahkan keupayaan saya untuk melakukan pelbagai perkara pada senarai nombor. 988 00:51:51,450 --> 00:51:53,660 Sebagai contoh, jika saya mengambil senarai nombor, 989 00:51:53,660 --> 00:51:57,060 salah satu fungsi aras tinggi yang wujud dipanggil mengurangkan. 990 00:51:57,060 --> 00:52:00,080 Apa mengurangkan tidak lebih daripada peta, akan dikurangkan 991 00:52:00,080 --> 00:52:03,710 mengambil dua elemen dalam senarai, akan mengambil beberapa fungsi yang 992 00:52:03,710 --> 00:52:07,420 membandingkan dua unsur senarai, dan kemudian ia akan 993 00:52:07,420 --> 00:52:09,610 semacam output-- yang output fungsi yang 994 00:52:09,610 --> 00:52:13,790 akan menjadi elemen yang lain anda kemudian membandingkan kepada orang lain. 995 00:52:13,790 --> 00:52:18,190 >> Jadi, anda boleh menggunakan ini untuk benar-benar Jumlah bagi nombor nombor di dalam senarai anda. 996 00:52:18,190 --> 00:52:20,640 Sebagai contoh, jika anda mempunyai senarai 1, 2, 3, 4, 5, 997 00:52:20,640 --> 00:52:22,940 anda mengambil unsur-unsur pertama, 1 dan 2. 998 00:52:22,940 --> 00:52:27,270 Anda boleh memohon untuk itu tambahan, fungsi yang mengambil kedua-dua elemen 999 00:52:27,270 --> 00:52:30,980 dan memuntahkannya keluar salah satu daripada unsur-unsur, yang akan menjadi nilai 3. 1000 00:52:30,980 --> 00:52:35,684 Kemudian kami mengambil nilai yang 3 dengan seterusnya unsur senarai, kesimpulan kedua-dua, 1001 00:52:35,684 --> 00:52:37,100 dan kemudian terus pergi ke bawah senarai. 1002 00:52:37,100 --> 00:52:40,410 >> Kami mengurangkan senarai untuk satu nilai. 1003 00:52:40,410 --> 00:52:42,700 Dan ia hanya kebetulan bahawa simbol campur 1004 00:52:42,700 --> 00:52:44,670 adalah pengendali, sama seperti kita hanya melihat. 1005 00:52:44,670 --> 00:52:47,500 Pengendali ini adalah sebenarnya fungsi yang 1006 00:52:47,500 --> 00:52:53,100 mempunyai tepat senarai ini bahawa kita mahu, bukan sifat-sifat ini 1007 00:52:53,100 --> 00:52:54,770 yang kita mahu. 1008 00:52:54,770 --> 00:52:56,760 Jadi saya menggalakkan anda untuk mengambil lihat ini. 1009 00:52:56,760 --> 00:52:59,290 Saya ingin menyusun daripada langkah daripada beberapa kod ini 1010 00:52:59,290 --> 00:53:05,330 supaya kita boleh melihat beberapa sebenar, sebenar, Swift benar dalam Xcode, 1011 00:53:05,330 --> 00:53:06,880 dalam pembangunan iOS. 1012 00:53:06,880 --> 00:53:08,630 Tetapi kita lihat pada ini dan lihat jika anda boleh 1013 00:53:08,630 --> 00:53:11,171 menghuraikan melalui apa yang berlaku dengan beberapa perintah ini lebih tinggi 1014 00:53:11,171 --> 00:53:13,790 fungsi termasuk penapis, mengurangkan, dan anda akan lebih 1015 00:53:13,790 --> 00:53:17,060 lihat di suatu tempat di sini map juga. 1016 00:53:17,060 --> 00:53:17,910 Ia adalah di sini. 1017 00:53:17,910 --> 00:53:20,410 Di mana ia akan mengambil urutan gred dan ia akan benar-benar 1018 00:53:20,410 --> 00:53:24,230 peta mereka menggunakan suis konstruk, yang anda mungkin mengenali dari C, 1019 00:53:24,230 --> 00:53:27,640 tetapi sebenarnya ia adalah lebih banyak berkuasa daripada suis konstruk 1020 00:53:27,640 --> 00:53:29,810 yang kita ada dalam C. 1021 00:53:29,810 --> 00:53:31,930 >> Dan kami akan memohon untuk yang setiap unsur dalam senarai 1022 00:53:31,930 --> 00:53:34,540 dan benar-benar memberikan gred surat bagi setiap 1023 00:53:34,540 --> 00:53:40,780 daripada gred menggunakan semua konsep-konsep ini bahawa kita baru sahaja bercakap tentang sebelum ini. 1024 00:53:40,780 --> 00:53:44,760 Sekarang mari kita meminggir hanya untuk minit dan bercakap tentang structs. 1025 00:53:44,760 --> 00:53:49,680 Dan sebagainya adalah structs tunggu dalam C yang kita dapat menentukan jenis baru data. 1026 00:53:49,680 --> 00:53:53,590 Structs wujud dalam Swift. 1027 00:53:53,590 --> 00:53:58,980 Dan begitu banyak konstruk lain dipanggil enums dan kelas, yang benar-benar 1028 00:53:58,980 --> 00:54:01,175 mengambil idea ini kepada tahap yang berbeza keseluruhannya. 1029 00:54:01,175 --> 00:54:05,300 >> Dan pada dasarnya ia hanya cara yang mentakrifkan jenis baru data. 1030 00:54:05,300 --> 00:54:11,010 Jadi jika anda get-- jika anda datang seluruh kelas atau structs atau enums, 1031 00:54:11,010 --> 00:54:13,290 tidak keliru dengan ia. 1032 00:54:13,290 --> 00:54:16,280 Ia hanya jalan mentakrifkan beberapa jenis tertentu baru data. 1033 00:54:16,280 --> 00:54:20,230 Dan ini adalah benar-benar penting apabila kita berbicara mengenai pembangunan aplikasi iOS 1034 00:54:20,230 --> 00:54:24,630 kerana segala sesuatu yang wujud dalam aplikasi iOS yang 1035 00:54:24,630 --> 00:54:27,460 pada dasarnya adalah satu objek yang pelbagai jenis. 1036 00:54:27,460 --> 00:54:31,980 Dan objek pada dasarnya ialah kelas atau enum atau struct a. 1037 00:54:31,980 --> 00:54:34,760 >> Jadi dalam kes ini saya menentukan jenis baru data 1038 00:54:34,760 --> 00:54:37,740 bahawa saya memanggil penilaian itulah beberapa ciri-ciri, termasuk 1039 00:54:37,740 --> 00:54:41,040 nama dan urutan gred. 1040 00:54:41,040 --> 00:54:43,470 Jadi satu jenis taksiran supaya aku ada di dalam fikiran 1041 00:54:43,470 --> 00:54:44,760 akan menjadi kuiz, sebagai contoh. 1042 00:54:44,760 --> 00:54:48,180 Saya ingin mempunyai penilaian yang kuiz 1043 00:54:48,180 --> 00:54:51,460 dan yang mempunyai pelbagai gred yang berkaitan dengan itu, untuk satu kuiz, 1044 00:54:51,460 --> 00:54:52,840 kuiz dua, sebagainya dan sebagainya. 1045 00:54:52,840 --> 00:54:55,720 >> Atau saya mungkin mempunyai jenis yang berbeza taksiran untuk set masalah. 1046 00:54:55,720 --> 00:54:56,650 Dan saya boleh melakukan sesuatu. 1047 00:54:56,650 --> 00:54:59,860 Saya benar-benar boleh mempunyai fungsi dalam jenis ini 1048 00:54:59,860 --> 00:55:02,645 data, yang kini dipanggil kaedah. 1049 00:55:02,645 --> 00:55:04,520 Jadi, jika anda pernah melihat kaedah perkataan, ia benar-benar 1050 00:55:04,520 --> 00:55:08,190 hanya satu fungsi yang terpakai untuk kelas yang sangat khusus, 1051 00:55:08,190 --> 00:55:10,100 atau jenis yang sangat khusus data. 1052 00:55:10,100 --> 00:55:12,350 Ia membolehkan kita untuk mengubah suai data dalam. 1053 00:55:12,350 --> 00:55:15,510 >> Jadi dalam erti kata lain, jika saya mahu menambah gred untuk penilaian saya, 1054 00:55:15,510 --> 00:55:18,630 maka semua saya lakukan adalah untuk menambah nilai yang merupakan input 1055 00:55:18,630 --> 00:55:22,660 untuk fungsi ini untuk harta dalaman saya. 1056 00:55:22,660 --> 00:55:25,880 Ada konstruk lain kemas di sini dalam Swift, yang ini dot dot dot 1057 00:55:25,880 --> 00:55:31,780 pengendali, yang bermaksud bahawa markah boleh sekarang menerima apa-apa bilangan integer. 1058 00:55:31,780 --> 00:55:33,940 Dan markah akan menjadi pelbagai integer yang 1059 00:55:33,940 --> 00:55:39,030 telah diserahkan kepada fungsi saya, yang bermakna bahawa saya boleh melakukan hal-hal seperti ini. 1060 00:55:39,030 --> 00:55:42,360 >> Saya boleh jangan menambah gred dan hanya memberikan nombor sewenang-wenangnya integer ke dalamnya 1061 00:55:42,360 --> 00:55:47,420 dan sebenarnya disediakan array daripada nilai-nilai dalam fungsi saya 1062 00:55:47,420 --> 00:55:50,270 atau dalam kaedah saya, seperti yang berlaku. 1063 00:55:50,270 --> 00:55:54,040 Sekarang ini adalah penting kerana segala-galanya dalam Xcode, segala-galanya dalam iOS, 1064 00:55:54,040 --> 00:55:56,250 sebenarnya objek. 1065 00:55:56,250 --> 00:55:59,630 Oleh itu ingatlah bahawa dalam fikiran apabila kita menerobos Xcode terbuka 1066 00:55:59,630 --> 00:56:04,890 dan langkau ke depan di luar iOS versi dua dan tiga 1067 00:56:04,890 --> 00:56:08,820 dan benar-benar pergi ke versi empat. 1068 00:56:08,820 --> 00:56:11,940 >> Dan sekali lagi, semua ini akan dipaparkan di halaman seminar itu. 1069 00:56:11,940 --> 00:56:16,980 iOS empat adalah semacam penuh sesak nafas pelaksanaan aplikasi yang sangat asas. 1070 00:56:16,980 --> 00:56:23,920 Dan apa yang aplikasi ini tidak adalah ia memuatkan UI, yang kelihatan seperti ini. 1071 00:56:23,920 --> 00:56:28,680 Sekali lagi, jika kita klik pada papan cerita kita boleh melihat bahawa ini adalah apa yang ia kelihatan seperti. 1072 00:56:28,680 --> 00:56:31,320 Ini adalah UI. 1073 00:56:31,320 --> 00:56:33,676 Ia mempunyai tajuk di bahagian paling atas. 1074 00:56:33,676 --> 00:56:34,800 Saya memanggilnya Galeri web. 1075 00:56:34,800 --> 00:56:38,400 >> Di tengah-tengah ada unsur dipanggil imej paparan UI. 1076 00:56:38,400 --> 00:56:41,340 Dan di bahagian bawah ada toolbar dengan butang tunggal yang 1077 00:56:41,340 --> 00:56:46,850 mempunyai ruang elastik yang membolehkan ia untuk pusat di tengah-tengah bar alat ini. 1078 00:56:46,850 --> 00:56:51,780 Dan apa yang berlaku ialah apabila ini beban ia memuat turun fail JSON itulah 1079 00:56:51,780 --> 00:56:55,540 terkandung pada pelayan di tempat lain, mem-parsing bahawa fail JSON, 1080 00:56:55,540 --> 00:56:58,130 dan fail JSON kelihatan sedikit seperti ini. 1081 00:56:58,130 --> 00:57:02,770 1082 00:57:02,770 --> 00:57:06,230 Fail JSON kelihatan seperti ini. 1083 00:57:06,230 --> 00:57:08,650 Terdapat ia. 1084 00:57:08,650 --> 00:57:11,730 >> Ia mempunyai nama album dan ia mempunyai pelbagai gambar. 1085 00:57:11,730 --> 00:57:13,490 Setiap satu daripada orang-orang gambar mempunyai nama dan juga 1086 00:57:13,490 --> 00:57:19,460 URL diri mereka yang mewakili versi jpeg daripada individu foto. 1087 00:57:19,460 --> 00:57:24,780 Jadi apa yang berlaku ialah apabila program ini beban, ia memuat turun fail JSON, 1088 00:57:24,780 --> 00:57:30,590 mem-parsing itu, meletakkan semua ini ke dalam sama dengan pelbagai dalam iOS 1089 00:57:30,590 --> 00:57:33,020 pembangunan aplikasi, yang nsarray satu. 1090 00:57:33,020 --> 00:57:37,520 Dan kemudian saya boleh memuatkan data ini ke dalam permohonan 1091 00:57:37,520 --> 00:57:41,100 dan beban pada skrin saya. 1092 00:57:41,100 --> 00:57:44,760 >> Terdapat imej yang telah dimuat dengan butang di bahagian paling bawah. 1093 00:57:44,760 --> 00:57:49,190 Jika saya klik Dapatkan Imej akan datang, ia kemudian menarik imej yang dari internet 1094 00:57:49,190 --> 00:57:53,370 dan menggantikan imej yang dalam imej paparan UI. 1095 00:57:53,370 --> 00:57:57,820 Jadi anda boleh muat turun ini dan sebenarnya mengambil lihat pada komputer anda. 1096 00:57:57,820 --> 00:58:00,940 Dan membinanya dan sebenarnya menyusun ia ke peranti anda. 1097 00:58:00,940 --> 00:58:04,710 Tetapi pada dasarnya proses itu ini, mewujudkan storyboard-- yang 1098 00:58:04,710 --> 00:58:08,080 atau lebih tepat tidak create-- tetapi memilih papan cerita. 1099 00:58:08,080 --> 00:58:15,030 Dan sebenarnya we'll-- jika anda tidak mind-- kami akan mengambil hanya beberapa saat 1100 00:58:15,030 --> 00:58:18,390 untuk benar-benar menunjukkan bagaimana ini dilakukan. 1101 00:58:18,390 --> 00:58:22,430 1102 00:58:22,430 --> 00:58:27,820 >> Hanya supaya bagaimana kita boleh sebenarnya mencapai ini dibuat sedikit lebih 1103 00:58:27,820 --> 00:58:28,360 jelas. 1104 00:58:28,360 --> 00:58:30,651 Permohonan paparan tunggal, saya akan memanggil seminar ini 1105 00:58:30,651 --> 00:58:35,330 empat yang mewakili ini jumlah tertentu. 1106 00:58:35,330 --> 00:58:36,335 Simpan ia pada desktop. 1107 00:58:36,335 --> 00:58:39,890 1108 00:58:39,890 --> 00:58:42,110 OK, akan klik pada papan cerita. 1109 00:58:42,110 --> 00:58:47,030 Dan apa yang saya akan lakukan adalah untuk mencari imej paparan saya, 1110 00:58:47,030 --> 00:58:50,940 seretnya ke pengguna saya antara muka dan pusat itu. 1111 00:58:50,940 --> 00:58:54,850 Kini hanya tertumpu ia malangnya tidak akan melakukan banyak keseluruhan, 1112 00:58:54,850 --> 00:58:58,680 kecuali skrin iaitu saiz ini tepat. 1113 00:58:58,680 --> 00:59:03,950 >> Oleh itu, kita boleh meyakinkan kita bahawa dengan klik pada perkara bulatan dua ini, 1114 00:59:03,950 --> 00:59:08,290 menurunkan pop ini Menu di sini dan berubah sehingga 1115 00:59:08,290 --> 00:59:11,110 untuk pratonton, di mana kami akan benar-benar mendapat peluang untuk melihat bagaimana 1116 00:59:11,110 --> 00:59:13,530 ini akan benar-benar melihat pada peranti lain. 1117 00:59:13,530 --> 00:59:16,500 Seperti yang kita lihat, kita tidak walaupun melihatnya dalam kes ini. 1118 00:59:16,500 --> 00:59:18,500 Jadi saya akan menutup ini buat masa ini. 1119 00:59:18,500 --> 00:59:22,100 >> Dan saya akan pilih ikon ini turun sekurang- 1120 00:59:22,100 --> 00:59:23,910 bahagian bawah skrin. 1121 00:59:23,910 --> 00:59:26,584 Ia berkata Menyelesaikan Isu Layout Auto. 1122 00:59:26,584 --> 00:59:28,000 Maaf, ia memotong di bahagian bawah. 1123 00:59:28,000 --> 00:59:36,360 Tetapi jika saya klik pada itu, apa yang saya perolehi adalah pop ini up-- pergi. 1124 00:59:36,360 --> 00:59:39,740 1125 00:59:39,740 --> 00:59:51,220 Apa yang saya dapat adalah pop ini sehingga yang membolehkan saya menambah kekangan yang hilang. 1126 00:59:51,220 --> 00:59:53,780 Dan dengan demikian ia akan kemudian semacam menguncinya 1127 00:59:53,780 --> 00:59:56,640 ke bahagian tengah daripada skrin seperti yang saya jangkakan. 1128 00:59:56,640 --> 01:00:00,520 >> Sekarang untuk mendapatkan butang ini pada atas, saya perlu pergi ke Editor. 1129 01:00:00,520 --> 01:00:05,010 Pergi ke Benamkan Dalam dan klik Pengawal navigasi. 1130 01:00:05,010 --> 01:00:08,900 Apa yang akan dilakukan adalah yang akan menambah ini komponen keseluruhan lain kepadanya, 1131 01:00:08,900 --> 01:00:11,310 tetapi ia sebenarnya akan menghubungkan kembali ke UI asal saya. 1132 01:00:11,310 --> 01:00:14,450 Dan butir-butir, sekali lagi, kita tidak benar-benar perlu mengambil berat tentang sekarang. 1133 01:00:14,450 --> 01:00:16,710 Tetapi saya ingin mempunyai bar alat di bahagian paling bawah. 1134 01:00:16,710 --> 01:00:18,530 Jadi saya akan semak Toolbar Rancangan. 1135 01:00:18,530 --> 01:00:21,870 >> Dan ini menyediakan dalam pandangan saya, yang kini di tempat lain, 1136 01:00:21,870 --> 01:00:23,900 kita dapat melihat ia dikaitkan di sini. 1137 01:00:23,900 --> 01:00:28,710 Kini, ia menyediakan satu bar alat di bahagian bawah UI saya. 1138 01:00:28,710 --> 01:00:34,770 Jadi sekarang, daripada memilih satu imej paparan, saya boleh mencari label, 1139 01:00:34,770 --> 01:00:41,140 atau lebih tepat toolbar-- yang mari kita lihat, di manakah itu? 1140 01:00:41,140 --> 01:00:41,890 Apakah ia dipanggil? 1141 01:00:41,890 --> 01:00:49,760 Satu perkara button-- bar-- item-- bar sorry-- butang item. 1142 01:00:49,760 --> 01:00:54,590 Mencebur yang ada dan memohon pasangan ruang yang fleksibel di sebelah sama ada 1143 01:00:54,590 --> 01:00:57,429 untuk benar-benar tertumpu itu. 1144 01:00:57,429 --> 01:00:58,970 Jadi sekarang saya telah membuat UI saya, pada asasnya. 1145 01:00:58,970 --> 01:01:01,428 Dan saya boleh memberikan nama dengan klik dua kali di bahagian paling atas 1146 01:01:01,428 --> 01:01:04,880 di sini dan berkata galeri web dan sebagainya. 1147 01:01:04,880 --> 01:01:08,100 Sekarang sekali lagi, ini adalah unsur-unsur yang wujud dengan sendirinya. 1148 01:01:08,100 --> 01:01:10,400 Dan saya perlu menyambung mereka kepada saya kod yang 1149 01:01:10,400 --> 01:01:14,297 Boleh saya lakukan lagi dengan membawa sehingga icon bulatan dua ini, 1150 01:01:14,297 --> 01:01:15,380 berubah dari pratonton. 1151 01:01:15,380 --> 01:01:18,950 Yang, dengan cara itu, sekarang kita boleh lihat adalah baik berpusat dan akan kelihatan baik 1152 01:01:18,950 --> 01:01:23,720 pada pelbagai peranti. 1153 01:01:23,720 --> 01:01:27,280 >> Tukar kepada automatik, yang akan membawa kod ViewController itu. 1154 01:01:27,280 --> 01:01:29,030 Dan kini bahagian ini adalah penting. 1155 01:01:29,030 --> 01:01:34,590 Untuk membolehkan anda untuk menyambung ini dua unsur, kod anda kepada UI, 1156 01:01:34,590 --> 01:01:36,680 anda pilih item yang anda hendak sambungkan. 1157 01:01:36,680 --> 01:01:39,570 Jadi dalam kes ini, kita sebenarnya mahu mengekod 1158 01:01:39,570 --> 01:01:43,520 menukar imej yang yang terkandung dalam imej paparan UI ini. 1159 01:01:43,520 --> 01:01:47,070 Jadi, jika anda klik mengawal daripada pandangan imej dan seret, 1160 01:01:47,070 --> 01:01:51,960 anda akan melihat bahawa anda mendapatkan bar kecil, apabila anda melepaskan semua pop ini 1161 01:01:51,960 --> 01:01:53,550 sehingga akan berlaku. 1162 01:01:53,550 --> 01:01:56,470 >> Dan ia mengatakan bahawa kita akan mewujudkan sambungan. 1163 01:01:56,470 --> 01:01:59,300 Dan dari sini saya ingin memberikan nama, sesuatu seperti Galeri. 1164 01:01:59,300 --> 01:02:00,240 Tekan Enter. 1165 01:02:00,240 --> 01:02:03,040 Dan ini sebenarnya memberikan galeri ubah dikenali sebagai 1166 01:02:03,040 --> 01:02:08,600 bahawa saya boleh rujukan dalam kod saya untuk menukar imej, sebagai contoh. 1167 01:02:08,600 --> 01:02:10,430 Jadi bagaimana kod yang benar-benar melihat? 1168 01:02:10,430 --> 01:02:13,030 Baik lagi, saya tidak mahu menghabiskan terlalu banyak masa di atasnya. 1169 01:02:13,030 --> 01:02:15,430 Dan saya menggalakkan anda untuk memuat turun dan membaca. 1170 01:02:15,430 --> 01:02:18,330 Tetapi salah satu yang paling aspek penting adalah kod 1171 01:02:18,330 --> 01:02:20,980 yang benar-benar mencapai harga imej. 1172 01:02:20,980 --> 01:02:26,470 >> Jadi dalam kes ini saya ingin untuk mendapatkan dalam gambar saya 1173 01:02:26,470 --> 01:02:28,520 pelbagai, yang terkandung dalam kelas saya. 1174 01:02:28,520 --> 01:02:33,390 Saya ingin menentukan nama dan URL yang sudah dihuraikan daripada JSON ini. 1175 01:02:33,390 --> 01:02:39,810 Sebenarnya meminta peranti untuk mendapatkan URL, mengambil URL daripada ini, 1176 01:02:39,810 --> 01:02:44,060 dan kemudian mengambil data daripada kandungan URL yang. 1177 01:02:44,060 --> 01:02:49,430 Kemudian menukar data itu ke dalam imej dengan melepaskan ia ke dalam imej UI. 1178 01:02:49,430 --> 01:02:52,880 Jadi sekali lagi, ini adalah jenis semua berbeza objek, jenis kelas. 1179 01:02:52,880 --> 01:02:58,410 >> Dan kemudian saya kemudian boleh menetapkan saya gallery.image sama dengan data yang. 1180 01:02:58,410 --> 01:03:00,750 Dan itulah jenis daging itu yang sebenarnya adalah kemudian 1181 01:03:00,750 --> 01:03:08,250 dapat mengubah perubahan data from-- gambar dari satu ke yang berikutnya. 1182 01:03:08,250 --> 01:03:10,660 Jadi sekali lagi, mudah-mudahan sekarang banyak yang membina 1183 01:03:10,660 --> 01:03:12,240 akan masuk akal sedikit lebih. 1184 01:03:12,240 --> 01:03:15,260 Perhatikan bahawa ada beberapa tanda seru di sini. 1185 01:03:15,260 --> 01:03:19,810 Mata seru adalah pada dasarnya berkaitan dengan optionals. 1186 01:03:19,810 --> 01:03:22,657 >> Apa yang saya katakan ialah pada dasarnya bahawa tanpa memeriksa 1187 01:03:22,657 --> 01:03:24,490 untuk melihat jika ada data dalam ini pilihan, 1188 01:03:24,490 --> 01:03:27,140 Saya akan pergi ke depan dan menganggap yang ada dan announced ia. 1189 01:03:27,140 --> 01:03:31,340 Ingatlah bahawa kita menggunakan analogi jenis pakej untuk optionals 1190 01:03:31,340 --> 01:03:34,700 dan kita perlu announced yang pakej dan tarik keluar data. 1191 01:03:34,700 --> 01:03:37,570 Titik seru kuasa-kuasa yang benar-benar berlaku. 1192 01:03:37,570 --> 01:03:39,590 >> Tetapi saya tahu bahawa ini adalah selamat kerana saya diperiksa 1193 01:03:39,590 --> 01:03:42,070 untuk melihat jika data imej adalah sama kepada sifar, saya telah benar-benar semak 1194 01:03:42,070 --> 01:03:45,420 untuk melihat jika itu pilihan adalah, sebenarnya, gagal. 1195 01:03:45,420 --> 01:03:47,110 Jika yang mempunyai, sebenarnya, sudah gagal. 1196 01:03:47,110 --> 01:03:52,450 Oleh itu, saya yakin bahawa sekali saya dapat ini titik Saya boleh announced data itu. 1197 01:03:52,450 --> 01:03:55,710 Anda juga mungkin melihat ia dalam bentuk tanda tanya. 1198 01:03:55,710 --> 01:03:59,100 Jadi, jika kita tatal ke bawah di mana saya perlu untuk benar-benar menghuraikan data. 1199 01:03:59,100 --> 01:04:01,850 >> Jadi jangan menunda oleh semacam ini nama-nama yang panjang. 1200 01:04:01,850 --> 01:04:06,580 Anda boleh mencari dalam Apple tapak pemaju banyak 1201 01:04:06,580 --> 01:04:09,620 rujukan kepada semua objek dan semua proses 1202 01:04:09,620 --> 01:04:11,170 yang benar-benar membuat ini mungkin. 1203 01:04:11,170 --> 01:04:15,990 Tetapi perhatikan bahawa ini adalah pada dasarnya fungsi di mana saya lulus beberapa data. 1204 01:04:15,990 --> 01:04:18,410 Dan saya kembali beberapa jenis data. 1205 01:04:18,410 --> 01:04:24,190 Dan saya perlu menggunakan ini sebagai kata kunci untuk menukar ke nsdictionary ini? 1206 01:04:24,190 --> 01:04:26,490 Yang sekali lagi, satu nsdictionary pilihan. 1207 01:04:26,490 --> 01:04:31,070 Maka yang mana saya perlu memeriksa untuk melihat jika ia wujud. 1208 01:04:31,070 --> 01:04:37,130 >> Jadi saya boleh menggunakan bahawa jika membiarkan setaraf berjaya dihuraikan, 1209 01:04:37,130 --> 01:04:40,620 maka saya tahu bahawa bahawa pilihan sebenarnya mengandungi beberapa data. 1210 01:04:40,620 --> 01:04:43,840 Atau apa yang saya lakukan di sini adalah untuk hanya menganggap bahawa jika terdapat 1211 01:04:43,840 --> 01:04:49,067 sebarang kesilapan yang ia sebenarnya selamat. 1212 01:04:49,067 --> 01:04:51,400 Baiklah, saya ingin mengucapkan terima kasih kepada anda semua kerana sudi datang. 1213 01:04:51,400 --> 01:04:53,540 Saya tahu ini adalah banyak, tetapi ia hanya satu jam 1214 01:04:53,540 --> 01:04:55,920 untuk bercakap tentang beberapa barangan cukup maju. 1215 01:04:55,920 --> 01:04:59,640 Dan supaya mudah-mudahan anda akan mendapat peluang untuk memuat turun semua kod 1216 01:04:59,640 --> 01:05:01,657 dan mengambil yang lebih baik, lebih rupa menyeluruh di ia. 1217 01:05:01,657 --> 01:05:04,240 Semacam meyakinkan diri anda daripada semua barangan yang sedang berlaku. 1218 01:05:04,240 --> 01:05:06,800 Dan saya ingin mengucapkan terima kasih kepada anda semua, sekali lagi, untuk datang. 1219 01:05:06,800 --> 01:05:08,760 Dan semoga berjaya dengan projek akhir anda. 1220 01:05:08,760 --> 01:05:10,600 Mempunyai hari yang hebat. 1221 01:05:10,600 --> 01:05:11,467