1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Hei, bagaimana itu ia pergi semua orang? 3 00:00:13,590 --> 00:00:20,250 Dan ini adalah App IOS pengaturcaraan c objektif seminar. 4 00:00:20,250 --> 00:00:21,520 Dan nama-Ku Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Saya junior Lowell sekarang, menumpukan perhatian dalam bidang sains komputer. 6 00:00:26,114 --> 00:00:28,030 Jadi, dalam seminar ini saya akan mengajar anda semua 7 00:00:28,030 --> 00:00:30,770 sedikit tentang bagaimana untuk membuat aplikasi. 8 00:00:30,770 --> 00:00:33,030 Yay, teruja untuk itu. 9 00:00:33,030 --> 00:00:36,790 >> Jadi sebelum kita mula menyelam ke sebelah pengaturcaraan sebenar, 10 00:00:36,790 --> 00:00:41,840 mari kita benar-benar cepat bercakap tentang mengapa anda mungkin mahu membina sebuah aplikasi iOS? 11 00:00:41,840 --> 00:00:43,940 Mengapa iOS begitu menggerunkan? 12 00:00:43,940 --> 00:00:47,250 Jadi masalah yang pertama, yang pertama perkara yang cukup menggerunkan bagi kita, 13 00:00:47,250 --> 00:00:51,190 terutamanya sebagai CS50 yang pelajar, adalah bahawa iOS 14 00:00:51,190 --> 00:00:55,860 menggunakan Objektif C. Nah, ada bahasa baru dipanggil Swift, 15 00:00:55,860 --> 00:00:58,260 tetapi kita tidak akan menggunakan bahawa dalam seminar ini. 16 00:00:58,260 --> 00:01:01,540 Jika anda berminat untuk Swift, terdapat adalah satu seminar bebas tentang itu. 17 00:01:01,540 --> 00:01:05,590 Tetapi Objektif C pada dasarnya yang superset C. Maksud 18 00:01:05,590 --> 00:01:10,230 bahawa semua yang anda gunakan dalam C boleh diterjemahkan ke dalam Objektif C 19 00:01:10,230 --> 00:01:11,630 sangat mudah. 20 00:01:11,630 --> 00:01:15,730 >> Seperti yang anda lihat nanti, bahawa sesungguhnya terdapat beberapa sintaks paling asas, adalah 21 00:01:15,730 --> 00:01:19,790 pada dasarnya perkara yang sama, C dan Objektif C. Jadi, 22 00:01:19,790 --> 00:01:22,860 kerana anda telah mengambil CS50 sehingga sejauh ini, anda sudah 23 00:01:22,860 --> 00:01:26,500 tahu Objektif C, sekurang-kurangnya 40%. 24 00:01:26,500 --> 00:01:30,720 Juga, Apple mempunyai benar-benar API yang mantap untuk iOS. 25 00:01:30,720 --> 00:01:33,750 Terdapat banyak benar-benar gila perkara yang boleh anda lakukan dengan ia. 26 00:01:33,750 --> 00:01:36,760 Satu di antaranya adalah seseorang sebenarnya mencipta sebuah aplikasi iOS 27 00:01:36,760 --> 00:01:40,600 untuk mengawal kereta, yang cukup menarik. 28 00:01:40,600 --> 00:01:42,610 Mungkin helikopter adalah lebih menarik. 29 00:01:42,610 --> 00:01:47,020 Tetapi itulah bagaimana kuat API iOS boleh. 30 00:01:47,020 --> 00:01:49,340 >> Dan seperti yang anda mungkin mempunyai digambarkan sekarang, 31 00:01:49,340 --> 00:01:53,000 limpahan tindanan mungkin salah satu sumber yang paling penting dalam talian 32 00:01:53,000 --> 00:01:54,250 disediakan untuk anda. 33 00:01:54,250 --> 00:01:58,090 Dan berita baik, bagi tiap-tiap masalah tunggal anda boleh mungkin 34 00:01:58,090 --> 00:02:01,840 memikirkan sambil membina anda projek akhir Objektif C, 35 00:02:01,840 --> 00:02:05,910 ada kemungkinan besar jawapan timbunan limpahan. 36 00:02:05,910 --> 00:02:07,420 Ia hanya menggerunkan. 37 00:02:07,420 --> 00:02:12,780 Selain itu, iOS adalah benar-benar platform 38 00:02:12,780 --> 00:02:16,260 di mana anda boleh mencapai besar penonton dengan sedikit usaha. 39 00:02:16,260 --> 00:02:20,170 Ia tidak seperti Android, di mana semua ini cukup berpecah-belah. 40 00:02:20,170 --> 00:02:22,540 >> Semua iOS adalah bersatu. 41 00:02:22,540 --> 00:02:25,920 Dan selagi anda membuat sebuah aplikasi untuk iPhone, 42 00:02:25,920 --> 00:02:31,260 anda boleh dengan mudah pelabuhan itu untuk iPad, iPad mini, atau saiz iPhone berbeza. 43 00:02:31,260 --> 00:02:33,050 Semua ini adalah benar-benar mudah. 44 00:02:33,050 --> 00:02:36,430 Dan ia hanya benar-benar baik untuk menarik hati rakan-rakan anda. 45 00:02:36,430 --> 00:02:38,920 Anda hanya boleh memegang iPhone dan memberitahu rakan anda hey, 46 00:02:38,920 --> 00:02:40,250 ini adalah app saya membuat. 47 00:02:40,250 --> 00:02:43,860 Anda boleh berbuat demikian untuk apa-apa aplikasi desktop, yang bagus. 48 00:02:43,860 --> 00:02:48,870 >> Baiklah, sekarang mari kita benar-benar mendapatkan ke dalam bahasa Objektif C. 49 00:02:48,870 --> 00:02:52,910 Jadi mengapa tidak kita mulakan dengan beberapa sintaks benar-benar asas. 50 00:02:52,910 --> 00:02:57,410 Seperti yang saya nyatakan sebelum Objektif C Ia pada dasarnya superset C. 51 00:02:57,410 --> 00:03:01,860 Jadi banyak sintaks asas adalah sebenarnya betul-betul sama. 52 00:03:01,860 --> 00:03:06,150 Mengisytiharkan pembolehubah dan menambah dua pembolehubah bersama 53 00:03:06,150 --> 00:03:09,440 adalah betul-betul seperti yang telah kami lakukan di Mario. 54 00:03:09,440 --> 00:03:11,140 Tiada yang baru di sini. 55 00:03:11,140 --> 00:03:17,370 >> Begitu juga dengan penginap untuk gelung dan juga keadaan yang sama. 56 00:03:17,370 --> 00:03:22,370 Anda boleh melakukan untuk gelung seperti anda telah lakukan didalam Mario [didengar]. 57 00:03:22,370 --> 00:03:26,280 Dan anda boleh melakukan syarat sama seperti apa yang anda 58 00:03:26,280 --> 00:03:29,240 telah melakukan dalam p sebelumnya set anda. 59 00:03:29,240 --> 00:03:33,400 Walau bagaimanapun, Objektif C tidak benar-benar C, 60 00:03:33,400 --> 00:03:36,640 dan ada sesuatu yang adalah jenis pelik mengenainya. 61 00:03:36,640 --> 00:03:42,340 >> Yang pertama adalah bahawa apabila anda berada melakukan pengaturcaraan C, anda biasanya memanggil 62 00:03:42,340 --> 00:03:46,310 termasuk dan kemudian nama perpustakaan. 63 00:03:46,310 --> 00:03:49,860 Tetapi dalam Objektif C anda memanggil import itu. 64 00:03:49,860 --> 00:03:53,100 Pada dasarnya berkata fungsi, nama sahaja yang berbeza. 65 00:03:53,100 --> 00:03:55,940 Dan tali-tali adalah sebenarnya sedikit pelik. 66 00:03:55,940 --> 00:03:58,250 Anda boleh melihat bahawa yang pertama perkara yang jenis pelik 67 00:03:58,250 --> 00:04:04,190 adalah bahawa anda mempunyai cukup weird-- sorry-- anda mempunyai NS cukup pelik 68 00:04:04,190 --> 00:04:04,960 mendaftar di sini. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Dan perkara yang kedua itulah jenis pelik 71 00:04:09,160 --> 00:04:14,090 adalah anda mempunyai sekurang-tanda sebelum sebenarnya mengisytiharkan tali. 72 00:04:14,090 --> 00:04:19,209 Jadi pada dasarnya menunjukkan tanda bahawa rentetan bukan sahaja rentetan, 73 00:04:19,209 --> 00:04:20,880 ia sebenarnya objek. 74 00:04:20,880 --> 00:04:22,780 Kami akan menjelaskan yang kemudiannya jadi tidak 75 00:04:22,780 --> 00:04:25,800 panik jika anda tidak lakukan memahami apa yang bermakna. 76 00:04:25,800 --> 00:04:29,980 Dan percetakan untuk konsol adalah sedikit berbeza kerana di C kita panggil printf, 77 00:04:29,980 --> 00:04:33,350 tetapi dalam Objektif C kita memanggil [didengar]. 78 00:04:33,350 --> 00:04:35,640 >> Anda mungkin tertanya-tanya apa itu. 79 00:04:35,640 --> 00:04:38,070 Yang pada dasarnya printf, hanya bahasa yang berbeza. 80 00:04:38,070 --> 00:04:41,370 Tepat penggunaan yang sama, tepat fungsi yang sama. 81 00:04:41,370 --> 00:04:44,060 Baik ia ternyata bahawa Objektif C sebenarnya 82 00:04:44,060 --> 00:04:50,040 mempunyai ns awalan dalam hampir segala-galanya, setiap jenis data asas, 83 00:04:50,040 --> 00:04:52,690 nsstring, nsarray, nsdictionary. 84 00:04:52,690 --> 00:04:56,340 Sebabnya adalah ns sebenarnya berdiri untuk langkah seterusnya, 85 00:04:56,340 --> 00:04:59,980 yang merupakan suatu syarikat yang Steve Jobs telah ditubuhkan, 86 00:04:59,980 --> 00:05:03,960 yang merupakan suatu syarikat di mana bahasa Objektif C dilahirkan. 87 00:05:03,960 --> 00:05:06,140 Jadi ini adalah pada dasarnya tradisi. 88 00:05:06,140 --> 00:05:09,010 Saya tahu ia adalah sedikit pelik, tetapi ia Apple. 89 00:05:09,010 --> 00:05:16,840 >> Jadi sesuatu yang walaupun weirder dari itu adalah suatu akuan fungsi. 90 00:05:16,840 --> 00:05:22,600 Ini adalah sangat berbeza daripada apa yang kita lihat dalam C, kerana di sini ia sebenarnya 91 00:05:22,600 --> 00:05:25,190 tidak kelihatan seperti C lagi. 92 00:05:25,190 --> 00:05:28,810 Apa yang anda perlu here-- oleh cara ini tidak adalah titik peluru, 93 00:05:28,810 --> 00:05:30,690 ini adalah tanda tolak. 94 00:05:30,690 --> 00:05:36,440 Anda mempunyai kurungan tanda tolak tidak sah dan kemudian nama fungsi. 95 00:05:36,440 --> 00:05:38,450 Mari kita katakan jika kita mempunyai hello dunia, maka 96 00:05:38,450 --> 00:05:42,820 Jenis pulangan itu akan menjadi tidak sah kerana kita kembali apa-apa. 97 00:05:42,820 --> 00:05:44,680 >> Apa yang akan benar-benar pelik ialah apabila anda 98 00:05:44,680 --> 00:05:49,580 yang mempunyai lebih daripada satu parameter lulus ke fungsi yang sama 99 00:05:49,580 --> 00:05:53,870 akan menjadi benar-benar pelik seperti yang ditunjukkan di sini. 100 00:05:53,870 --> 00:05:58,230 Kami mempunyai nama kaedah, addInt dipanggil untuk [didengar] 101 00:05:58,230 --> 00:06:00,370 dan kami lulus satu parameter. 102 00:06:00,370 --> 00:06:05,170 Tetapi selepas itu, kita mempunyai lebih nama panggilan dengan kaedah. 103 00:06:05,170 --> 00:06:08,500 Dan selepas dengan kami lulus parameter kedua. 104 00:06:08,500 --> 00:06:11,940 Ini sebenarnya sedikit pelik, tetapi semua ini pengisytiharan fungsi 105 00:06:11,940 --> 00:06:14,770 mengikuti corak yang sama seperti ini. 106 00:06:14,770 --> 00:06:17,450 >> Kami mempunyai tanda tolak untuk memulakan. 107 00:06:17,450 --> 00:06:21,550 Tanda tolak boleh menjadi tanda tambah kadang-kadang berdasarkan jenis kaedah apa 108 00:06:21,550 --> 00:06:22,340 adalah ia. 109 00:06:22,340 --> 00:06:25,000 Kaedah pada dasarnya nama lain bagi fungsi. 110 00:06:25,000 --> 00:06:26,760 Dan kita akan menjelaskan bahwa kemudian, ketika 111 00:06:26,760 --> 00:06:30,580 kita berbicara tentang objek pengaturcaraan berorientasikan. 112 00:06:30,580 --> 00:06:34,300 Anda pertama menentukan pulangan menaip di dalam kurungan, 113 00:06:34,300 --> 00:06:37,450 selepas itu datang nama kaedah. 114 00:06:37,450 --> 00:06:40,310 Anda lulus satu parameter. 115 00:06:40,310 --> 00:06:44,750 Dan jika anda mempunyai lebih banyak parameter anda perlu untuk melanjutkan nama kaedah 116 00:06:44,750 --> 00:06:46,770 dan pada dasarnya menulis sesuatu yang lebih di sini. 117 00:06:46,770 --> 00:06:48,090 >> Ia boleh menjadi apa sahaja yang anda mahu. 118 00:06:48,090 --> 00:06:50,140 Dalam kes kita itu dengan. 119 00:06:50,140 --> 00:06:56,160 Tetapi anda boleh mengatakan akhir, atau atau, atau abc bar penuh, apa sahaja yang anda mahu. 120 00:06:56,160 --> 00:06:59,500 Dan kemudian selepas itu anda lulus parameter b. 121 00:06:59,500 --> 00:07:01,750 Ini adalah benar-benar pelik konvensyen tetapi kami 122 00:07:01,750 --> 00:07:05,800 akan melihat mengapa Apple mahu untuk melakukannya dengan cepat. 123 00:07:05,800 --> 00:07:10,530 Jadi bagaimana anda memanggil fungsi? 124 00:07:10,530 --> 00:07:15,520 Memanggil satu majlis di Objektif C juga berbeza dari C. 125 00:07:15,520 --> 00:07:18,170 >> Sebenarnya, memanggil fungsi dalam C Objektif 126 00:07:18,170 --> 00:07:21,030 adalah lebih seperti anda bercakap dengan seseorang. 127 00:07:21,030 --> 00:07:27,030 Di sini kita mempunyai diri, yang dipanggil objek. 128 00:07:27,030 --> 00:07:33,830 Anda pada dasarnya memberitahu membantah diri untuk mengatakan "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Itulah bagaimana untuk memanggil fungsi. 130 00:07:36,830 --> 00:07:41,690 Satu objek dan nama kaedah digabungkan dengan satu sama lain. 131 00:07:41,690 --> 00:07:49,600 Dan ini adalah di mana sambungan yang pelik untuk nama kaedah benar-benar datang ke dalam bermain. 132 00:07:49,600 --> 00:07:52,150 >> Mari kita lihat contoh kedua. 133 00:07:52,150 --> 00:07:56,780 Kami hanya ditakrifkan kaedah yang dipanggil addInt dengan blah blah blah. 134 00:07:56,780 --> 00:08:00,066 Jadi dalam kes ini apabila anda panggil bahawa [tertentu? mesej?] ia akan 135 00:08:00,066 --> 00:08:02,035 kelihatan seperti addInt diri: 10 dengan: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Ia kedengaran seperti bahasa Inggeris. 138 00:08:08,070 --> 00:08:11,980 Walaupun majlis itu pengisytiharan fungsi adalah pelik, 139 00:08:11,980 --> 00:08:15,600 titik Objektif C corak akuan kaedah, 140 00:08:15,600 --> 00:08:18,830 ialah apabila anda panggil fungsi atau kaedah 141 00:08:18,830 --> 00:08:21,980 ia akan berbunyi seperti sebenar bahasa Inggeris. 142 00:08:21,980 --> 00:08:25,270 Sehingga sangat intuitif sebaik sahaja anda masuk ke dalam. 143 00:08:25,270 --> 00:08:28,740 >> Terutamanya dalam kes ini, di mana anda boleh pada dasarnya 144 00:08:28,740 --> 00:08:33,010 melihat bahawa nama fungsi adalah semacam mendokumenkan sendiri. 145 00:08:33,010 --> 00:08:35,390 Anda tidak perlu apa-apa penjelasan lebih untuk melihat 146 00:08:35,390 --> 00:08:42,770 apa sebenarnya yang berlaku, apa yang betul-betul satu parameter lakukan. 147 00:08:42,770 --> 00:08:48,470 Melangkah lebih dari itu, mari kita bercakap sedikit sedikit tentang pengaturcaraan berorientasikan objek. 148 00:08:48,470 --> 00:08:52,160 Pengaturcaraan berorientasikan objek adalah salah satu pengaturcaraan asas 149 00:08:52,160 --> 00:08:57,110 teknik atau corak yang digunakan oleh C. Objektif Objektif C 150 00:08:57,110 --> 00:09:03,110 dipanggil Objektif C, tidak C, atas sebab yang benar-benar baik. 151 00:09:03,110 --> 00:09:07,560 >> Jadi sebelum kita masuk ke dalam C sintaks Objektif, 152 00:09:07,560 --> 00:09:11,670 Mari kita benar-benar cepat melihat apa sebenarnya objek. 153 00:09:11,670 --> 00:09:15,480 Kita mungkin telah melakukan sesuatu seperti objek sebelum, yang 154 00:09:15,480 --> 00:09:19,780 dipanggil struct apabila anda melaksanakan pokok atau senarai yang berkaitan 155 00:09:19,780 --> 00:09:25,730 atau [? cuba. ?] Jadi, itu dasarnya seperti struct yang, 156 00:09:25,730 --> 00:09:28,560 tetapi ia lebih kuat daripada itu. 157 00:09:28,560 --> 00:09:33,150 Satu objek mempunyai kaedah dan ciri-ciri. 158 00:09:33,150 --> 00:09:35,310 Kaedah pada dasarnya fungsi. 159 00:09:35,310 --> 00:09:39,480 Pada asasnya berfungsi bahawa khusus kepada objek tertentu. 160 00:09:39,480 --> 00:09:45,440 >> Dan sifat-sifat yang pada dasarnya bidang yang anda tentukan dalam struct itu. 161 00:09:45,440 --> 00:09:48,500 Jadi bagi setiap objek tunggal kami mempunyai beberapa harta 162 00:09:48,500 --> 00:09:53,160 yang mempunyai beberapa pembolehubah yang khusus kepada objek. 163 00:09:53,160 --> 00:09:57,170 Dan kita mempunyai beberapa fungsi yang juga khusus kepada objek. 164 00:09:57,170 --> 00:10:01,180 Dan fungsi yang dipanggil kaedah dan pembolehubah dipanggil hartanah. 165 00:10:01,180 --> 00:10:03,190 Ia hanya nama mewah. 166 00:10:03,190 --> 00:10:10,440 Walaupun fakta anda, setiap pandangan tunggal anda lihat apabila anda membuka aplikasi iOS, 167 00:10:10,440 --> 00:10:17,720 mari kita hanya mengatakan Twitter atau Facebook, setiap pandangan tunggal yang anda lihat adalah objek. 168 00:10:17,720 --> 00:10:22,110 Dan walaupun keseluruhan app adalah objek untuk memulakan dengan. 169 00:10:22,110 --> 00:10:25,340 Konsep yang sangat menarik. 170 00:10:25,340 --> 00:10:28,480 >> Dan mengapa kita mahu objek pengaturcaraan berorientasikan? 171 00:10:28,480 --> 00:10:33,530 Jadi anda boleh bayangkan bahawa apabila anda program itu mendapat cukup rumit. 172 00:10:33,530 --> 00:10:36,400 Mari kita katakan apabila anda melaksanakan papan catur, 173 00:10:36,400 --> 00:10:40,020 logik yang akan yang benar-benar rumit. 174 00:10:40,020 --> 00:10:43,280 Anda mempunyai 36 berbeza keping, supaya jika anda 175 00:10:43,280 --> 00:10:48,370 mahu menulis logik untuk semua 36 keping yang berbeza dalam permainan catur, 176 00:10:48,370 --> 00:10:52,150 yang akan menjadi banyak fungsi dan pembolehubah yang berbeza. 177 00:10:52,150 --> 00:10:54,070 Ia banyak masalah. 178 00:10:54,070 --> 00:10:58,980 Dan mungkin anda akan menulis kaedah yang berlainan atau fungsi yang berbeza 179 00:10:58,980 --> 00:11:03,950 untuk setiap keping untuk betul-betul mengawal apa yang mereka lakukan. 180 00:11:03,950 --> 00:11:08,830 >> Tetapi jika anda lakukan objek berorientasikan pengaturcaraan, semua serpihan ini 181 00:11:08,830 --> 00:11:12,440 boleh disarikan ke satu objek tunggal. 182 00:11:12,440 --> 00:11:16,111 Dan objek akan mempunyai beberapa biasa hartanah, seperti jenis apa yang sekeping 183 00:11:16,111 --> 00:11:16,610 adalah ia? 184 00:11:16,610 --> 00:11:17,740 Apakah warna ia? 185 00:11:17,740 --> 00:11:19,480 Bagaimana ia boleh bergerak? 186 00:11:19,480 --> 00:11:24,660 Dan dengan itu kamu telah banyak dipermudahkan logik itu. 187 00:11:24,660 --> 00:11:28,480 Jadi ia hanya benar-benar cara yang baik untuk membuat program yang rumit, 188 00:11:28,480 --> 00:11:33,700 dan hubungan hierarki dalam program ini, sangat mudah. 189 00:11:33,700 --> 00:11:36,800 Seperti yang kita akan melihat kenapa dengan cepat apabila 190 00:11:36,800 --> 00:11:39,660 kita sebenarnya lakukan programming-- apabila kita benar-benar 191 00:11:39,660 --> 00:11:42,830 melakukan suatu kod S sesi pengaturcaraan kemudian. 192 00:11:42,830 --> 00:11:48,120 >> Baik di samping itu, pengaturcaraan berorientasikan objek 193 00:11:48,120 --> 00:11:50,030 hanya banyak keseronokan. 194 00:11:50,030 --> 00:11:51,990 Anda mendapat untuk mereka bentuk objek anda sendiri. 195 00:11:51,990 --> 00:11:56,080 Anda mendapat untuk mereka bentuk apakah ia kelihatan seperti sendiri. 196 00:11:56,080 --> 00:11:58,250 Tidak ada jawapan yang tepat untuk itu. 197 00:11:58,250 --> 00:12:02,940 Dan ia benar-benar menarik. 198 00:12:02,940 --> 00:12:07,270 Jadi dalam pengaturcaraan berorientasikan objek, dua konsep asas 199 00:12:07,270 --> 00:12:10,130 akan menjadi kelas dan contoh. 200 00:12:10,130 --> 00:12:13,570 Kelas A pada dasarnya templat untuk objek. 201 00:12:13,570 --> 00:12:18,070 Dan contoh yang pada dasarnya satu objek tertentu. 202 00:12:18,070 --> 00:12:21,090 >> Mari kita katakan anda membuat cookie. 203 00:12:21,090 --> 00:12:24,800 Dalam kes ini, setiap satu cookie anda sebenarnya berakhir dengan 204 00:12:24,800 --> 00:12:27,310 akan menjadi objek. 205 00:12:27,310 --> 00:12:35,830 Tetapi plat cookie yang anda gunakan untuk membakar semua cookies akan menjadi sebuah kelas. 206 00:12:35,830 --> 00:12:37,880 Kelas A pada dasarnya templat. 207 00:12:37,880 --> 00:12:46,170 Dan contoh yang akan menjadi salah satu tertentu objek yang diwujudkan daripada kelas itu. 208 00:12:46,170 --> 00:12:49,970 >> Dan contoh yang akan diwujudkan berdasarkan pengisytiharan kelas, 209 00:12:49,970 --> 00:12:56,760 seperti yang kita lihat dalam slaid kemudian. 210 00:12:56,760 --> 00:13:00,010 Jadi mari kita benar-benar melakukan yang benar-benar contoh cepat [didengar]. 211 00:13:00,010 --> 00:13:04,280 Katakan kita mengisytiharkan objek untuk kucing. 212 00:13:04,280 --> 00:13:07,930 Objek itu perlu have-- kelas kucing harus 213 00:13:07,930 --> 00:13:11,260 mempunyai beberapa ciri-ciri dan kaedah. 214 00:13:11,260 --> 00:13:17,300 Apakah jenis hartanah yang sepatutnya kelas have-- harus kucing mempunyai? 215 00:13:17,300 --> 00:13:20,580 >> Sebagai contoh, warna, umur dan baka, mereka 216 00:13:20,580 --> 00:13:24,440 akan menjadi pembolehubah yang khusus untuk setiap kucing. 217 00:13:24,440 --> 00:13:27,790 Dan orang-orang adalah beberapa perkara yang kita gunakan untuk menggambarkan kucing. 218 00:13:27,790 --> 00:13:31,880 Apakah jenis kaedah, atau apa yang boleh kucing lakukan? 219 00:13:31,880 --> 00:13:37,160 Beberapa contoh cepat akan mengejar tetikus, makan ikan atau hanya Meow. 220 00:13:37,160 --> 00:13:40,900 Ini adalah benar-benar cepat contoh kelas kucing. 221 00:13:40,900 --> 00:13:46,920 Dan yang benar-benar khusus objek kucing akan menjadi kucing 222 00:13:46,920 --> 00:13:50,930 di mana kita menentukan warna, umur dan baka. 223 00:13:50,930 --> 00:13:53,790 >> Dalam kes itu, objek kami adalah tidak lagi kelas lagi. 224 00:13:53,790 --> 00:14:00,010 Kami menyalin template dari kelas dan kita menentukan setiap maklumat khusus 225 00:14:00,010 --> 00:14:04,510 dengan objek tertentu untuk menjadikannya bebas. 226 00:14:04,510 --> 00:14:09,350 Dan apabila anda panggil kaedah dalam objek, 227 00:14:09,350 --> 00:14:16,640 anda hanya memanggil Meow pada objek, yang kucing anda buat. 228 00:14:16,640 --> 00:14:19,020 >> Mungkin anda akan mencetak sesuatu seperti "Hello World! 229 00:14:19,020 --> 00:14:20,000 Meow. " 230 00:14:20,000 --> 00:14:22,110 Cukup comel. 231 00:14:22,110 --> 00:14:24,500 Baiklah, mari kita masuk ke dalam beberapa butiran dalam maklumat 232 00:14:24,500 --> 00:14:30,650 dan melihat apa sebenarnya adakah itu diterjemahkan menjadi pengaturcaraan iOS. 233 00:14:30,650 --> 00:14:36,500 Jadi dalam iOS pengaturcaraan setiap tunggal kelas akan dilaksanakan dalam dua fail. 234 00:14:36,500 --> 00:14:41,420 Satu fail di sini, yang dipanggil antara muka. 235 00:14:41,420 --> 00:14:45,300 Fail lain di sini, yang dipanggil pelaksanaan. 236 00:14:45,300 --> 00:14:48,890 >> Biasanya antara muka akan mempunyai extension.h 237 00:14:48,890 --> 00:14:51,740 seperti yang kita lihat di perpustakaan C. 238 00:14:51,740 --> 00:14:56,340 Dan fail pelaksanaan adalah akan mempunyai extension.n. 239 00:14:56,340 --> 00:14:57,260 Agak pelik. 240 00:14:57,260 --> 00:15:01,270 Tetapi .N bermakna sebenarnya .c, tidak ada perbezaan asas di antara orang-orang 241 00:15:01,270 --> 00:15:02,100 dua. 242 00:15:02,100 --> 00:15:06,650 Jadi dalam kes ini, kita dapat melihat bahawa kami mengisytiharkan muka, Cat: objek. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Yang terkenal sebagai warisan. 245 00:15:13,760 --> 00:15:19,170 Kami pada dasarnya mewarisi yang kelas kucing dari kelas objek. 246 00:15:19,170 --> 00:15:24,790 Jadi tiap-tiap harta dan kaedah yang sebelum ini ditakrifkan dalam kelas objek 247 00:15:24,790 --> 00:15:28,560 akan secara automatik ditakrifkan dalam kelas kucing juga. 248 00:15:28,560 --> 00:15:35,900 >> Selain itu, kami menentukan warna, baka, dan umur, tiga pembolehubah. 249 00:15:35,900 --> 00:15:39,360 Yang benar-benar kelihatan seperti sesuatu yang anda lakukan. 250 00:15:39,360 --> 00:15:41,770 Ia kelihatan seperti struct. 251 00:15:41,770 --> 00:15:44,950 Yang pada dasarnya sintaks untuk pengisytiharan struct, 252 00:15:44,950 --> 00:15:47,710 dan yang benar-benar betul. 253 00:15:47,710 --> 00:15:51,825 Dan sejak saya nyatakan sebelum ini, perbezaan struct yang 254 00:15:51,825 --> 00:15:53,960 dan objek, salah satu daripada perbezaan asas 255 00:15:53,960 --> 00:15:59,080 adalah bahawa objek mempunyai kaedah, manakala struct yang hanya mempunyai pembolehubah. 256 00:15:59,080 --> 00:16:03,450 Jadi sebagai tambahan kepada sifat-sifat atau pembolehubah kami buat bagi objek, 257 00:16:03,450 --> 00:16:05,700 kita menentukan kaedah tertentu. 258 00:16:05,700 --> 00:16:09,720 >> Mari kita katakan di sini kita mempunyai dua kaedah, satu adalah Meow, 259 00:16:09,720 --> 00:16:12,460 satu sama lain adalah tetikus mengejar. 260 00:16:12,460 --> 00:16:18,600 Kami mungkin mahu lulus parameter berdasarkan kaedah kami sebelum ini 261 00:16:18,600 --> 00:16:20,440 corak perisytiharan. 262 00:16:20,440 --> 00:16:22,160 Anda mungkin mahu lulus tetikus. 263 00:16:22,160 --> 00:16:25,180 Dan anda mungkin akan mahu untuk kembali yang menandakan bool 264 00:16:25,180 --> 00:16:30,010 jika kucing anda mempunyai berjaya ditangkap tetikus atau tidak. 265 00:16:30,010 --> 00:16:33,170 >> Ini adalah antara muka, tetapi kita boleh melihat bahawa antara muka yang sebenarnya 266 00:16:33,170 --> 00:16:35,150 tidak berbuat apa-apa. 267 00:16:35,150 --> 00:16:40,800 Ia hanya memberitahu program apa exists-- apa yang wujud di dalam kelas kucing. 268 00:16:40,800 --> 00:16:43,640 Jadi dalam usaha untuk program untuk melakukan sesuatu, 269 00:16:43,640 --> 00:16:46,680 kita perlu mempunyai fail pelaksanaan. 270 00:16:46,680 --> 00:16:51,940 Jadi di sini, perkara pertama yang kami lakukan adalah jelas kita mengimport antara muka. 271 00:16:51,940 --> 00:16:56,470 Selepas kita mengimport antara muka, kita menentukan kaedah. 272 00:16:56,470 --> 00:17:00,150 >> Mari kita katakan di sini Meow hanya akan mencetak 273 00:17:00,150 --> 00:17:01,740 "Hello World!" untuk konsol. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Dan selepas pelaksanaan fail, kami cukup banyak dilakukan. 276 00:17:08,460 --> 00:17:14,530 Ini adalah pada dasarnya kelas pengisytiharan untuk satu kelas. 277 00:17:14,530 --> 00:17:19,970 Jadi sekarang soalan menjadi, bagaimana anda mengisytiharkan pembolehubah? 278 00:17:19,970 --> 00:17:26,880 Cara anda menggunakan kelas untuk mewujudkan objek dalam Objektif C ditulis di sini. 279 00:17:26,880 --> 00:17:30,730 >> Anda pertama menentukan bahawa ini adalah penunjuk kucing, 280 00:17:30,730 --> 00:17:38,700 kerana setiap objek dalam Objektif C akhirnya dilaksanakan sebagai penunjuk. 281 00:17:38,700 --> 00:17:46,210 Dan anda memanggil kelas, memanggil mereka sebagai alloc, yang pada dasarnya malloc, 282 00:17:46,210 --> 00:17:51,220 memberitahu sistem operasi yang anda memerlukan ruang memori untuk objek ini. 283 00:17:51,220 --> 00:17:55,780 Selepas itu anda mempunyai objek sudah dan anda hanya memulakan ia. 284 00:17:55,780 --> 00:17:56,780 Ini hanyalah konvensyen. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Saya tahu ia adalah sedikit pelik, tetapi ini sebenarnya adalah bagaimana Apple melakukan barangan. 287 00:18:04,410 --> 00:18:07,130 >> Menetapkan harta-harta yang sebenarnya cukup mudah. 288 00:18:07,130 --> 00:18:09,250 Ia hampir sama dengan apa yang anda lakukan apabila 289 00:18:09,250 --> 00:18:13,780 anda memberikan beberapa tertentu bidang di dalam struct. 290 00:18:13,780 --> 00:18:16,830 Anda hanya perlu pembolehubah nama, nama hartanah, 291 00:18:16,830 --> 00:18:20,140 dan memberikan nilai tertentu kepadanya. 292 00:18:20,140 --> 00:18:24,120 Dan memanggil kaedah yang hampir sama. 293 00:18:24,120 --> 00:18:29,080 Yang memanggil kaedah adalah pada dasarnya apa yang saya bercakap tentang 294 00:18:29,080 --> 00:18:32,390 untuk memanggil mana-mana kaedah di Objektif C. 295 00:18:32,390 --> 00:18:36,660 >> Anda lulus objek, dalam kes ini ia akan menjadi MYCAT, 296 00:18:36,660 --> 00:18:42,490 dan anda lulus nama kaedah. 297 00:18:42,490 --> 00:18:47,130 Seolah-olah anda sedang bercakap dengan objek, MYCAT, yang anda perlu Meow. 298 00:18:47,130 --> 00:18:48,570 Ia agak menarik. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Selepas itu, ada satu corak reka bentuk yang lebih penting 301 00:18:55,680 --> 00:18:59,940 bahawa kita perlu bercakap mengenai sebelum mendapatkan kod S sebenar. 302 00:18:59,940 --> 00:19:03,300 Bahawa corak reka bentuk yang dipanggil acara didorong pengaturcaraan. 303 00:19:03,300 --> 00:19:09,660 Ini juga mungkin salah satu yang paling idea-idea asas dalam pengaturcaraan iOS. 304 00:19:09,660 --> 00:19:14,410 >> Jadi, anda mungkin tidak tahu apa sebenarnya pengaturcaraan adalah acara yang didorong oleh, 305 00:19:14,410 --> 00:19:16,990 tetapi ia tidak benar-benar yang menakutkan. 306 00:19:16,990 --> 00:19:20,400 Well sebenarnya, anda mempunyai telah dilakukan bahawa sebelum. 307 00:19:20,400 --> 00:19:24,894 Ini adalah salah satu daripada laluan anda telah mungkin lagi menulis di terakhir [didengar] 308 00:19:24,894 --> 00:19:26,810 daripada CS50, google.maps.event.addListener (tanda, 309 00:19:26,810 --> 00:19:27,810 "Klik", fungsi () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Dengan menelefon talian ini anda adalah pada dasarnya memberitahu komputer 312 00:19:37,620 --> 00:19:42,650 bahawa setiap kali acara yang dipanggil "Klik" yang berlaku pada penanda, 313 00:19:42,650 --> 00:19:43,630 menggunakan fungsi itu. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Ini adalah sangat berbeza daripada apa yang anda lakukan di mario.c. 316 00:19:50,950 --> 00:19:56,670 Dalam mario.c anda hanya menjalankan program sekali, ia memberikan anda output, 317 00:19:56,670 --> 00:19:58,590 dan anda selesai. 318 00:19:58,590 --> 00:20:02,590 Ini adalah jenis seperti satu program pukulan. 319 00:20:02,590 --> 00:20:05,830 Program acara didorong adalah sangat, sangat berbeza. 320 00:20:05,830 --> 00:20:10,230 Bayangkan, jika Facebook adalah salah satu program pukulan itu tidak benar-benar baik. 321 00:20:10,230 --> 00:20:13,750 Anda hanya pergi ke Facebook sekali dan ia dilakukan. 322 00:20:13,750 --> 00:20:16,700 Ia memberikan anda beberapa output dan anda tidak pernah kembali. 323 00:20:16,700 --> 00:20:19,380 Anda tidak pernah mendapat apa-apa lagi. 324 00:20:19,380 --> 00:20:23,880 >> Jadi di sini, terutamanya corak yang kita gunakan adalah 325 00:20:23,880 --> 00:20:26,940 acara didorong, supaya setiap fungsi akan 326 00:20:26,940 --> 00:20:31,480 ditangkap berdasarkan apa kejadian telah berlaku. 327 00:20:31,480 --> 00:20:34,670 Sebagai contoh, jika kita mempunyai butang dan kami nyatakan 328 00:20:34,670 --> 00:20:39,870 bahawa setiap kali butang yang di klik, memanggil fungsi yang dipanggil "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Dengan cara itu kita boleh benar-benar menguruskan logik fungsi 330 00:20:47,810 --> 00:20:50,560 mengalir dengan cara yang sangat fleksibel. 331 00:20:50,560 --> 00:20:55,840 Pengguna boleh melakukan atau hubungi fungsi yang telah dipanggil. 332 00:20:55,840 --> 00:20:59,900 Ia benar-benar berdasarkan apa yang pengguna lakukan. 333 00:20:59,900 --> 00:21:04,080 >> Oleh itu, kita dapat melihat bahawa ini adalah sebenarnya jauh lebih baik daripada mario.c. 334 00:21:04,080 --> 00:21:07,190 Dan berita baik adalah bahawa itu sebenarnya tidak satu konsep baru. 335 00:21:07,190 --> 00:21:12,140 Anda semua telah dilakukan bahawa dalam masalah yang terakhir ditetapkan. 336 00:21:12,140 --> 00:21:16,640 Jadi dalam Objektif C terdapat tiga gambar rajah yang berbeza 337 00:21:16,640 --> 00:21:19,030 untuk acara didorong pengaturcaraan. 338 00:21:19,030 --> 00:21:21,970 Gambar rajah pertama adalah dipanggil tindakan sasaran, 339 00:21:21,970 --> 00:21:26,990 di mana anda mengikat butang akhbar dengan beberapa fungsi. 340 00:21:26,990 --> 00:21:31,590 Mari kita katakan, apabila anda klik butang beberapa, anda memanggil beberapa fungsi. 341 00:21:31,590 --> 00:21:33,620 Ini adalah tindakan sasaran sangat mudah. 342 00:21:33,620 --> 00:21:35,580 >> Yang kedua adalah sebenarnya satu yang paling sukar, 343 00:21:35,580 --> 00:21:38,450 ia dipanggil delegasi pada protokol. 344 00:21:38,450 --> 00:21:41,800 Kami akan menjelaskan yang secara terperinci kemudian. 345 00:21:41,800 --> 00:21:44,420 Dan cara yang ketiga adalah pemberitahuan. 346 00:21:44,420 --> 00:21:46,770 Ini sebenarnya tidak sangat penting sejauh 347 00:21:46,770 --> 00:21:50,920 kerana kami bimbang, kerana peluang bahawa anda akan menggunakan pemberitahuan 348 00:21:50,920 --> 00:21:53,310 dalam projek akhir anda adalah agak rendah. 349 00:21:53,310 --> 00:21:56,440 Jadi, kita akan melangkau bahagian itu. 350 00:21:56,440 --> 00:21:59,460 >> Dan kami akan menyelam ke dalam delegasi pada protokol. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Jadi apa sebenarnya adalah protokol? 353 00:22:04,470 --> 00:22:06,450 Atau apa sebenarnya delegasi? 354 00:22:06,450 --> 00:22:09,670 Mari kita bercakap tentang protokol untuk memulakan dengan. 355 00:22:09,670 --> 00:22:13,360 Protokol tidak lain hanyalah peristiwa. 356 00:22:13,360 --> 00:22:19,230 Tetapi peristiwa ini diberikan kepada anda oleh Apple untuk memulakan dengan. 357 00:22:19,230 --> 00:22:22,640 Sebagai contoh, saya tidak benar-benar pasti berapa ramai daripada anda 358 00:22:22,640 --> 00:22:27,930 lelaki menggunakan asal Apple mel aplikasi atau kenalan, 359 00:22:27,930 --> 00:22:32,180 tetapi setiap kali anda tatal yang meja dan tekan sel tertentu 360 00:22:32,180 --> 00:22:36,130 di atas meja, iaitu peristiwa. 361 00:22:36,130 --> 00:22:38,330 >> Dan jika anda mahu untuk melakukan peristiwa yang sendiri, 362 00:22:38,330 --> 00:22:40,410 ia sebenarnya sedikit keras. 363 00:22:40,410 --> 00:22:44,880 Jadi Apple telah diberikan bahawa walaupun untuk anda supaya anda boleh hanya terus menggunakan 364 00:22:44,880 --> 00:22:49,610 Sekiranya melakukan sesuatu pada anda sendiri. 365 00:22:49,610 --> 00:22:52,980 Protokol sebenarnya benar-benar, benar-benar digunakan secara meluas 366 00:22:52,980 --> 00:22:58,320 dalam Objektif C. Baik dalam Malah, setiap aplikasi tunggal 367 00:22:58,320 --> 00:23:00,870 mempunyai sesuatu yang terperangkap app perwakilan. 368 00:23:00,870 --> 00:23:06,330 Bahagian dalam halus adalah semua protokol untuk memuatkan app. 369 00:23:06,330 --> 00:23:12,470 >> Mari kita katakan ada acara untuk aplikasi lakukan beban. 370 00:23:12,470 --> 00:23:18,200 Jadi apa yang patut berlaku selepas anda telah mencipta aplikasi, selepas anda membuka aplikasi, 371 00:23:18,200 --> 00:23:22,630 selepas anda menutup aplikasi, atau selepas anda meletakkan iPhone tidur. 372 00:23:22,630 --> 00:23:27,480 Ini semua adalah peristiwa-peristiwa yang mempunyai telah diberikan kepada anda. 373 00:23:27,480 --> 00:23:34,730 Dan asalnya di dalam zarah ini tidak akan ada pelaksanaan. 374 00:23:34,730 --> 00:23:39,750 Apple hanya memberitahu anda bahawa fungsi ini akan berlaku apabila sesuatu peristiwa yang berlaku, 375 00:23:39,750 --> 00:23:44,380 tetapi apa yang anda lakukan dengan fungsi adalah sepenuhnya terpulang kepada anda. 376 00:23:44,380 --> 00:23:49,290 >> Delegasi pada dasarnya memberitahu kelas 377 00:23:49,290 --> 00:23:53,060 bahawa anda perlu mengendalikan protokol ini. 378 00:23:53,060 --> 00:23:55,340 Ia sedikit mengelirukan, tetapi ia akan menjadi 379 00:23:55,340 --> 00:23:59,380 lebih jelas apabila kita lakukan kod dalam tindakan. 380 00:23:59,380 --> 00:24:04,760 Delegasi pada protokol sebenarnya adalah mekanisme amat teguh dalam erti kata 381 00:24:04,760 --> 00:24:08,160 bahawa jika kita buat rombongan untuk kelas tertentu, 382 00:24:08,160 --> 00:24:12,400 kita pada dasarnya boleh mengendalikan semua jenis acara 383 00:24:12,400 --> 00:24:17,040 menggunakan mana-mana golongan yang kita ada, alat yang sangat mudah. 384 00:24:17,040 --> 00:24:21,530 >> Jadi satu contoh cepat untuk delegasi pada protokol 385 00:24:21,530 --> 00:24:24,120 akan apa yang saya bercakap tentang. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Protokol ini khusus dipanggil tableview [didengar] pilih peranan 388 00:24:30,890 --> 00:24:35,480 di [? indeks?] [? masa lalu. ?] Jadi yang ini acara yang akan ditangkap apabila anda 389 00:24:35,480 --> 00:24:39,710 sebenarnya memanfaatkan tertentu sel dalam tableview anda, 390 00:24:39,710 --> 00:24:43,570 mari kita hanya mengatakan dalam mel anda atau dalam apl kenalan anda. 391 00:24:43,570 --> 00:24:48,180 >> Di dalam fungsi yang terdapat asalnya melakukan apa-apa. 392 00:24:48,180 --> 00:24:51,950 Majlis tersebut tidak berbuat apa-apa secara lalai. 393 00:24:51,950 --> 00:24:55,540 Tetapi anda boleh menentukan apa fungsi yang tidak, 394 00:24:55,540 --> 00:24:59,610 diberikan apa yang anda mahu daripada aplikasi anda. 395 00:24:59,610 --> 00:25:01,610 Alat yang sangat mudah. 396 00:25:01,610 --> 00:25:06,840 Dan dengan segala yang yang berkata, saya pada dasarnya 397 00:25:06,840 --> 00:25:11,430 meliputi beberapa sintaks paling asas dan konsep asas untuk Objektif C 398 00:25:11,430 --> 00:25:15,860 pengaturcaraan, dan kita boleh melakukan beberapa kod s. 399 00:25:15,860 --> 00:25:17,980 Lebih menarik. 400 00:25:17,980 --> 00:25:21,070 Jadi s kod sebenarnya adalah sedikit hangat 401 00:25:21,070 --> 00:25:23,330 apabila anda membukanya untuk kali pertama. 402 00:25:23,330 --> 00:25:26,640 >> Satu nota cepat, jadi jika anda mahu melakukan pembangunan iOS, 403 00:25:26,640 --> 00:25:29,630 Saya sangat mengesyorkan anda mempunyai Mac. 404 00:25:29,630 --> 00:25:33,930 Kerana melakukan pembangunan iOS pada Windows adalah benar-benar, benar-benar keras. 405 00:25:33,930 --> 00:25:37,560 Ia boleh dilakukan, tetapi ia benar-benar keras. 406 00:25:37,560 --> 00:25:40,610 Dan anda pasti lakukan tidak mahu menggunakan g mengedit. 407 00:25:40,610 --> 00:25:47,950 Jadi, dalam s kod kita mempunyai beberapa kawasan yang berbeza. 408 00:25:47,950 --> 00:25:53,050 Apabila anda pertama kali membuka s kod anda akan melihat kawasan navigasi, 409 00:25:53,050 --> 00:25:57,470 yang pada dasarnya menunjukkan anda semua fail yang ada di projek semasa anda. 410 00:25:57,470 --> 00:26:03,590 >> Anda mempunyai kawasan bar alat, yang pada dasarnya menguruskan pandangan, 411 00:26:03,590 --> 00:26:08,570 atau beberapa sedikit cepat alat tentang s kod sendiri. 412 00:26:08,570 --> 00:26:11,140 Dan ini adalah kawasan editor sebenar. 413 00:26:11,140 --> 00:26:15,900 Kawasan ini adalah sangat serupa g edit, tetapi jauh lebih baik daripada g mengedit. 414 00:26:15,900 --> 00:26:21,150 Dan dalam bidang ini betul, adalah dipanggil kawasan utiliti. 415 00:26:21,150 --> 00:26:27,170 Kawasan ini menjadi benar-benar berguna ketika anda mencipta antara muka atau menyatakan 416 00:26:27,170 --> 00:26:30,070 beberapa setup cepat untuk aplikasi anda. 417 00:26:30,070 --> 00:26:34,570 >> Dan kawasan yang akhir adalah yang debugging. 418 00:26:34,570 --> 00:26:37,970 Kawasan ini mengandungi konsol. 419 00:26:37,970 --> 00:26:43,170 Jadi, setiap kali anda mengatakan printf, atau nslog dalam kes ini, 420 00:26:43,170 --> 00:26:47,330 semua keputusan anda akan dicetak di sini. 421 00:26:47,330 --> 00:26:48,260 Baiklah? 422 00:26:48,260 --> 00:26:52,090 Saya rasa kita boleh benar-benar cepat melakukan contoh untuk pengaturcaraan iOS. 423 00:26:52,090 --> 00:26:54,220 Dan mari kita sebenarnya membuka kod sehingga s. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Jadi setiap kali anda membuka kod sehingga s, itu akan muncul sesuatu seperti itu. 426 00:27:01,346 --> 00:27:03,220 Ia akan meminta anda apa yang anda mahu lakukan? 427 00:27:03,220 --> 00:27:06,830 Adakah anda ingin memulakan sesuatu rawak, taman permainan, pada dasarnya anda 428 00:27:06,830 --> 00:27:11,250 hanya boleh menguji kod tanpa sebenarnya melakukan apa-apa untuk aplikasi. 429 00:27:11,250 --> 00:27:13,020 >> Adakah anda ingin membuat projek baru? 430 00:27:13,020 --> 00:27:16,660 Atau adakah anda ingin terus bekerja pada projek yang sedia ada? 431 00:27:16,660 --> 00:27:20,270 Dalam kes kami kita akan untuk mewujudkan satu projek baru. 432 00:27:20,270 --> 00:27:22,980 Jadi ia adalah benar-benar baik, s kod sebenarnya sudah mempunyai 433 00:27:22,980 --> 00:27:26,820 diberikan anda beberapa template untuk mencipta objek. 434 00:27:26,820 --> 00:27:32,680 Jika anda mahu melakukan permainan, s kod sebenarnya mempunyai template permainan untuk anda, 435 00:27:32,680 --> 00:27:36,890 mempunyai aplikasi berasaskan halaman, aplikasi berasaskan tab. 436 00:27:36,890 --> 00:27:39,280 Dalam kes ini, kita akan untuk melakukan sesuatu yang sangat mudah, 437 00:27:39,280 --> 00:27:43,230 dan kita akan menggunakan permohonan paparan tunggal. 438 00:27:43,230 --> 00:27:48,270 >> Selepas itu apa yang anda mahu untuk memanggil produk anda, dan apa yang nama, 439 00:27:48,270 --> 00:27:52,760 apa yang pengecam anda, dan bahasa mana yang anda gunakan. 440 00:27:52,760 --> 00:27:57,060 Di sini kita tidak mahu semak menggunakan Teras Data. 441 00:27:57,060 --> 00:28:00,170 Teras Data pada dasarnya ialah databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Jika anda melakukan Teras Data, s kod akan menentukan 443 00:28:05,360 --> 00:28:07,710 banyak kelas lebih rumit untuk anda. 444 00:28:07,710 --> 00:28:12,740 Jadi untuk menyimpan segala-galanya mudah, kami hanya akan melakukan tanpa Teras Data 445 00:28:12,740 --> 00:28:15,290 sekarang. 446 00:28:15,290 --> 00:28:18,030 >> Masalah kita akan menjadi menggunakan adalah bahawa- masalah 447 00:28:18,030 --> 00:28:23,770 kami akan mewujudkan ialah kami pada dasarnya ingin mengimport Mario dari C 448 00:28:23,770 --> 00:28:25,437 untuk aplikasi iOS. 449 00:28:25,437 --> 00:28:26,645 Jadi mari kita memanggil bahawa Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Sudah tentu anda tentukan apa yang anda ingin dimasukkan ke dalam projek anda. 452 00:28:34,880 --> 00:28:37,870 Dan di sana kami pergi. 453 00:28:37,870 --> 00:28:41,390 >> Jadi ini adalah sedikit melanda, tetapi ini sebenarnya 454 00:28:41,390 --> 00:28:43,540 apa yang kita hanya melihat pada slaid. 455 00:28:43,540 --> 00:28:49,710 Dan kawasan yang pertama yang kita lihat sekarang pada dasarnya konfigurasi projek. 456 00:28:49,710 --> 00:28:53,390 Jadi semua yang anda mahu lakukan projek, jenis peranti, 457 00:28:53,390 --> 00:28:58,810 mari kita hanya mengatakan apa jenis peranti adakah anda ingin aplikasi anda untuk muncul di? 458 00:28:58,810 --> 00:29:01,280 Adakah iPhone, iPad atau universal? 459 00:29:01,280 --> 00:29:04,660 Jadi orientasi peranti, semua barangan ini. 460 00:29:04,660 --> 00:29:08,490 Tidak sangat penting, tetapi boleh menjadi, tetapi ini 461 00:29:08,490 --> 00:29:11,050 adalah tempat di mana anda menyediakan projek anda jika anda benar-benar 462 00:29:11,050 --> 00:29:15,180 mahu dihantar ke kedai Apple. 463 00:29:15,180 --> 00:29:20,420 >> Baiklah, mari kita lihat sesuatu yang ada di dalam kod kami. 464 00:29:20,420 --> 00:29:22,360 Mari kita pergi melalui navigasi fail. 465 00:29:22,360 --> 00:29:30,140 Dan ini adalah semua fail yang telah datang dengan template, sangat bagus. 466 00:29:30,140 --> 00:29:35,980 Oleh itu, apabila kita klik salah seorang daripada mereka ini adalah apa yang ia kelihatan seperti. 467 00:29:35,980 --> 00:29:38,530 Hampir sama dengan g mengedit. 468 00:29:38,530 --> 00:29:41,340 Tetapi anda boleh lihat bahawa penonjolan sintaks mungkin 469 00:29:41,340 --> 00:29:42,780 sedikit lebih bagus. 470 00:29:42,780 --> 00:29:45,610 Dan ia sebenarnya lebih berkuasa daripada g penyuntingan. 471 00:29:45,610 --> 00:29:49,970 Dan anda boleh auto lengkap banyak perkara untuk anda, 472 00:29:49,970 --> 00:29:52,370 seperti yang kita lihat dengan cepat. 473 00:29:52,370 --> 00:29:54,100 >> Mari kita membuka kawasan debugging juga. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Baiklah, seperti yang kita lihat, konsol yang tepat di sini. 476 00:30:07,000 --> 00:30:13,840 Ini adalah apa yang anda akan melihat di mana anda berada dalam printf atau nsloging sesuatu. 477 00:30:13,840 --> 00:30:17,155 Jadi tanpa berlengah-lengah lagi, mari kita sebenarnya menyusun aplikasi dan melihat apa yang berlaku. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Satu ciri penting untuk s kod, adalah bahawa kod s 480 00:30:23,410 --> 00:30:25,850 datang dengan simulator iPhone. 481 00:30:25,850 --> 00:30:29,820 Jadi anda tidak perlu mempunyai iPhone untuk mencuba projek anda, 482 00:30:29,820 --> 00:30:34,440 s kod boleh mensimulasikan bahawa untuk anda, seperti yang kita lihat sekarang. 483 00:30:34,440 --> 00:30:36,406 >> Ia cukup bagus. 484 00:30:36,406 --> 00:30:38,640 Ia mengambil sedikit sedikit masa untuk menyusun 485 00:30:38,640 --> 00:30:43,040 dan pada dasarnya kita mempunyai permohonan kosong, 486 00:30:43,040 --> 00:30:44,640 yang sebenarnya tidak apa-apa. 487 00:30:44,640 --> 00:30:46,175 Tetapi ia menyusun. 488 00:30:46,175 --> 00:30:47,380 Hebat juga. 489 00:30:47,380 --> 00:30:50,200 Ini jauh lebih baik daripada C, huh? 490 00:30:50,200 --> 00:30:52,130 Baiklah, maka mari kita cuba untuk menambah sesuatu. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Satu fail yang sedikit pelik di sini dipanggil papan cerita. 493 00:31:02,650 --> 00:31:08,020 Ini sebenarnya yang hebat, ciri hebat untuk s kod. 494 00:31:08,020 --> 00:31:14,170 Kerana di s kod, anda boleh seret sebenarnya dan drop elemen ke antara muka 495 00:31:14,170 --> 00:31:17,430 dan ia secara langsung akan muncul. 496 00:31:17,430 --> 00:31:18,055 Mari kita cuba itu. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Kami drop label di sini, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Kami boleh memusatkan itu. 500 00:31:29,740 --> 00:31:30,970 Cukup sejuk. 501 00:31:30,970 --> 00:31:33,915 Sekarang mari kita menjalankan simulasi henti ini. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Di sini kita mempunyai "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Kita juga tidak boleh mana-mana coding lagi. 505 00:31:40,810 --> 00:31:42,750 Apa yang palang pintu yang sedang berlaku? 506 00:31:42,750 --> 00:31:45,880 Ini adalah bagaimana kuat Interface Builder boleh. 507 00:31:45,880 --> 00:31:48,030 Seseorang bahkan berkata mungkin anda boleh hanya 508 00:31:48,030 --> 00:31:52,800 melengkapkan sebuah aplikasi tanpa bertulis mungkin seribu baris kod 509 00:31:52,800 --> 00:31:54,820 hanya dengan menggunakan Antara Muka Builder. 510 00:31:54,820 --> 00:31:59,680 Tetapi ia mungkin tidak cara terbaik untuk melakukannya. 511 00:31:59,680 --> 00:32:01,670 >> Sekarang mari kita sebenarnya turun ke pengekodan. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Jadi struktur untuk fail sebenarnya benar-benar menarik 514 00:32:08,330 --> 00:32:15,610 kerana, seperti yang anda boleh lihat, terdapat ada fungsi utama mana-mana sahaja. 515 00:32:15,610 --> 00:32:17,466 Lihat? 516 00:32:17,466 --> 00:32:19,340 Seperti yang telah dinyatakan sebelum ini, anda boleh melihat bahawa ini 517 00:32:19,340 --> 00:32:22,830 adalah fail pelaksanaan untuk kelas tertentu. 518 00:32:22,830 --> 00:32:25,690 Tetapi tidak ada mana-mana sahaja utama. 519 00:32:25,690 --> 00:32:27,490 Jadi di mana utama? 520 00:32:27,490 --> 00:32:31,970 Sebenarnya, terdapat satu utama, tetapi utama sebenarnya tersembunyi dari anda. 521 00:32:31,970 --> 00:32:34,560 Yang utama adalah di sini. 522 00:32:34,560 --> 00:32:37,120 Yang kelihatan biasa. 523 00:32:37,120 --> 00:32:41,000 >> Jadi, pada asasnya apa iOS lakukan dalam utama 524 00:32:41,000 --> 00:32:43,540 adalah bahawa setiap kali utama adalah dipanggil, yang pada dasarnya 525 00:32:43,540 --> 00:32:49,000 apabila aplikasi itu dilaksanakan, ia mencipta objek yang dipanggil AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Seperti yang saya nyatakan sebelum ini, keseluruhan app sebenarnya objek dengan sendirinya. 528 00:32:57,350 --> 00:33:02,270 Jadi dengan cara ini, pada dasarnya aplikasi iOS memberitahu pengkompil 529 00:33:02,270 --> 00:33:05,540 OK itu, saya akan membuat produk yang dipanggil AppDelegate, 530 00:33:05,540 --> 00:33:07,620 dan yang akan menjadi aplikasi saya. 531 00:33:07,620 --> 00:33:09,640 Jadi, anda perlu pergi melalui AppDelegate yang 532 00:33:09,640 --> 00:33:12,040 dan melihat apa yang lelaki itu lakukan. 533 00:33:12,040 --> 00:33:14,850 Tugas saya adalah lakukan untuk saya. 534 00:33:14,850 --> 00:33:22,070 >> Dan dalam AppDelegate anda dapat melihat bahawa terdapat beberapa fungsi benar-benar pelik, 535 00:33:22,070 --> 00:33:25,290 dan sebenarnya kaedah, yang Apple telah diberikan anda. 536 00:33:25,290 --> 00:33:27,464 Apakah ini? 537 00:33:27,464 --> 00:33:31,010 Ini adalah benar-benar hanya protokol yang saya bercakap tentang. 538 00:33:31,010 --> 00:33:35,670 Jadi ini adalah peristiwa-peristiwa yang Apple telah diberikan anda untuk memulakan dengan. 539 00:33:35,670 --> 00:33:38,050 Tidak ada dalam beberapa fungsi sekarang, 540 00:33:38,050 --> 00:33:40,820 tetapi jika kita mahu memulakan sesuatu untuk aplikasi kami 541 00:33:40,820 --> 00:33:46,140 sebelum masuk ke memaparkan sebarang pandangan, kita berbuat demikian di sini. 542 00:33:46,140 --> 00:33:51,150 >> Anda hanya boleh membaca nama dan saya rasa acara ini adalah benar-benar benar-benar jelas. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Jadi sekarang utama telah mewujudkan objek untuk AppDelegate. 545 00:33:58,350 --> 00:34:05,220 Dan apa AppDelegate akan melakukan sebenarnya juga tersembunyi daripada anda. 546 00:34:05,220 --> 00:34:09,250 The AppDelegate akan mula memuatkan saham ViewController itu. 547 00:34:09,250 --> 00:34:13,170 Jadi pada dasarnya akan memulakan memuatkan sehingga semua pandangan yang anda mempunyai 548 00:34:13,170 --> 00:34:17,500 dan hanya menyebabkan pandangan berdasarkan hierarki. 549 00:34:17,500 --> 00:34:21,280 >> Jadi dalam kes ini kita hanya mempunyai satu paparan, yang ada di sini. 550 00:34:21,280 --> 00:34:25,060 Jadi yang merupakan satu-satunya pandangan perkara yang berlaku untuk dipanggil. 551 00:34:25,060 --> 00:34:28,159 Logik ViewController yang tepat di sini. 552 00:34:28,159 --> 00:34:32,159 Ini adalah kod yang sebenarnya mengawal pandangan kita hanya melihat. 553 00:34:32,159 --> 00:34:33,679 Baiklah, mari kita melakukan sesuatu di sini. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Jadi viewDidLoad bunyi seperti sesuatu acara, sedangkan ini juga perwakilan, 556 00:34:50,560 --> 00:34:52,500 ini juga protokol. 557 00:34:52,500 --> 00:34:56,350 >> Jadi apa sahaja pandangan yang dimuatkan, segala-galanya di dalam majlis itu 558 00:34:56,350 --> 00:34:57,920 akan dipanggil. 559 00:34:57,920 --> 00:35:02,840 Dalam kes ini kita perlu melihat "Hello Tianyu! "Sekiranya kita menjalankan program ini. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Ini semakin sedikit perlahan menyusun fail papan cerita. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Baik sesungguhnya kami melihat output untuk itu. 564 00:35:18,190 --> 00:35:20,720 Ia agak sejuk. 565 00:35:20,720 --> 00:35:22,000 Sekarang mari kita benar-benar melakukan Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Saya akan menentukan berfungsi dengan cepat. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: keputusan (int) tahap. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Baiklah, ini adalah sebenarnya yang ditakuti, ciri s kod siap auto. 572 00:36:06,410 --> 00:36:10,680 Oleh itu, apabila anda menulis untuk menaip dan memasukkan, ia telah diberikan sehingga template 573 00:36:10,680 --> 00:36:12,325 untuk anda, yang cukup sejuk. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Yang benar-benar perlu mencari biasa kepada anda semua. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Maaf, itu salah saya. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Baiklah, sejuk. 580 00:37:18,120 --> 00:37:22,710 Logik yang harus melihat benar-benar biasa kepada anda semua, terutama hanya Mario. 581 00:37:22,710 --> 00:37:26,140 >> Tetapi kini kita akan mencetak untuk konsol setiap kali, 582 00:37:26,140 --> 00:37:29,280 kerana kami mahu mengekalkan entah bagaimana menjejaki apa yang kita mencetak. 583 00:37:29,280 --> 00:37:31,810 Kami akan menggunakan mengakibatkan entah bagaimana kemudian, 584 00:37:31,810 --> 00:37:35,010 untuk memaparkan cetak keluar menyebabkan kepada pengguna. 585 00:37:35,010 --> 00:37:37,730 Jadi, kami hanya nslogging segala-galanya, 586 00:37:37,730 --> 00:37:42,410 yang kami menyimpan segala-galanya ke dalam akibat panggilan fungsi, 587 00:37:42,410 --> 00:37:44,070 tetapi logik adalah betul-betul sama. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Selepas kita menyelesaikannya, kita hanya mencetak keputusan kami. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Dan di sini dan bukannya mencetak saya nama, kita akan memanggil fungsi. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Mari kita lihat apa yang berlaku. 594 00:38:18,090 --> 00:38:21,240 Oops, jelas. 595 00:38:21,240 --> 00:38:24,320 Kami mempunyai yang bagus piramid kecil di sini. 596 00:38:24,320 --> 00:38:28,370 Ini adalah pada dasarnya C, kami hanya memanipulasi mana anda memanggil fungsi 597 00:38:28,370 --> 00:38:30,010 dan bagaimana fungsi yang kelihatan seperti. 598 00:38:30,010 --> 00:38:31,560 Ada apa-apa yang berbeza. 599 00:38:31,560 --> 00:38:34,040 Tetapi ini adalah benar-benar tidak sangat menarik di sini, 600 00:38:34,040 --> 00:38:37,500 kerana kita tidak melihat apa-apa dari aplikasi iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Jadi, jika anda benar-benar mempunyai iPhone app-- jika anda benar-benar mempunyai Mario iOS hak 602 00:38:42,120 --> 00:38:45,080 sekarang, anda tidak akan untuk melihat apa-apa yang 603 00:38:45,080 --> 00:38:49,450 mempunyai apa-apa kaitan dengan Mario kerana semua orang output ke dalam konsol 604 00:38:49,450 --> 00:38:51,620 tersembunyi daripada pengguna. 605 00:38:51,620 --> 00:38:53,850 Ini adalah apa yang anda lihat, iaitu "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 Tidak baik. 607 00:38:55,720 --> 00:39:03,090 Sekarang mari kita cuba untuk membuat pengguna melihat apa sebenarnya kami mencetak. 608 00:39:03,090 --> 00:39:06,000 Oleh itu, kita tidak perlu melabelkan lagi. 609 00:39:06,000 --> 00:39:09,800 Mari kita cuba memikirkan sesuatu lain yang mungkin berguna. 610 00:39:09,800 --> 00:39:12,140 >> Terdapat sebenarnya adalah salah satu unsur yang dipanggil 611 00:39:12,140 --> 00:39:16,460 medan teks, yang boleh sangat membantu untuk kita. 612 00:39:16,460 --> 00:39:19,880 Ia pada dasarnya memaparkan kawasan yang teks yang boleh disunting. 613 00:39:19,880 --> 00:39:22,320 Jadi yang kelihatan benar-benar membantu. 614 00:39:22,320 --> 00:39:23,810 Sekarang mari kita tarik dan lepaskan. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, kita mempunyai pandangan teks pada pandangan kami, benar-benar mewah. 617 00:39:32,670 --> 00:39:35,430 Itulah sedikit terlalu besar. 618 00:39:35,430 --> 00:39:38,150 Mari kita menjadikannya lebih kecil. 619 00:39:38,150 --> 00:39:40,290 Letakkanlah di dalam pusat. 620 00:39:40,290 --> 00:39:43,760 Membuatnya lebih kecil juga. 621 00:39:43,760 --> 00:39:50,110 >> Sekarang kita mempunyai pandangan teks, yang kita boleh digunakan untuk mendapat keputusan akhir kami. 622 00:39:50,110 --> 00:39:52,860 Tetapi sekarang ia pasti tidak akan berjaya 623 00:39:52,860 --> 00:39:56,970 kerana ada yang no-- ViewController kita hanya 624 00:39:56,970 --> 00:40:03,010 ditakrifkan tidak tahu bahawa terdapat pandangan teks di luar sana. 625 00:40:03,010 --> 00:40:06,550 Oleh itu, kita perlu entah bagaimana pandangan pautan teks yang kita hanya 626 00:40:06,550 --> 00:40:11,660 dicipta dengan kelas yang telah datang dengan kami. 627 00:40:11,660 --> 00:40:14,860 >> Cara kami melakukan yang sebenarnya benar-benar ajaib. 628 00:40:14,860 --> 00:40:18,190 Jadi membuka papan cerita. 629 00:40:18,190 --> 00:40:22,220 Terdapat khas [didengar] dipanggil [? pembantu?] [didengar]. 630 00:40:22,220 --> 00:40:25,190 Apabila anda klik itu, ia akan membuka dua fail. 631 00:40:25,190 --> 00:40:29,425 Satu adalah kelas dan satu lagi adalah pandangan yang sepadan untuk itu. 632 00:40:29,425 --> 00:40:31,920 Ia sangat, sangat membantu. 633 00:40:31,920 --> 00:40:35,950 Dan mari kita hanya pergi melalui fail .h itu. 634 00:40:35,950 --> 00:40:39,110 Kawalan, ini adalah [didengar] logik. 635 00:40:39,110 --> 00:40:47,280 Kawalan tekan dan seret pandangan teks ke dalam perisytiharan itu. 636 00:40:47,280 --> 00:40:48,780 Kami akan memanggil outputView itu. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Sambung. 639 00:40:53,670 --> 00:40:59,420 Jadi di sini kita telah mengisytiharkan baru harta untuk kelas ViewController kami. 640 00:40:59,420 --> 00:41:02,300 Dan harta yang baru sahaja pandangan teks yang 641 00:41:02,300 --> 00:41:05,000 kami telah mencipta dalam bangunan antara muka. 642 00:41:05,000 --> 00:41:07,990 Jadi dengan cara itu kita dapat Akses semua data yang 643 00:41:07,990 --> 00:41:13,630 dan memanipulasi semua yang berada di dalam pandangan keluaran yang mengagumkan. 644 00:41:13,630 --> 00:41:19,260 >> Jadi dalam kod sebenar kami, mari kita melakukan sesuatu dengan ia. 645 00:41:19,260 --> 00:41:23,810 Jadi kali ini apabila kita seperti percetakan daripada keputusan akhir untuk Mario, 646 00:41:23,810 --> 00:41:28,020 kami tidak di log apa-apa. 647 00:41:28,020 --> 00:41:30,080 Maksud saya kita boleh menyimpan penyata pembalakan. 648 00:41:30,080 --> 00:41:41,490 Selain itu, kami menghantar bacaan yang kita hanya 649 00:41:41,490 --> 00:41:47,622 diwujudkan bagi pandangan keluaran yang adalah UI textview kita buat. 650 00:41:47,622 --> 00:41:48,746 Sekarang mari kita lihat apa yang berlaku. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Wow. 653 00:41:56,620 --> 00:41:59,130 Kami mempunyai piramid dalam apl ini sekarang. 654 00:41:59,130 --> 00:42:06,720 >> Jadi pengguna boleh melihat keluaran kami kerana kami salin output dari kod kami 655 00:42:06,720 --> 00:42:08,045 ke muka kami. 656 00:42:08,045 --> 00:42:10,950 Ia cukup baik. 657 00:42:10,950 --> 00:42:14,990 Ini sebenarnya tidak bahawa menarik kerana kita can-- 658 00:42:14,990 --> 00:42:18,250 Semua aplikasi yang sedang dilakukan adalah menunjukkan piramid untuk anda, 659 00:42:18,250 --> 00:42:20,520 dan tiada apa-apa yang anda boleh lakukan mengenainya. 660 00:42:20,520 --> 00:42:22,330 Ia bukan terutamanya menarik. 661 00:42:22,330 --> 00:42:27,840 Jadi sekarang mari kita membuat butang yang akan menghilangkan pandangan. 662 00:42:27,840 --> 00:42:30,290 Nampaknya butang yang akan membantu. 663 00:42:30,290 --> 00:42:33,270 Seret dan lepaskan. 664 00:42:33,270 --> 00:42:33,900 Satu butang. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Button dua. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Oleh itu, apabila kita klik kiri butang, pandangan yang harus diselesaikan. 669 00:42:52,052 --> 00:42:53,635 Perlu ada apa-apa pada skrin. 670 00:42:53,635 --> 00:42:56,970 Dan apabila kita klik butang kanan, Mario, 671 00:42:56,970 --> 00:42:59,740 pandangan akan muncul semula. 672 00:42:59,740 --> 00:43:05,510 Jadi cara ini kita juga melakukan perkara yang perkara ajaib, kawalan dan seret 673 00:43:05,510 --> 00:43:08,740 dengan laporan kelas dalam pembantu director-- yang 674 00:43:08,740 --> 00:43:11,600 dalam pembantu penonton. 675 00:43:11,600 --> 00:43:18,620 Dalam kes ini kita menyatakan bahawa yang sepatutnya menjadi tindakan. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> Jadi di sini kita telah membuat suatu tindakan dipanggil clearMario, 679 00:43:26,830 --> 00:43:34,210 yang merupakan kaedah yang akan dipanggil setiap kali kita tekan butang jelas. 680 00:43:34,210 --> 00:43:41,030 Jadi sebenarnya dalam kod kita, mari kita meletakkan teks output dan pandangan output 681 00:43:41,030 --> 00:43:44,620 ke dalam apa-apa, dan dengan cara ini ia akan kelihatan jelas. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Selain itu, mari kita membuat kaedah lain yang dipanggil runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh maaf, yang tidak patut menjadi harta orang yang. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Baiklah, yang sepatutnya menjadi suatu tindakan juga. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Dan apabila fungsi yang dipanggil, kami hanya menjalankan Mario sepuluh. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Mudah-mudahan yang akan denda. 692 00:44:39,780 --> 00:44:41,120 Adakah ia menyusun? 693 00:44:41,120 --> 00:44:43,920 Ya. 694 00:44:43,920 --> 00:44:45,090 Sekarang kita mempunyai pandangan yang. 695 00:44:45,090 --> 00:44:46,560 Kami mempunyai output. 696 00:44:46,560 --> 00:44:50,040 Dan mari kita lihat apa yang berlaku. 697 00:44:50,040 --> 00:44:52,590 Itu hilang. 698 00:44:52,590 --> 00:44:54,500 Ia kembali lagi. 699 00:44:54,500 --> 00:44:57,620 Jadi di sini kita telah dinyatakan jenis fungsi 700 00:44:57,620 --> 00:45:00,400 akan dipanggil apabila kita menaip sesuatu, 701 00:45:00,400 --> 00:45:03,160 apabila kita tekan butang tertentu. 702 00:45:03,160 --> 00:45:07,890 Ini pada dasarnya adalah skim tindakan sasaran 703 00:45:07,890 --> 00:45:12,510 untuk acara didorong pengaturcaraan dalam Objektif C. 704 00:45:12,510 --> 00:45:15,030 >> Selain itu, ia tidak sangat menarik 705 00:45:15,030 --> 00:45:19,810 kerana kita tidak boleh benar-benar mengubah bagaimana tinggi piramid akan menjadi, 706 00:45:19,810 --> 00:45:23,640 jadi kami mungkin ingin entah bagaimana mendapatkan input daripada pengguna 707 00:45:23,640 --> 00:45:29,490 dan menukar ketinggian piramid berasaskan apa yang output. 708 00:45:29,490 --> 00:45:32,900 Jadi, kita akan berbuat demikian. 709 00:45:32,900 --> 00:45:38,720 Jadi kali ini apabila kita panggil runMario, kita tidak hanya memanggil Mario secara langsung. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Gelaran ini seseorang. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Perwakilan. 714 00:46:23,700 --> 00:46:25,160 Ini adalah sangat menarik. 715 00:46:25,160 --> 00:46:26,720 Apakah perwakilan? 716 00:46:26,720 --> 00:46:28,950 Saya akan meletakkan diri di sini. 717 00:46:28,950 --> 00:46:31,038 Dan kita akan lihat apa yang bermakna kemudian. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Jadi di sini kita telah pada dasarnya mencipta contoh khusus dipanggil amaran UI 720 00:46:51,120 --> 00:46:52,210 pandangan. 721 00:46:52,210 --> 00:46:54,440 Pandangan UI amaran adalah pada dasarnya apa yang anda kehendaki 722 00:46:54,440 --> 00:46:58,940 lihat setiap kali sesuatu pop dan meminta anda untuk input, 723 00:46:58,940 --> 00:47:03,080 seperti apa yang akan berlaku apabila anda cuba untuk membeli sesuatu di kedai app. 724 00:47:03,080 --> 00:47:14,250 >> Selain itu, selepas anda menciptakannya, kita hanya menunjukkan amaran itu. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Baiklah, mari kita cepat ujian akan kerja itu atau tidak. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Itu sangat sejuk. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Sekarang mari kita sebenarnya mewujudkan medan input bagi isyarat UI. 731 00:47:59,120 --> 00:48:01,170 Inilah cara yang kita lakukan itu. 732 00:48:01,170 --> 00:48:07,490 Dan kita perlu ada pandangan input untuk berjaga-jaga. 733 00:48:07,490 --> 00:48:09,020 Sangat sejuk. 734 00:48:09,020 --> 00:48:12,330 Mari kita katakan 10. 735 00:48:12,330 --> 00:48:14,900 >> Ia tidak melakukan apa-apa hak sekarang kerana panggilan yang sebenarnya 736 00:48:14,900 --> 00:48:17,770 tidak berubah untuk melaksanakan mario. 737 00:48:17,770 --> 00:48:23,470 Jadi ini telah menjadi sedikit sedikit pelik kerana setiap kali 738 00:48:23,470 --> 00:48:30,790 kita tekan butang ke bawah, setiap kali kita tekan butang memandangkan berjaga-jaga, 739 00:48:30,790 --> 00:48:35,560 sesuatu yang sepatutnya berlaku, tetapi ia tidak akan berlaku. 740 00:48:35,560 --> 00:48:37,220 Bagaimana kita yang menangkap? 741 00:48:37,220 --> 00:48:41,280 Bagaimana kita tahu bahawa pengguna telah menolak pandangan amaran 742 00:48:41,280 --> 00:48:45,630 dan sudah memasuki nombor, kerana sekarang apa yang sebenarnya berlaku. 743 00:48:45,630 --> 00:48:50,450 >> Nah, anda mungkin telah meneka dengan betul, delegasi. 744 00:48:50,450 --> 00:48:55,440 Jadi sebagai tambahan kepada semua pengisytiharan ini, 745 00:48:55,440 --> 00:49:03,190 kita perlu menambah satu delegasi baru untuk ia dipanggil UI pandangan amaran perwakilan. 746 00:49:03,190 --> 00:49:06,440 Supaya setiap tunggal interaksi atau peristiwa 747 00:49:06,440 --> 00:49:10,190 bahawa kita akan mempunyai dengan pandangan UI amaran 748 00:49:10,190 --> 00:49:14,100 akan dikendalikan oleh kelas kami juga. 749 00:49:14,100 --> 00:49:26,297 >> Jadi selain daripada itu, akan amaran butang pandangan klik di indeks. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Ini dicapai. 752 00:49:37,730 --> 00:49:42,020 Jadi, dalam keadaan sedemikian, kami mempunyai already-- jadi kita perlu 753 00:49:42,020 --> 00:49:46,210 mendapati protokol yang akan mengendalikan acara itu apabila 754 00:49:46,210 --> 00:49:51,320 kita klik butang Selesai pada pandangan amaran. 755 00:49:51,320 --> 00:49:55,976 Jadi setiap kali kita menolak pandangan amaran, ini sepatutnya berlaku. 756 00:49:55,976 --> 00:49:57,350 Biar saya mengujinya dengan cepat. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Baik sesungguhnya kami telah mencapai sini. 759 00:50:19,300 --> 00:50:22,210 >> Jadi di sini, apa yang kita tidak akan benar-benar mendapatkan sebenarnya 760 00:50:22,210 --> 00:50:43,120 mendapatkan the-- Jadi kita ingin keluar teks yang kita ada sebelum ini 761 00:50:43,120 --> 00:50:45,350 dimasukkan dalam pandangan amaran. 762 00:50:45,350 --> 00:50:48,505 Dan berdasarkan teks, kami akan memaparkan Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Ini sangat cepat ternyata jika ia benar-benar bekerja atau tidak. 765 00:50:55,480 --> 00:50:59,476 Jadi, dalam kes itu, jika kita input, katakan, 10, kita akan dapat melihat 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Sangat baik, kami mempunyai beberapa di sini. 768 00:51:05,210 --> 00:51:06,470 Ia cukup baik. 769 00:51:06,470 --> 00:51:16,840 Sekarang langkah terakhir akan adalah-- Jadi Langkah terakhir yang perlu kita lakukan sekarang 770 00:51:16,840 --> 00:51:21,100 hanya panggilan Mario dengan tahap berdasarkan input 771 00:51:21,100 --> 00:51:23,270 bahawa kita telah dimasukkan ke dalam pandangan amaran. 772 00:51:23,270 --> 00:51:26,920 Oleh itu, kita perlu menukar rentetan ini ke dalam iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Limpahan statik adalah sangat menggerunkan. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Dan kemudian kita hanya memanggil diri nilai marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Mari kita melihat akan yang benar-benar bekerja atau tidak. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Kami telah diberikan piramid. 781 00:52:01,550 --> 00:52:04,785 Mari kita cuba untuk mengubah ketinggian. 782 00:52:04,785 --> 00:52:06,530 Yang sebenarnya berfungsi. 783 00:52:06,530 --> 00:52:07,610 Ia agak sejuk. 784 00:52:07,610 --> 00:52:10,420 Supaya sekarang anda boleh hanya input apa-apa nilai yang anda mahu. 785 00:52:10,420 --> 00:52:12,440 Mari kita katakan empat. 786 00:52:12,440 --> 00:52:14,260 Yang Hebat. 787 00:52:14,260 --> 00:52:17,090 Jadi ini adalah pada dasarnya contoh yang benar-benar cepat 788 00:52:17,090 --> 00:52:23,170 untuk cara membuat projek dalam s kod dan bagaimana untuk benar-benar cepat wayar sehingga 789 00:52:23,170 --> 00:52:26,220 beberapa peristiwa benar-benar mudah dan fungsi. 790 00:52:26,220 --> 00:52:28,840 >> Jadi sumber akan untuk diletakkan talian kemudian. 791 00:52:28,840 --> 00:52:33,400 Jadi jika anda berminat dalam bagaimana iOS Mario bekerja, 792 00:52:33,400 --> 00:52:38,360 Saya akan meletakkan tepat yang sama projek ke laman web CS50 yang kemudian. 793 00:52:38,360 --> 00:52:41,260 Kami pada dasarnya selesai dengan musim panas, dan sebelum kita menyelesaikan 794 00:52:41,260 --> 00:52:45,190 Saya hanya mahu menunjukkan kepada anda semua beberapa sumber yang benar-benar menggerunkan 795 00:52:45,190 --> 00:52:47,550 boleh didapati dalam talian. 796 00:52:47,550 --> 00:52:52,270 >> Jelas dokumentasi Apple akan menjadi sangat membantu. 797 00:52:52,270 --> 00:52:57,630 Tetapi di samping itu, saya terutamanya mengesyorkan empat sumber, kod sekolah, 798 00:52:57,630 --> 00:53:02,120 rumah pokok, AppCoda dan WWDC video. 799 00:53:02,120 --> 00:53:07,270 Kod sekolah dan rumah pokok adalah dua laman web mendidik talian, 800 00:53:07,270 --> 00:53:10,210 yang khusus menumpukan kejuruteraan perisian. 801 00:53:10,210 --> 00:53:16,930 Terutama bagi sekolah kod, mereka mempunyai tutorial benar-benar baik pada iOS. 802 00:53:16,930 --> 00:53:19,550 >> Itu adalah contoh yang benar-benar pantas untuk itu. 803 00:53:19,550 --> 00:53:22,980 Mereka sebenarnya membuat benar-benar cute-- melihat bahawa iPhone kecil yang lucu 804 00:53:22,980 --> 00:53:24,920 dude di sana, ia cukup menggerunkan. 805 00:53:24,920 --> 00:53:31,010 Dan cara mereka menjelaskan Objektif C sintaks adalah jelas. 806 00:53:31,010 --> 00:53:32,230 Rumah pokok adalah sama. 807 00:53:32,230 --> 00:53:34,660 Dan AppCoda adalah forum. 808 00:53:34,660 --> 00:53:38,130 Ini sebenarnya satu blog yang telah menjalankan oleh Objektif C benar-benar mengalami 809 00:53:38,130 --> 00:53:39,120 programmer. 810 00:53:39,120 --> 00:53:43,950 Dan semua orang-orang tutorial dalam AppCoda adalah cukup pendek dan mudah untuk melaksanakan, 811 00:53:43,950 --> 00:53:45,390 amat disyorkan. 812 00:53:45,390 --> 00:53:47,700 >> Dan jika anda seorang pembangun, pasti pergi check 813 00:53:47,700 --> 00:53:55,660 bagaimana video WWDC di mana anda boleh belajar mengenai pengaturcaraan iOS terkini 814 00:53:55,660 --> 00:53:58,250 teknik, API dan perpustakaan. 815 00:53:58,250 --> 00:54:02,850 Jadi yang cukup banyak untuk seminar tersebut. 816 00:54:02,850 --> 00:54:03,820 Terima kasih banyak. 817 00:54:03,820 --> 00:54:08,040 Dan saya berharap anda telah berseronok mewujudkan aplikasi iOS anda sendiri. 818 00:54:08,040 --> 00:54:09,302