1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Hei, bagaimana itu akan semua orang? 3 00:00:13,590 --> 00:00:20,250 Dan ini adalah iOS App pemrograman seminar c obyektif. 4 00:00:20,250 --> 00:00:21,520 Dan nama saya Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Aku junior Lowell sekarang, berkonsentrasi dalam ilmu komputer. 6 00:00:26,114 --> 00:00:28,030 Jadi dalam seminar ini saya akan mengajarkan kalian 7 00:00:28,030 --> 00:00:30,770 sedikit tentang bagaimana membuat sebuah aplikasi. 8 00:00:30,770 --> 00:00:33,030 Yay, bersemangat untuk itu. 9 00:00:33,030 --> 00:00:36,790 >> Jadi sebelum kita bahkan mulai menyelam ke sisi pemrograman yang sebenarnya, 10 00:00:36,790 --> 00:00:41,840 mari kita benar-benar cepat berbicara tentang mengapa Anda mungkin ingin membangun sebuah aplikasi iOS? 11 00:00:41,840 --> 00:00:43,940 Mengapa iOS begitu mengagumkan? 12 00:00:43,940 --> 00:00:47,250 Jadi masalah pertama, yang pertama hal yang cukup mengagumkan bagi kami, 13 00:00:47,250 --> 00:00:51,190 terutama karena CS50 sebuah mahasiswa, adalah bahwa iOS 14 00:00:51,190 --> 00:00:55,860 menggunakan Objective C. Nah, ada bahasa baru yang disebut Swift, 15 00:00:55,860 --> 00:00:58,260 tapi kami tidak akan menggunakannya dalam seminar ini. 16 00:00:58,260 --> 00:01:01,540 Jika Anda tertarik Swift, ada adalah seminar independen tentang itu. 17 00:01:01,540 --> 00:01:05,590 Tapi Objective C pada dasarnya adalah superset dari C. Arti 18 00:01:05,590 --> 00:01:10,230 bahwa segala sesuatu yang Anda gunakan dalam C dapat diterjemahkan ke dalam Objective C 19 00:01:10,230 --> 00:01:11,630 sangat mudah. 20 00:01:11,630 --> 00:01:15,730 >> Seperti yang mungkin Anda lihat nanti, bahwa memang ada beberapa sintaks yang sangat dasar, 21 00:01:15,730 --> 00:01:19,790 pada dasarnya persis sama, C dan Objective C. Jadi, 22 00:01:19,790 --> 00:01:22,860 karena Anda telah mengambil CS50 up sejauh ini, Anda sudah 23 00:01:22,860 --> 00:01:26,500 tahu Objective C, setidaknya 40%. 24 00:01:26,500 --> 00:01:30,720 Juga, Apple telah benar-benar API kuat untuk iOS. 25 00:01:30,720 --> 00:01:33,750 Ada banyak benar-benar gila hal yang dapat Anda lakukan dengan itu. 26 00:01:33,750 --> 00:01:36,760 Salah satunya adalah seseorang benar-benar menciptakan sebuah aplikasi iOS 27 00:01:36,760 --> 00:01:40,600 untuk mengendalikan mobil, yang cukup menarik. 28 00:01:40,600 --> 00:01:42,610 Mungkin helikopter lebih menarik. 29 00:01:42,610 --> 00:01:47,020 Tapi itu seberapa kuat API iOS dapat. 30 00:01:47,020 --> 00:01:49,340 >> Dan seperti yang mungkin Anda miliki tahu sekarang, 31 00:01:49,340 --> 00:01:53,000 stack overflow mungkin salah satu sumber daya yang paling penting secara online 32 00:01:53,000 --> 00:01:54,250 tersedia untuk Anda. 33 00:01:54,250 --> 00:01:58,090 Dan kabar baik, untuk setiap Masalah tunggal Anda bisa mungkin 34 00:01:58,090 --> 00:02:01,840 pikirkan sambil membangun Anda tugas akhir di Objective C, 35 00:02:01,840 --> 00:02:05,910 ada kemungkinan jawaban stack overflow. 36 00:02:05,910 --> 00:02:07,420 Ini hanya mengagumkan. 37 00:02:07,420 --> 00:02:12,780 Selain itu, iOS benar-benar platform 38 00:02:12,780 --> 00:02:16,260 di mana Anda dapat mencapai besar penonton dengan sedikit usaha. 39 00:02:16,260 --> 00:02:20,170 Ini tidak seperti Android, di mana semuanya cukup terfragmentasi. 40 00:02:20,170 --> 00:02:22,540 >> Semuanya iOS bersatu. 41 00:02:22,540 --> 00:02:25,920 Dan selama Anda buat sebuah aplikasi untuk iPhone, 42 00:02:25,920 --> 00:02:31,260 Anda dapat dengan mudah port yang ke iPad, iPad Mini, atau ukuran iPhone yang berbeda. 43 00:02:31,260 --> 00:02:33,050 Ini semua benar-benar nyaman. 44 00:02:33,050 --> 00:02:36,430 Dan itu hanya benar-benar baik untuk mengesankan teman-teman Anda. 45 00:02:36,430 --> 00:02:38,920 Anda hanya bisa memegang iPhone dan memberitahu teman Anda hei, 46 00:02:38,920 --> 00:02:40,250 ini adalah aplikasi yang saya buat. 47 00:02:40,250 --> 00:02:43,860 Anda dapat melakukannya untuk setiap aplikasi desktop, yang bagus. 48 00:02:43,860 --> 00:02:48,870 >> Baiklah, sekarang mari kita benar-benar mendapatkan ke dalam bahasa Objective C. 49 00:02:48,870 --> 00:02:52,910 Jadi kenapa tidak kita mulai dengan beberapa sintaks benar-benar dasar. 50 00:02:52,910 --> 00:02:57,410 Seperti yang saya sebutkan sebelumnya Tujuan C Pada dasarnya superset dari C. 51 00:02:57,410 --> 00:03:01,860 Jadi banyak sintaks dasar sebenarnya persis sama. 52 00:03:01,860 --> 00:03:06,150 Mendeklarasikan variabel dan menambahkan dua variabel bersama-sama 53 00:03:06,150 --> 00:03:09,440 persis seperti yang telah kita lakukan di Mario. 54 00:03:09,440 --> 00:03:11,140 Tidak ada yang baru di sini. 55 00:03:11,140 --> 00:03:17,370 >> Demikian pula, indekos untuk loop dan kondisi juga sama. 56 00:03:17,370 --> 00:03:22,370 Anda dapat melakukan untuk loop seperti yang Anda telah melakukan di Mario [tidak terdengar]. 57 00:03:22,370 --> 00:03:26,280 Dan Anda dapat melakukan kondisi seperti apa yang Anda 58 00:03:26,280 --> 00:03:29,240 telah melakukan p set sebelumnya. 59 00:03:29,240 --> 00:03:33,400 Namun, Objective C tidak sepenuhnya C, 60 00:03:33,400 --> 00:03:36,640 dan ada sesuatu yang agak aneh tentang hal itu. 61 00:03:36,640 --> 00:03:42,340 >> Yang pertama adalah bahwa ketika Anda melakukan pemrograman C, Anda biasanya menelepon 62 00:03:42,340 --> 00:03:46,310 termasuk dan kemudian nama perpustakaan. 63 00:03:46,310 --> 00:03:49,860 Tapi di Objective C Anda menelepon impor itu. 64 00:03:49,860 --> 00:03:53,100 Pada dasarnya mengatakan fungsi, hanya nama yang berbeda. 65 00:03:53,100 --> 00:03:55,940 Dan string yang sebenarnya sedikit aneh. 66 00:03:55,940 --> 00:03:58,250 Anda dapat melihat bahwa pertama hal yang agak aneh 67 00:03:58,250 --> 00:04:04,190 adalah bahwa Anda memiliki cukup weird-- sorry-- Anda memiliki NS cukup aneh 68 00:04:04,190 --> 00:04:04,960 tanda di sini. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Dan hal kedua yang agak aneh 71 00:04:09,160 --> 00:04:14,090 adalah Anda memiliki tanda sebelum sebenarnya mendeklarasikan string. 72 00:04:14,090 --> 00:04:19,209 Jadi pada dasarnya tanda menandakan bahwa string tidak hanya string, 73 00:04:19,209 --> 00:04:20,880 sebenarnya obyek. 74 00:04:20,880 --> 00:04:22,780 Kami akan menjelaskan yang kemudian jadi tidak 75 00:04:22,780 --> 00:04:25,800 panik jika Anda tidak memahami apa artinya. 76 00:04:25,800 --> 00:04:29,980 Dan pencetakan untuk konsol sedikit berbeda karena di C kita sebut printf, 77 00:04:29,980 --> 00:04:33,350 tapi di Objective C kita sebut [tidak terdengar]. 78 00:04:33,350 --> 00:04:35,640 >> Anda mungkin bertanya-tanya apa itu. 79 00:04:35,640 --> 00:04:38,070 Itu pada dasarnya adalah printf, hanya bahasa yang berbeda. 80 00:04:38,070 --> 00:04:41,370 Tepat penggunaan yang sama, persis fungsi yang sama. 81 00:04:41,370 --> 00:04:44,060 Nah ternyata Tujuan C sebenarnya 82 00:04:44,060 --> 00:04:50,040 memiliki ns awalan di hampir segalanya, setiap jenis data dasar, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 Alasannya adalah bahwa ns sebenarnya adalah singkatan untuk Langkah Selanjutnya, 85 00:04:56,340 --> 00:04:59,980 yang merupakan perusahaan yang Steve Jobs telah didirikan, 86 00:04:59,980 --> 00:05:03,960 yang merupakan perusahaan di mana Bahasa Objective C lahir. 87 00:05:03,960 --> 00:05:06,140 Jadi ini pada dasarnya adalah tradisi. 88 00:05:06,140 --> 00:05:09,010 Aku tahu itu sedikit aneh, tapi itu Apple. 89 00:05:09,010 --> 00:05:16,840 >> Jadi sesuatu yang bahkan lebih aneh dari itu adalah deklarasi fungsi. 90 00:05:16,840 --> 00:05:22,600 Hal ini sangat berbeda dari apa yang kita lihat di C, karena di sini sebenarnya 91 00:05:22,600 --> 00:05:25,190 tidak terlihat seperti C lagi. 92 00:05:25,190 --> 00:05:28,810 Apa yang Anda miliki di sini-oleh cara ini bukanlah titik peluru, 93 00:05:28,810 --> 00:05:30,690 ini adalah tanda minus. 94 00:05:30,690 --> 00:05:36,440 Anda memiliki kurung tanda minus batal dan kemudian nama fungsi. 95 00:05:36,440 --> 00:05:38,450 Mari kita katakan jika kita memiliki hello world, maka 96 00:05:38,450 --> 00:05:42,820 jenis kembali akan batal karena kita tidak kembali. 97 00:05:42,820 --> 00:05:44,680 >> Apa yang akan benar-benar aneh adalah bahwa ketika Anda 98 00:05:44,680 --> 00:05:49,580 memiliki lebih dari satu parameter melewati ke dalam fungsi yang sama 99 00:05:49,580 --> 00:05:53,870 akan benar-benar aneh seperti yang ditunjukkan di sini. 100 00:05:53,870 --> 00:05:58,230 Kami memiliki nama metode, disebut addInt untuk [tidak terdengar] 101 00:05:58,230 --> 00:06:00,370 dan kami melewati satu parameter. 102 00:06:00,370 --> 00:06:05,170 Tapi setelah itu, kita harus lebih panggilan nama metode dengan. 103 00:06:05,170 --> 00:06:08,500 Dan setelah dengan kita lewat parameter kedua. 104 00:06:08,500 --> 00:06:11,940 Ini sebenarnya sedikit aneh, tapi semua fungsi deklarasi ini 105 00:06:11,940 --> 00:06:14,770 mengikuti pola yang sama seperti ini. 106 00:06:14,770 --> 00:06:17,450 >> Kami memiliki tanda minus untuk memulai. 107 00:06:17,450 --> 00:06:21,550 Tanda minus bisa menjadi tanda plus kadang-kadang didasarkan pada jenis metode 108 00:06:21,550 --> 00:06:22,340 itu. 109 00:06:22,340 --> 00:06:25,000 Metode ini pada dasarnya Nama lain untuk 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 sedang berbicara tentang objek pemrograman berorientasi. 112 00:06:30,580 --> 00:06:34,300 Pertama, anda menentukan pengembalian ketik dalam kurung, 113 00:06:34,300 --> 00:06:37,450 setelah itu datang nama metode. 114 00:06:37,450 --> 00:06:40,310 Anda melewati satu parameter. 115 00:06:40,310 --> 00:06:44,750 Dan jika Anda memiliki lebih parameter Anda perlu untuk memperpanjang nama metode 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 >> Bisa jadi apa pun yang Anda inginkan. 118 00:06:48,090 --> 00:06:50,140 Dalam kasus kami itu dengan. 119 00:06:50,140 --> 00:06:56,160 Tapi Anda bisa mengatakan akhir, atau, atau, atau abc penuh bar, apa pun yang Anda inginkan. 120 00:06:56,160 --> 00:06:59,500 Dan kemudian setelah itu Anda melewati parameter b. 121 00:06:59,500 --> 00:07:01,750 Ini adalah benar-benar aneh konvensi tapi kami 122 00:07:01,750 --> 00:07:05,800 akan melihat mengapa Apple ingin untuk melakukan itu dengan sangat 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 fungsi di Objective C juga berbeda dari C. 125 00:07:15,520 --> 00:07:18,170 >> Sebenarnya, memanggil Fungsi di Objective C 126 00:07:18,170 --> 00:07:21,030 lebih seperti Anda sedang berbicara dengan seseorang. 127 00:07:21,030 --> 00:07:27,030 Di sini kita memiliki diri, yang disebut objek. 128 00:07:27,030 --> 00:07:33,830 Anda pada dasarnya memberitahu objek diri untuk mengatakan "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Itulah bagaimana memanggil fungsi. 130 00:07:36,830 --> 00:07:41,690 Sebuah objek dan nama metode dikombinasikan satu sama lain. 131 00:07:41,690 --> 00:07:49,600 Dan ini adalah di mana ekstensi aneh untuk nama metode yang 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 mendefinisikan metode yang disebut addInt dengan bla bla bla. 134 00:07:56,780 --> 00:08:00,066 Jadi dalam hal ini ketika Anda menelepon bahwa [tertentu? Pesan?] itu akan 135 00:08:00,066 --> 00:08:02,035 terlihat seperti addInt diri: 10 dengan: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Kedengarannya seperti bahasa Inggris. 138 00:08:08,070 --> 00:08:11,980 Meskipun fungsi deklarasi fungsi aneh, 139 00:08:11,980 --> 00:08:15,600 titik Objective C Pola deklarasi metode, 140 00:08:15,600 --> 00:08:18,830 adalah bahwa ketika Anda menelepon fungsi atau metode 141 00:08:18,830 --> 00:08:21,980 itu akan terdengar seperti bahasa Inggris yang sebenarnya. 142 00:08:21,980 --> 00:08:25,270 Jadi itu sangat intuitif setelah Anda masuk ke dalamnya. 143 00:08:25,270 --> 00:08:28,740 >> Terutama dalam hal ini, di mana Anda pada dasarnya dapat 144 00:08:28,740 --> 00:08:33,010 melihat bahwa nama fungsi semacam mendokumentasikan sendiri. 145 00:08:33,010 --> 00:08:35,390 Anda tidak perlu lebih banyak penjelasan untuk melihat 146 00:08:35,390 --> 00:08:42,770 apa yang sebenarnya terjadi, apa tepat satu parameter lakukan. 147 00:08:42,770 --> 00:08:48,470 Di luar itu, mari kita bicara sedikit sedikit tentang pemrograman berorientasi objek. 148 00:08:48,470 --> 00:08:52,160 Pemrograman berorientasi objek adalah salah satu pemrograman dasar 149 00:08:52,160 --> 00:08:57,110 teknik atau pola yang digunakan oleh Objective C. Tujuan C 150 00:08:57,110 --> 00:09:03,110 disebut Objective C, tidak C, untuk alasan yang benar-benar baik. 151 00:09:03,110 --> 00:09:07,560 >> Jadi sebelum kita masuk ke Sintaks C obyektif, 152 00:09:07,560 --> 00:09:11,670 Mari kita benar-benar cepat melihat apa sebenarnya adalah obyek. 153 00:09:11,670 --> 00:09:15,480 Kita mungkin telah melakukan sesuatu seperti objek sebelumnya, yang 154 00:09:15,480 --> 00:09:19,780 disebut struct ketika Anda menerapkan pohon atau linked list 155 00:09:19,780 --> 00:09:25,730 atau [? mencoba. ?] Jadi, itu dasarnya seperti struct, 156 00:09:25,730 --> 00:09:28,560 tapi jauh lebih kuat dari itu. 157 00:09:28,560 --> 00:09:33,150 Sebuah objek memiliki metode dan properti. 158 00:09:33,150 --> 00:09:35,310 Metode pada dasarnya fungsi. 159 00:09:35,310 --> 00:09:39,480 Pada dasarnya fungsi bahwa khusus untuk objek tertentu. 160 00:09:39,480 --> 00:09:45,440 >> Dan sifat dasarnya bidang yang Anda tentukan dalam struct. 161 00:09:45,440 --> 00:09:48,500 Jadi untuk setiap objek tunggal kami memiliki beberapa properti 162 00:09:48,500 --> 00:09:53,160 yang memiliki beberapa variabel yang khusus untuk objek. 163 00:09:53,160 --> 00:09:57,170 Dan kami memiliki beberapa fungsi yang juga khusus untuk objek. 164 00:09:57,170 --> 00:10:01,180 Dan fungsi disebut metode dan variabel disebut sifat. 165 00:10:01,180 --> 00:10:03,190 Ini hanya sebuah nama indah. 166 00:10:03,190 --> 00:10:10,440 Sementara Bahkan Anda, setiap tampilan tunggal Anda lihat saat Anda membuka sebuah aplikasi iOS, 167 00:10:10,440 --> 00:10:17,720 katakan saja Twitter atau Facebook, setiap tampilan tunggal yang Anda lihat adalah sebuah objek. 168 00:10:17,720 --> 00:10:22,110 Dan bahkan seluruh app objek untuk memulai 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 ingin objek pemrograman berorientasi? 171 00:10:28,480 --> 00:10:33,530 Jadi bisa dibayangkan bahwa ketika Anda Program itu akan cukup rumit. 172 00:10:33,530 --> 00:10:36,400 Katakan saja ketika Anda melaksanakan catur, 173 00:10:36,400 --> 00:10:40,020 logika akan akan benar-benar rumit. 174 00:10:40,020 --> 00:10:43,280 Anda memiliki 36 berbeda potongan, sehingga jika Anda 175 00:10:43,280 --> 00:10:48,370 ingin menulis logika untuk semua 36 bagian yang berbeda dalam catur, 176 00:10:48,370 --> 00:10:52,150 yang akan menjadi banyak fungsi dan variabel yang berbeda. 177 00:10:52,150 --> 00:10:54,070 Ini banyak masalah. 178 00:10:54,070 --> 00:10:58,980 Dan mungkin Anda akan menulis metode yang berbeda atau fungsi yang berbeda 179 00:10:58,980 --> 00:11:03,950 untuk masing-masing bagian untuk persis mengontrol apa yang mereka lakukan. 180 00:11:03,950 --> 00:11:08,830 >> Tapi jika Anda melakukannya berorientasi objek pemrograman, semua potongan-potongan ini 181 00:11:08,830 --> 00:11:12,440 dapat disarikan ke dalam satu objek tunggal. 182 00:11:12,440 --> 00:11:16,111 Dan objek akan memiliki beberapa kesamaan properti, seperti apa jenis potongan 183 00:11:16,111 --> 00:11:16,610 itu? 184 00:11:16,610 --> 00:11:17,740 Apa warna itu? 185 00:11:17,740 --> 00:11:19,480 Bagaimana bisa bergerak? 186 00:11:19,480 --> 00:11:24,660 Dan dengan cara itu Anda memiliki sangat disederhanakan logika itu. 187 00:11:24,660 --> 00:11:28,480 Jadi itu hanya cara yang sangat baik untuk membuat program yang rumit, 188 00:11:28,480 --> 00:11:33,700 dan hubungan hirarkis dalam program, sangat sederhana. 189 00:11:33,700 --> 00:11:36,800 Seperti kita akan melihat mengapa sangat cepat ketika 190 00:11:36,800 --> 00:11:39,660 kita benar-benar melakukan programming-- ketika kita benar-benar 191 00:11:39,660 --> 00:11:42,830 melakukan kode S pemrograman sesi kemudian. 192 00:11:42,830 --> 00:11:48,120 >> Nah selain itu, object oriented programming 193 00:11:48,120 --> 00:11:50,030 hanya menyenangkan. 194 00:11:50,030 --> 00:11:51,990 Anda harus merancang objek Anda sendiri. 195 00:11:51,990 --> 00:11:56,080 Anda harus merancang apa terlihat seperti sendiri. 196 00:11:56,080 --> 00:11:58,250 Tidak ada jawaban yang tepat untuk itu. 197 00:11:58,250 --> 00:12:02,940 Dan itu benar-benar menarik. 198 00:12:02,940 --> 00:12:07,270 Jadi dalam pemrograman berorientasi objek, dua konsep dasar 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 adalah template untuk objek. 201 00:12:13,570 --> 00:12:18,070 Dan contoh pada dasarnya satu objek tertentu. 202 00:12:18,070 --> 00:12:21,090 >> Katakan saja Anda membuat kue. 203 00:12:21,090 --> 00:12:24,800 Dalam hal ini, setiap satu Cookie Anda benar-benar berakhir dengan 204 00:12:24,800 --> 00:12:27,310 akan menjadi obyek. 205 00:12:27,310 --> 00:12:35,830 Tapi piring kue yang Anda gunakan untuk memanggang semua cookie akan kelas. 206 00:12:35,830 --> 00:12:37,880 Kelas A pada dasarnya adalah template. 207 00:12:37,880 --> 00:12:46,170 Dan contoh akan menjadi salah satu tertentu objek diciptakan dari kelas tersebut. 208 00:12:46,170 --> 00:12:49,970 >> Dan sebuah contoh akan dibuat berdasarkan kelas deklarasi, 209 00:12:49,970 --> 00:12:56,760 seperti yang kita akan melihat dalam slide nanti. 210 00:12:56,760 --> 00:13:00,010 Jadi mari kita benar-benar melakukan benar-benar contoh cepat [tidak terdengar]. 211 00:13:00,010 --> 00:13:04,280 Katakanlah kita menyatakan obyek untuk kucing. 212 00:13:04,280 --> 00:13:07,930 Objek harus have-- kelas kucing harus 213 00:13:07,930 --> 00:13:11,260 memiliki beberapa properti dan metode. 214 00:13:11,260 --> 00:13:17,300 Apa jenis properti seharusnya kelas have-- harus kucing miliki? 215 00:13:17,300 --> 00:13:20,580 >> Misalnya, warna, usia dan berkembang biak, mereka 216 00:13:20,580 --> 00:13:24,440 akan variabel yang spesifik untuk setiap kucing. 217 00:13:24,440 --> 00:13:27,790 Dan mereka adalah beberapa hal yang kita gunakan untuk menggambarkan kucing. 218 00:13:27,790 --> 00:13:31,880 Apa metode, atau apa yang bisa kucing lakukan? 219 00:13:31,880 --> 00:13:37,160 Beberapa contoh cepat akan mengejar mouse, 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 benar-benar spesifik objek kucing akan kucing 222 00:13:46,920 --> 00:13:50,930 di mana kita tentukan warna, usia dan berkembang biak. 223 00:13:50,930 --> 00:13:53,790 >> Dalam hal ini, objek kami adalah tidak lagi kelas lagi. 224 00:13:53,790 --> 00:14:00,010 Kami salin template dari kelas dan kita tentukan setiap informasi spesifik 225 00:14:00,010 --> 00:14:04,510 dengan objek tertentu untuk membuatnya mandiri. 226 00:14:04,510 --> 00:14:09,350 Dan ketika Anda menelepon metode dalam sebuah obyek, 227 00:14:09,350 --> 00:14:16,640 Anda hanya memanggil meow pada objek, yang merupakan kucing yang baru saja dibuat. 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 Meong. " 230 00:14:20,000 --> 00:14:22,110 Cukup lucu. 231 00:14:22,110 --> 00:14:24,500 Baiklah, mari kita masuk ke beberapa rincian 232 00:14:24,500 --> 00:14:30,650 dan melihat apa sebenarnya yang menerjemahkan menjadi ada program iOS. 233 00:14:30,650 --> 00:14:36,500 Jadi dalam pemrograman iOS setiap satu kelas akan dilaksanakan dalam dua file. 234 00:14:36,500 --> 00:14:41,420 Satu file di sini, yang disebut antarmuka. 235 00:14:41,420 --> 00:14:45,300 File lain di sini, yang disebut implementasi. 236 00:14:45,300 --> 00:14:48,890 >> Biasanya antarmuka akan memiliki 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 file implementasi adalah akan memiliki extension.n. 239 00:14:56,340 --> 00:14:57,260 Ini agak aneh. 240 00:14:57,260 --> 00:15:01,270 Tapi .n berarti sebenarnya c, tidak ada Perbedaan mendasar antara orang-orang 241 00:15:01,270 --> 00:15:02,100 dua. 242 00:15:02,100 --> 00:15:06,650 Jadi dalam hal ini, kita dapat melihat bahwa kita menyatakan antarmuka, Cat: object. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Itu disebut warisan. 245 00:15:13,760 --> 00:15:19,170 Kami pada dasarnya mewarisi kelas kucing dari kelas objek. 246 00:15:19,170 --> 00:15:24,790 Jadi setiap properti dan metode yang sebelumnya didefinisikan dalam kelas objek 247 00:15:24,790 --> 00:15:28,560 akan ditentukan secara otomatis dalam kelas kucing juga. 248 00:15:28,560 --> 00:15:35,900 >> Selain itu, kita mendefinisikan warna, berkembang biak, dan usia, tiga variabel. 249 00:15:35,900 --> 00:15:39,360 Yang benar-benar terlihat seperti sesuatu yang telah Anda lakukan sebelumnya. 250 00:15:39,360 --> 00:15:41,770 Sepertinya struct. 251 00:15:41,770 --> 00:15:44,950 Itu pada dasarnya adalah sintaks untuk struct deklarasi, 252 00:15:44,950 --> 00:15:47,710 dan itu benar-benar benar. 253 00:15:47,710 --> 00:15:51,825 Dan karena saya sebutkan sebelumnya, perbedaan struct 254 00:15:51,825 --> 00:15:53,960 dan objek, salah satu perbedaan mendasar 255 00:15:53,960 --> 00:15:59,080 adalah bahwa obyek memiliki metode, sedangkan struct hanya memiliki variabel. 256 00:15:59,080 --> 00:16:03,450 Jadi selain sifat atau variabel yang kita buat untuk objek, 257 00:16:03,450 --> 00:16:05,700 kita tentukan beberapa metode. 258 00:16:05,700 --> 00:16:09,720 >> Mari kita katakan di sini kita memiliki dua metode, satu adalah meong, 259 00:16:09,720 --> 00:16:12,460 satu sama lain adalah tikus mengejar. 260 00:16:12,460 --> 00:16:18,600 Kita mungkin ingin melewati parameter berdasarkan metode kami sebelumnya 261 00:16:18,600 --> 00:16:20,440 Pola deklarasi. 262 00:16:20,440 --> 00:16:22,160 Anda mungkin ingin melewati mouse. 263 00:16:22,160 --> 00:16:25,180 Dan Anda mungkin ingin untuk kembali menandakan bool 264 00:16:25,180 --> 00:16:30,010 jika kucing Anda telah berhasil tertangkap mouse atau tidak. 265 00:16:30,010 --> 00:16:33,170 >> Ini adalah antarmuka, tapi kita bisa melihat bahwa antarmuka sebenarnya 266 00:16:33,170 --> 00:16:35,150 tidak melakukan apa apa. 267 00:16:35,150 --> 00:16:40,800 Ini hanya memberitahu program apa exists-- apa yang ada di kelas kucing. 268 00:16:40,800 --> 00:16:43,640 Jadi dalam rangka untuk program untuk melakukan sesuatu, 269 00:16:43,640 --> 00:16:46,680 kita perlu memiliki file implementasi. 270 00:16:46,680 --> 00:16:51,940 Jadi di sini, hal pertama yang kita lakukan adalah jelas kita mengimpor antarmuka. 271 00:16:51,940 --> 00:16:56,470 Setelah kita mengimpor antarmuka, kita mendefinisikan metode. 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 "Halo Dunia!" ke konsol. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Dan setelah implementasi File, kita cukup banyak dilakukan. 276 00:17:08,460 --> 00:17:14,530 Ini pada dasarnya adalah sebuah kelas deklarasi untuk satu kelas. 277 00:17:14,530 --> 00:17:19,970 Jadi sekarang pertanyaannya menjadi, bagaimana Anda mendeklarasikan variabel? 278 00:17:19,970 --> 00:17:26,880 Cara Anda menggunakan kelas untuk menciptakan objek di Objective C yang tertulis di sini. 279 00:17:26,880 --> 00:17:30,730 >> Anda pertama kali menentukan bahwa ini adalah pointer kucing, 280 00:17:30,730 --> 00:17:38,700 karena setiap objek di Objective C akhirnya diimplementasikan sebagai pointer. 281 00:17:38,700 --> 00:17:46,210 Dan Anda memanggil kelas, menyebut mereka sebagai alokasi, yang pada dasarnya adalah malloc, 282 00:17:46,210 --> 00:17:51,220 mengatakan sistem operasi yang Anda membutuhkan ruang memori untuk objek ini. 283 00:17:51,220 --> 00:17:55,780 Setelah itu Anda memiliki objek sudah dan Anda hanya menginisialisasi itu. 284 00:17:55,780 --> 00:17:56,780 Ini hanya konvensi. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Aku tahu itu sedikit aneh, tapi ini sebenarnya bagaimana Apple melakukan hal-hal. 287 00:18:04,410 --> 00:18:07,130 >> Menetapkan properti ini sebenarnya cukup sederhana. 288 00:18:07,130 --> 00:18:09,250 Ini sangat mirip dengan apa yang Anda lakukan ketika 289 00:18:09,250 --> 00:18:13,780 Anda menetapkan beberapa spesifik bidang dalam struct. 290 00:18:13,780 --> 00:18:16,830 Anda hanya perlu variabel nama, nama properti, 291 00:18:16,830 --> 00:18:20,140 dan menetapkan nilai tertentu untuk itu. 292 00:18:20,140 --> 00:18:24,120 Dan memanggil metode ini sangat mirip. 293 00:18:24,120 --> 00:18:29,080 The memanggil metode adalah pada dasarnya apa yang saya bicarakan 294 00:18:29,080 --> 00:18:32,390 untuk memanggil metode apapun di Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Anda melewati sebuah objek, dalam hal ini akan menjadi myCat, 296 00:18:36,660 --> 00:18:42,490 dan Anda lewat nama metode. 297 00:18:42,490 --> 00:18:47,130 Seolah-olah Anda sedang berbicara dengan objek, myCat, yang harus Anda meow. 298 00:18:47,130 --> 00:18:48,570 Hal ini cukup menarik. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Setelah itu, ada satu pola desain yang lebih penting 301 00:18:55,680 --> 00:18:59,940 bahwa kita perlu bicara tentang sebelum sampai ke kode S yang sebenarnya. 302 00:18:59,940 --> 00:19:03,300 Itu pola desain disebut event driven programming. 303 00:19:03,300 --> 00:19:09,660 Ini juga mungkin salah satu yang paling ide-ide dasar dalam pemrograman iOS. 304 00:19:09,660 --> 00:19:14,410 >> Jadi Anda mungkin tidak tahu persis apa yang adalah pemrograman event driven, 305 00:19:14,410 --> 00:19:16,990 tapi itu tidak benar-benar menakutkan. 306 00:19:16,990 --> 00:19:20,400 Nah pada kenyataannya, Anda memiliki sudah melakukan itu sebelumnya. 307 00:19:20,400 --> 00:19:24,894 Ini adalah salah satu baris Anda mungkin pernah sudah ditulis di babak [tidak terdengar] 308 00:19:24,894 --> 00:19:26,810 dari CS50, google.maps.event.addListener (marker, 309 00:19:26,810 --> 00:19:27,810 "Klik", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Dengan menelepon baris ini Anda dasarnya memberitahu komputer 312 00:19:37,620 --> 00:19:42,650 bahwa setiap kali acara yang disebut "Klik" terjadi pada penanda, 313 00:19:42,650 --> 00:19:43,630 menggunakan fungsi tersebut. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Hal ini sangat berbeda dari apa yang Anda lakukan di mario.c. 316 00:19:50,950 --> 00:19:56,670 Dalam mario.c Anda hanya menjalankan program sekali, itu memberikan Anda output, 317 00:19:56,670 --> 00:19:58,590 dan Anda sudah selesai. 318 00:19:58,590 --> 00:20:02,590 Ini semacam seperti salah satu program tembakan. 319 00:20:02,590 --> 00:20:05,830 Program didorong acara sangat, sangat berbeda. 320 00:20:05,830 --> 00:20:10,230 Mari kita bayangkan, jika Facebook adalah salah satu yang Program tembakan itu tidak benar-benar baik. 321 00:20:10,230 --> 00:20:13,750 Anda hanya pergi ke Facebook sekali dan hal itu dilakukan. 322 00:20:13,750 --> 00:20:16,700 Ini memberi Anda beberapa output dan Anda tidak pernah mendapatkannya kembali. 323 00:20:16,700 --> 00:20:19,380 Anda tidak pernah punya apa-apa lagi. 324 00:20:19,380 --> 00:20:23,880 >> Jadi di sini, terutama pola yang kita gunakan adalah 325 00:20:23,880 --> 00:20:26,940 event driven, sehingga setiap fungsi akan 326 00:20:26,940 --> 00:20:31,480 ditangkap berdasarkan apa peristiwa telah terjadi. 327 00:20:31,480 --> 00:20:34,670 Sebagai contoh, jika kita memiliki tombol dan kita tentukan 328 00:20:34,670 --> 00:20:39,870 bahwa setiap kali tombol yang diklik, memanggil fungsi yang disebut "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Dengan cara itu kita bisa benar-benar mengelola fungsi logika 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 dapat melakukan atau memanggil fungsi yang telah dipanggil. 332 00:20:55,840 --> 00:20:59,900 Ini benar-benar didasarkan pada apa yang pengguna lakukan. 333 00:20:59,900 --> 00:21:04,080 >> Jadi kita dapat melihat bahwa ini adalah sebenarnya jauh lebih baik daripada mario.c. 334 00:21:04,080 --> 00:21:07,190 Dan kabar baiknya adalah bahwa hal itu sebenarnya bukan konsep baru. 335 00:21:07,190 --> 00:21:12,140 Kalian sudah melakukan bahwa dalam masalah terakhir yang ditetapkan. 336 00:21:12,140 --> 00:21:16,640 Jadi di Objective C ada tiga diagram yang berbeda 337 00:21:16,640 --> 00:21:19,030 untuk pemrograman event driven. 338 00:21:19,030 --> 00:21:21,970 Diagram pertama adalah disebut tindakan sasaran, 339 00:21:21,970 --> 00:21:26,990 di mana Anda mengikat tombol pers dengan beberapa fungsi. 340 00:21:26,990 --> 00:21:31,590 Katakan saja, setiap kali Anda mengklik beberapa tombol, Anda memanggil beberapa fungsi. 341 00:21:31,590 --> 00:21:33,620 Ini adalah tindakan target yang sangat sederhana. 342 00:21:33,620 --> 00:21:35,580 >> Yang kedua adalah sebenarnya yang paling sulit, 343 00:21:35,580 --> 00:21:38,450 itu disebut delegasi pada protokol. 344 00:21:38,450 --> 00:21:41,800 Kami akan menjelaskan yang rinci nanti. 345 00:21:41,800 --> 00:21:44,420 Dan cara 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 yang kita khawatir, karena kesempatan bahwa Anda akan menggunakan pemberitahuan 348 00:21:50,920 --> 00:21:53,310 dalam proyek akhir Anda cukup rendah. 349 00:21:53,310 --> 00:21:56,440 Jadi kita akan melewatkan bagian. 350 00:21:56,440 --> 00:21:59,460 >> Dan kita akan menyelam 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 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 bicara tentang protokol untuk memulai dengan. 355 00:22:09,670 --> 00:22:13,360 Protokol hanyalah peristiwa. 356 00:22:13,360 --> 00:22:19,230 Tapi peristiwa ini diberikan kepada Anda oleh Apple untuk memulai dengan. 357 00:22:19,230 --> 00:22:22,640 Misalnya, aku tidak benar-benar yakin berapa banyak dari Anda 358 00:22:22,640 --> 00:22:27,930 orang menggunakan original Apple surat aplikasi atau kontak, 359 00:22:27,930 --> 00:22:32,180 tapi setiap kali Anda menggulung meja dan tekan sel tertentu 360 00:22:32,180 --> 00:22:36,130 di atas meja, yang merupakan acara. 361 00:22:36,130 --> 00:22:38,330 >> Dan jika Anda ingin melakukan acara sendiri, 362 00:22:38,330 --> 00:22:40,410 itu sebenarnya sedikit sulit. 363 00:22:40,410 --> 00:22:44,880 Jadi Apple telah mengingat bahwa bahkan Anda sehingga Anda bisa langsung menggunakan 364 00:22:44,880 --> 00:22:49,610 acara untuk melakukan sesuatu pada Anda sendiri. 365 00:22:49,610 --> 00:22:52,980 Protokol sebenarnya benar-benar, benar-benar banyak digunakan 366 00:22:52,980 --> 00:22:58,320 di Objective C. Nah di Bahkan, setiap aplikasi tunggal 367 00:22:58,320 --> 00:23:00,870 memiliki sesuatu yang tertangkap delegasi app. 368 00:23:00,870 --> 00:23:06,330 Di dalam halus adalah semua protokol untuk memuat aplikasi. 369 00:23:06,330 --> 00:23:12,470 >> Mari kita katakan ada acara untuk aplikasi melakukan beban. 370 00:23:12,470 --> 00:23:18,200 Jadi apa yang harus terjadi setelah Anda sudah menciptakan sebuah aplikasi, setelah Anda membuka aplikasi, 371 00:23:18,200 --> 00:23:22,630 setelah Anda menutup aplikasi, atau setelah Anda menempatkan iPhone untuk tidur. 372 00:23:22,630 --> 00:23:27,480 Ini semua peristiwa yang memiliki telah diberikan kepada Anda. 373 00:23:27,480 --> 00:23:34,730 Dan awalnya dalam partikel-partikel ini tidak akan ada implementasi. 374 00:23:34,730 --> 00:23:39,750 Apple baru saja mengatakan kepada Anda bahwa fungsi ini akan terjadi ketika beberapa peristiwa terjadi, 375 00:23:39,750 --> 00:23:44,380 tapi apa yang Anda lakukan dengan itu Fungsi benar-benar terserah pada Anda. 376 00:23:44,380 --> 00:23:49,290 >> Delegasi pada dasarnya mengatakan kelas 377 00:23:49,290 --> 00:23:53,060 Anda harus menangani protokol ini. 378 00:23:53,060 --> 00:23:55,340 Ini sedikit membingungkan, tetapi ini akan menjadi 379 00:23:55,340 --> 00:23:59,380 lebih jelas ketika kita melakukan kode dalam tindakan. 380 00:23:59,380 --> 00:24:04,760 Delegasi pada protokol sebenarnya mekanisme yang sangat kuat dalam arti 381 00:24:04,760 --> 00:24:08,160 bahwa jika kita melakukan delegasi untuk kelas tertentu, 382 00:24:08,160 --> 00:24:12,400 kita pada dasarnya dapat menangani semua jenis kegiatan 383 00:24:12,400 --> 00:24:17,040 menggunakan kelas apapun yang kita miliki, alat yang sangat nyaman. 384 00:24:17,040 --> 00:24:21,530 >> Jadi salah satu contoh cepat untuk Delegasi pada protokol 385 00:24:21,530 --> 00:24:24,120 akan menjadi apa yang saya hanya berbicara tentang. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Protokol ini secara khusus disebut tableview [tak terdengar] pilih peran 388 00:24:30,890 --> 00:24:35,480 di [? Indeks?] [? masa lalu. ?] Jadi seorang ini Acara yang akan tertangkap ketika Anda 389 00:24:35,480 --> 00:24:39,710 sebenarnya tekan tertentu sel dalam tableview Anda, 390 00:24:39,710 --> 00:24:43,570 katakan saja di email Anda atau dalam aplikasi kontak Anda. 391 00:24:43,570 --> 00:24:48,180 >> Di dalam fungsi ada awalnya melakukan apa-apa. 392 00:24:48,180 --> 00:24:51,950 Fungsi tidak melakukan apa-apa secara default. 393 00:24:51,950 --> 00:24:55,540 Tapi Anda dapat menentukan apa fungsi tidak, 394 00:24:55,540 --> 00:24:59,610 mengingat apa yang Anda inginkan dari aplikasi Anda. 395 00:24:59,610 --> 00:25:01,610 Alat yang sangat nyaman. 396 00:25:01,610 --> 00:25:06,840 Dan dengan semua itu sedang berkata, saya pada dasarnya 397 00:25:06,840 --> 00:25:11,430 mencakup beberapa sintaks yang sangat dasar dan Konsep dasar untuk Objective C 398 00:25:11,430 --> 00:25:15,860 pemrograman, dan kita dapat melakukan beberapa s kode. 399 00:25:15,860 --> 00:25:17,980 Jauh lebih menarik. 400 00:25:17,980 --> 00:25:21,070 Jadi s kode sebenarnya sedikit luar biasa 401 00:25:21,070 --> 00:25:23,330 ketika Anda membukanya untuk pertama kalinya. 402 00:25:23,330 --> 00:25:26,640 >> Salah satu catatan singkat, jadi jika Anda ingin melakukan pengembangan iOS, 403 00:25:26,640 --> 00:25:29,630 Saya sangat merekomendasikan Anda memiliki Mac. 404 00:25:29,630 --> 00:25:33,930 Karena melakukan pengembangan iOS pada Windows benar-benar, benar-benar keras. 405 00:25:33,930 --> 00:25:37,560 Ini bisa dilakukan, tapi itu benar-benar sulit. 406 00:25:37,560 --> 00:25:40,610 Dan Anda pasti melakukan tidak ingin menggunakan g edit. 407 00:25:40,610 --> 00:25:47,950 Jadi di s kode yang kami miliki beberapa bidang yang berbeda. 408 00:25:47,950 --> 00:25:53,050 Ketika Anda pertama kali membuka s kode Anda akan melihat area navigasi, 409 00:25:53,050 --> 00:25:57,470 yang pada dasarnya menunjukkan semua file yang ada di proyek Anda saat ini. 410 00:25:57,470 --> 00:26:03,590 >> Anda memiliki area toolbar, yang pada dasarnya mengelola pandangan, 411 00:26:03,590 --> 00:26:08,570 atau sedikit cepat alat tentang s kode itu sendiri. 412 00:26:08,570 --> 00:26:11,140 Dan ini adalah area editor yang sebenarnya. 413 00:26:11,140 --> 00:26:15,900 Daerah ini g mengedit sangat mirip, tapi jauh lebih baik daripada g edit. 414 00:26:15,900 --> 00:26:21,150 Dan di daerah ini benar, adalah disebut daerah utilitas. 415 00:26:21,150 --> 00:26:27,170 Daerah menjadi benar-benar berguna ketika Anda membuat antarmuka atau menetapkan 416 00:26:27,170 --> 00:26:30,070 satu pengaturan cepat untuk aplikasi Anda. 417 00:26:30,070 --> 00:26:34,570 >> Dan daerah terakhir adalah debugging. 418 00:26:34,570 --> 00:26:37,970 Daerah ini berisi konsol. 419 00:26:37,970 --> 00:26:43,170 Jadi, setiap kali Anda mengatakan printf, atau NSLog dalam kasus kami, 420 00:26:43,170 --> 00:26:47,330 semua hasil 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 kira kita bisa benar-benar cepat melakukan contoh untuk pemrograman iOS. 423 00:26:52,090 --> 00:26:54,220 Dan mari kita benar-benar membuka kode up s. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Jadi setiap kali Anda membuka kode up s, itu akan muncul sesuatu seperti itu. 426 00:27:01,346 --> 00:27:03,220 Ini akan meminta Anda apa yang ingin kamu lakukan? 427 00:27:03,220 --> 00:27:06,830 Apakah Anda ingin memulai sesuatu acak, taman bermain, pada dasarnya Anda 428 00:27:06,830 --> 00:27:11,250 hanya dapat menguji kode tanpa benar-benar melakukan untuk aplikasi apapun. 429 00:27:11,250 --> 00:27:13,020 >> Apakah Anda ingin membuat proyek baru? 430 00:27:13,020 --> 00:27:16,660 Atau apakah Anda ingin melanjutkan bekerja pada proyek yang ada? 431 00:27:16,660 --> 00:27:20,270 Dalam kasus kami, kami akan untuk membuat proyek baru. 432 00:27:20,270 --> 00:27:22,980 Jadi itu benar-benar bagus, s kode sebenarnya memiliki sudah 433 00:27:22,980 --> 00:27:26,820 memberikan beberapa template untuk membuat objek. 434 00:27:26,820 --> 00:27:32,680 Jika Anda ingin melakukan permainan, s kode sebenarnya memiliki template game untuk Anda, 435 00:27:32,680 --> 00:27:36,890 memiliki aplikasi berbasis halaman, aplikasi berbasis tab. 436 00:27:36,890 --> 00:27:39,280 Dalam hal ini, kita akan untuk melakukan sesuatu yang sangat sederhana, 437 00:27:39,280 --> 00:27:43,230 dan kita akan menggunakan satu aplikasi tampilan. 438 00:27:43,230 --> 00:27:48,270 >> Setelah itu hanya apa yang Anda ingin menyebutnya produk Anda, dan siapa namamu, 439 00:27:48,270 --> 00:27:52,760 apa pengenal Anda, dan bahasa apa yang kamu gunakan. 440 00:27:52,760 --> 00:27:57,060 Di sini kita tidak ingin periksa menggunakan Core Data. 441 00:27:57,060 --> 00:28:00,170 Core Data pada dasarnya adalah databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Jika Anda melakukan Core Data, s kode akan menentukan 443 00:28:05,360 --> 00:28:07,710 kelas yang lebih rumit banyak untuk Anda. 444 00:28:07,710 --> 00:28:12,740 Jadi untuk menjaga semuanya sederhana, kami hanya akan melakukannya tanpa Core Data 445 00:28:12,740 --> 00:28:15,290 sekarang juga. 446 00:28:15,290 --> 00:28:18,030 >> Masalah kita akan menjadi gunakan adalah itu-- masalah 447 00:28:18,030 --> 00:28:23,770 kita akan membuat adalah bahwa kita pada dasarnya ingin mengimpor Mario dari C 448 00:28:23,770 --> 00:28:25,437 untuk sebuah aplikasi iOS. 449 00:28:25,437 --> 00:28:26,645 Jadi mari kita sebut bahwa Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Tentu saja Anda menentukan apa yang Anda ingin dimasukkan ke dalam proyek Anda. 452 00:28:34,880 --> 00:28:37,870 Dan di sana kita pergi. 453 00:28:37,870 --> 00:28:41,390 >> Jadi ini adalah sedikit luar biasa, tapi ini benar-benar 454 00:28:41,390 --> 00:28:43,540 apa yang baru saja kita lihat pada slide. 455 00:28:43,540 --> 00:28:49,710 Dan daerah pertama yang kita lihat sekarang pada dasarnya adalah konfigurasi proyek. 456 00:28:49,710 --> 00:28:53,390 Jadi segala sesuatu yang Anda ingin lakukan proyek, jenis perangkat, 457 00:28:53,390 --> 00:28:58,810 katakan saja apa jenis perangkat Anda ingin aplikasi Anda untuk muncul di? 458 00:28:58,810 --> 00:29:01,280 Apakah iPhone, iPad atau yang universal? 459 00:29:01,280 --> 00:29:04,660 Jadi orientasi perangkat, semua hal ini. 460 00:29:04,660 --> 00:29:08,490 Tidak terlalu penting, tapi bisa, tapi ini 461 00:29:08,490 --> 00:29:11,050 adalah tempat di mana Anda mengatur proyek Anda jika Anda benar-benar 462 00:29:11,050 --> 00:29:15,180 ingin menyebarkan ke toko Apple. 463 00:29:15,180 --> 00:29:20,420 >> Baiklah, mari kita lihat sesuatu yang ada di dalam kode kita. 464 00:29:20,420 --> 00:29:22,360 Mari kita pergi melalui file navigator. 465 00:29:22,360 --> 00:29:30,140 Dan ini semua file yang sudah datang dengan template, sangat bagus. 466 00:29:30,140 --> 00:29:35,980 Jadi ketika kita klik salah satu dari mereka ini adalah apa yang tampak seperti. 467 00:29:35,980 --> 00:29:38,530 Sangat mirip dengan g edit. 468 00:29:38,530 --> 00:29:41,340 Tapi Anda bisa melihat bahwa sintaks mungkin 469 00:29:41,340 --> 00:29:42,780 sedikit lebih baik. 470 00:29:42,780 --> 00:29:45,610 Dan itu sebenarnya jauh lebih kuat daripada g editing. 471 00:29:45,610 --> 00:29:49,970 Dan Anda bisa auto lengkap banyak hal untuk Anda, 472 00:29:49,970 --> 00:29:52,370 seperti yang akan kita lihat dengan sangat cepat. 473 00:29:52,370 --> 00:29:54,100 >> Mari kita membuka area 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 ada di sini. 476 00:30:07,000 --> 00:30:13,840 Ini adalah apa yang Anda akan melihat di mana Anda berada di printf atau nsloging sesuatu. 477 00:30:13,840 --> 00:30:17,155 Jadi tanpa basa-basi lagi, mari kita benar-benar mengkompilasi aplikasi dan melihat apa yang terjadi. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Salah satu fitur penting untuk s kode, adalah bahwa s kode 480 00:30:23,410 --> 00:30:25,850 dilengkapi dengan simulator iPhone. 481 00:30:25,850 --> 00:30:29,820 Jadi Anda tidak perlu memiliki iPhone untuk mencoba proyek Anda, 482 00:30:29,820 --> 00:30:34,440 s kode dapat mensimulasikan bahwa untuk Anda, seperti yang kita bisa lihat sekarang. 483 00:30:34,440 --> 00:30:36,406 >> Ini cukup bagus. 484 00:30:36,406 --> 00:30:38,640 Ini mengambil sedikit sedikit waktu untuk mengkompilasi 485 00:30:38,640 --> 00:30:43,040 dan pada dasarnya kami memiliki aplikasi kosong, 486 00:30:43,040 --> 00:30:44,640 yang benar-benar tidak apa-apa. 487 00:30:44,640 --> 00:30:46,175 Tapi mengkompilasi. 488 00:30:46,175 --> 00:30:47,380 Ini cukup mengagumkan. 489 00:30:47,380 --> 00:30:50,200 Ini jauh lebih baik daripada C, ya? 490 00:30:50,200 --> 00:30:52,130 Baiklah, kemudian mari kita mencoba untuk menambahkan sesuatu. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Salah satu file yang sedikit aneh di sini disebut storyboard. 493 00:31:02,650 --> 00:31:08,020 Ini adalah benar-benar besar, Fitur mengagumkan untuk s kode. 494 00:31:08,020 --> 00:31:14,170 Karena dalam s kode, Anda benar-benar bisa tarik dan drop elemen ke antarmuka 495 00:31:14,170 --> 00:31:17,430 dan akan langsung muncul. 496 00:31:17,430 --> 00:31:18,055 Mari kita coba. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Kami menjatuhkan label di sini, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Kita bisa memusatkan itu. 500 00:31:29,740 --> 00:31:30,970 Cukup keren. 501 00:31:30,970 --> 00:31:33,915 Sekarang mari kita jalankan berhenti simulasi ini. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Di sini kita memiliki "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Kami bahkan tidak melakukan coding apa pun. 505 00:31:40,810 --> 00:31:42,750 Apa sih yang terjadi? 506 00:31:42,750 --> 00:31:45,880 Ini adalah bagaimana kuat Interface Builder dapat. 507 00:31:45,880 --> 00:31:48,030 Seseorang bahkan mengatakan bahwa Mungkin Anda hanya dapat 508 00:31:48,030 --> 00:31:52,800 menyelesaikan sebuah aplikasi tanpa menulis mungkin seribu baris kode 509 00:31:52,800 --> 00:31:54,820 hanya dengan menggunakan Builder Interface. 510 00:31:54,820 --> 00:31:59,680 Tapi itu mungkin tidak cara terbaik untuk melakukannya. 511 00:31:59,680 --> 00:32:01,670 >> Sekarang mari kita benar-benar turun ke coding. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Jadi struktur untuk file sebenarnya benar-benar menarik 514 00:32:08,330 --> 00:32:15,610 karena, seperti yang Anda dapat lihat, ada ada fungsi utama di mana saja. 515 00:32:15,610 --> 00:32:17,466 Lihat? 516 00:32:17,466 --> 00:32:19,340 Seperti yang telah disebutkan sebelumnya, Anda dapat melihat bahwa ini 517 00:32:19,340 --> 00:32:22,830 adalah file implementasi untuk kelas tertentu. 518 00:32:22,830 --> 00:32:25,690 Tetapi tidak ada di mana saja utama. 519 00:32:25,690 --> 00:32:27,490 Jadi di mana utama? 520 00:32:27,490 --> 00:32:31,970 Sebenarnya, ada utama, tetapi utama sebenarnya tersembunyi dari Anda. 521 00:32:31,970 --> 00:32:34,560 Utama di sini. 522 00:32:34,560 --> 00:32:37,120 Itu tampak akrab. 523 00:32:37,120 --> 00:32:41,000 >> Jadi pada dasarnya apa iOS melakukan dalam main 524 00:32:41,000 --> 00:32:43,540 adalah bahwa setiap kali utama adalah disebut, yang pada dasarnya adalah 525 00:32:43,540 --> 00:32:49,000 setiap kali aplikasi dijalankan, itu membuat objek disebut AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Seperti yang saya sebutkan sebelumnya, seluruh yang app sebenarnya obyek dengan sendirinya. 528 00:32:57,350 --> 00:33:02,270 Jadi dengan cara ini, pada dasarnya aplikasi iOS yang memerintahkan compiler 529 00:33:02,270 --> 00:33:05,540 yang OK, aku akan membuat produk yang disebut AppDelegate, 530 00:33:05,540 --> 00:33:07,620 dan itu akan menjadi aplikasi saya. 531 00:33:07,620 --> 00:33:09,640 Jadi, Anda perlu untuk pergi melalui AppDelegate yang 532 00:33:09,640 --> 00:33:12,040 dan melihat apa yang orang yang melakukan. 533 00:33:12,040 --> 00:33:14,850 Pekerjaan saya dilakukan bagi saya. 534 00:33:14,850 --> 00:33:22,070 >> Dan di AppDelegate Anda dapat melihat bahwa ada beberapa fungsi yang benar-benar aneh, 535 00:33:22,070 --> 00:33:25,290 Yah, sebenarnya metode, yang Apple telah memberi Anda. 536 00:33:25,290 --> 00:33:27,464 Apa ini? 537 00:33:27,464 --> 00:33:31,010 Ini sebenarnya hanya protokol yang saya bicarakan. 538 00:33:31,010 --> 00:33:35,670 Jadi ini adalah peristiwa bahwa Apple telah memberi Anda untuk memulai 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 ingin menginisialisasi sesuatu untuk aplikasi kita 541 00:33:40,820 --> 00:33:46,140 sebelum masuk ke menampilkan pandangan, kami melakukannya di sini. 542 00:33:46,140 --> 00:33:51,150 >> Anda hanya dapat membaca nama dan kurasa Acara ini sebenarnya sangat jelas. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Jadi sekarang utama telah menciptakan obyek untuk AppDelegate. 545 00:33:58,350 --> 00:34:05,220 Dan apa AppDelegate yang akan dilakukan sebenarnya juga tersembunyi dari Anda. 546 00:34:05,220 --> 00:34:09,250 AppDelegate akan mulai memuat saham ViewController. 547 00:34:09,250 --> 00:34:13,170 Jadi pada dasarnya akan mulai memuat semua pandangan yang Anda miliki 548 00:34:13,170 --> 00:34:17,500 dan hanya membuat tampilan berdasarkan hirarki. 549 00:34:17,500 --> 00:34:21,280 >> Jadi dalam hal ini kita hanya memiliki satu tampilan, yang ada di sini. 550 00:34:21,280 --> 00:34:25,060 Jadi itu adalah satu-satunya pandangan yang akan dipanggil. 551 00:34:25,060 --> 00:34:28,159 ViewController logika di sini. 552 00:34:28,159 --> 00:34:32,159 Ini adalah kode yang benar-benar mengontrol pandangan kita hanya melihat. 553 00:34:32,159 --> 00:34:33,679 Baiklah, mari kita lakukan sesuatu di sini. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Jadi viewDidLoad terdengar seperti sebuah acara, padahal sebenarnya ini juga delegasi, 556 00:34:50,560 --> 00:34:52,500 ini juga protokol. 557 00:34:52,500 --> 00:34:56,350 >> Jadi apapun pandangan dimuat, segala sesuatu di dalam fungsi 558 00:34:56,350 --> 00:34:57,920 akan dipanggil. 559 00:34:57,920 --> 00:35:02,840 Dalam hal ini kita harus melihat "Hello Tianyu! "Jika kita menjalankan program. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Sudah mulai sedikit lambat kompilasi file storyboard. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Baik memang, kita melihat output untuk itu. 564 00:35:18,190 --> 00:35:20,720 Hal ini cukup keren. 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 Aku akan menentukan berfungsi sangat cepat. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: hasil (int) tingkat. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Baiklah, ini sebenarnya adalah mengagumkan fitur s kode penyelesaian otomatis. 572 00:36:06,410 --> 00:36:10,680 Jadi, ketika Anda menulis untuk dan ketik masuk, ia telah menyerah template 573 00:36:10,680 --> 00:36:12,325 untuk Anda, yang cukup keren. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Yang harus terlihat benar-benar akrab bagi kalian. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Maaf, itu salahku. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Baiklah, keren. 580 00:37:18,120 --> 00:37:22,710 Logika yang harus melihat benar-benar akrab untuk kalian, terutama hanya Mario. 581 00:37:22,710 --> 00:37:26,140 >> Tapi sekarang kita akan mencetak ke konsol setiap kali, 582 00:37:26,140 --> 00:37:29,280 karena kami ingin tetap menjaga melacak apa yang kita cetak. 583 00:37:29,280 --> 00:37:31,810 Kita akan menggunakan hasil entah bagaimana kemudian, 584 00:37:31,810 --> 00:37:35,010 untuk menampilkan cetak keluar mengakibatkan pengguna. 585 00:37:35,010 --> 00:37:37,730 Jadi, bukannya kami hanya nslogging segalanya, 586 00:37:37,730 --> 00:37:42,410 yang kita menyimpan segala sesuatu menjadi hasil pemanggilan fungsi, 587 00:37:42,410 --> 00:37:44,070 namun logika adalah persis sama. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Setelah kami selesai, kami hanya mencetak hasil kami. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Dan di sini 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 terjadi. 594 00:38:18,090 --> 00:38:21,240 Ups, jelas. 595 00:38:21,240 --> 00:38:24,320 Kami memiliki bagus sedikit piramida di sini. 596 00:38:24,320 --> 00:38:28,370 Ini pada dasarnya adalah C, kami hanya memanipulasi mana Anda memanggil fungsi 597 00:38:28,370 --> 00:38:30,010 dan bagaimana fungsi terlihat seperti. 598 00:38:30,010 --> 00:38:31,560 Tidak ada yang berbeda. 599 00:38:31,560 --> 00:38:34,040 Tapi ini benar-benar tidak sangat menarik di sini, 600 00:38:34,040 --> 00:38:37,500 karena kita tidak melihat apa pun dari iPhone app. 601 00:38:37,500 --> 00:38:42,120 >> Jadi jika Anda benar-benar memiliki iPhone app-- jika Anda benar-benar memiliki 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 ada hubungannya dengan Mario karena semua keluaran yang menjadi konsol 604 00:38:49,450 --> 00:38:51,620 tersembunyi dari pengguna. 605 00:38:51,620 --> 00:38:53,850 Ini adalah apa yang Anda lihat, yang "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 coba untuk membuat pengguna melihat apa sebenarnya kita mencetak. 608 00:39:03,090 --> 00:39:06,000 Jadi kita tidak perlu label lagi. 609 00:39:06,000 --> 00:39:09,800 Mari kita mencoba dan mencari tahu sesuatu lain yang dapat berguna. 610 00:39:09,800 --> 00:39:12,140 >> Ada sebenarnya adalah salah satu elemen yang disebut 611 00:39:12,140 --> 00:39:16,460 bidang teks, yang bisa akan sangat membantu kami. 612 00:39:16,460 --> 00:39:19,880 Pada dasarnya menampilkan daerah teks yang dapat diedit. 613 00:39:19,880 --> 00:39:22,320 Sehingga terlihat benar-benar membantu. 614 00:39:22,320 --> 00:39:23,810 Sekarang mari kita tarik dan jatuhkan. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, kami memiliki pandangan teks dalam pandangan kami, benar-benar mewah. 617 00:39:32,670 --> 00:39:35,430 Itu sedikit terlalu besar. 618 00:39:35,430 --> 00:39:38,150 Mari kita membuatnya lebih kecil. 619 00:39:38,150 --> 00:39:40,290 Memasukkannya ke 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 memiliki pandangan teks, yang kita bisa digunakan untuk menampilkan hasil akhir kami. 622 00:39:50,110 --> 00:39:52,860 Tapi saat itu pasti tidak akan bekerja 623 00:39:52,860 --> 00:39:56,970 karena ada no-- yang ViewController kita hanya 624 00:39:56,970 --> 00:40:03,010 didefinisikan tidak tahu bahwa ada tampilan teks di luar sana. 625 00:40:03,010 --> 00:40:06,550 Jadi kita perlu entah bagaimana menghubungkan tampilan teks kita hanya 626 00:40:06,550 --> 00:40:11,660 dibuat dengan kelas yang telah datang dengan kami. 627 00:40:11,660 --> 00:40:14,860 >> Cara kita melakukannya adalah sebenarnya benar-benar ajaib. 628 00:40:14,860 --> 00:40:18,190 Jadi membuka storyboard. 629 00:40:18,190 --> 00:40:22,220 Ada khusus [tidak terdengar] disebut [? asisten?] [tidak terdengar]. 630 00:40:22,220 --> 00:40:25,190 Ketika Anda mengklik itu, itu akan membuka dua file. 631 00:40:25,190 --> 00:40:29,425 Salah satunya adalah kelas dan yang lain adalah pandangan yang sesuai untuk itu. 632 00:40:29,425 --> 00:40:31,920 Ini sangat, sangat membantu. 633 00:40:31,920 --> 00:40:35,950 Dan mari kita berjalan melalui file h. 634 00:40:35,950 --> 00:40:39,110 Kontrol, ini [tidak terdengar] logika. 635 00:40:39,110 --> 00:40:47,280 Tekan Control dan drag Tampilan teks ke dalam deklarasi. 636 00:40:47,280 --> 00:40:48,780 Kita akan memanggil outputView itu. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Terhubung. 639 00:40:53,670 --> 00:40:59,420 Jadi di sini kita telah mengumumkan baru properti untuk kelas ViewController kami. 640 00:40:59,420 --> 00:41:02,300 Dan properti baru hanya tampilan teks 641 00:41:02,300 --> 00:41:05,000 kami telah menciptakan di gedung antarmuka. 642 00:41:05,000 --> 00:41:07,990 Jadi dengan cara itu kita bisa Akses semua data 643 00:41:07,990 --> 00:41:13,630 dan memanipulasi segala sesuatu yang ada di dalam tampilan output, yang mengagumkan. 644 00:41:13,630 --> 00:41:19,260 >> Jadi dalam kode kami yang sebenarnya, mari kita melakukan sesuatu dengan itu. 645 00:41:19,260 --> 00:41:23,810 Jadi, kali ini ketika kita berada seperti pencetakan out hasil akhir untuk Mario, 646 00:41:23,810 --> 00:41:28,020 kami berada di tidak masuk apa-apa. 647 00:41:28,020 --> 00:41:30,080 Maksudku kita bisa menjaga pernyataan logging. 648 00:41:30,080 --> 00:41:41,490 Selain itu, kami mengirim pembacaan kita hanya 649 00:41:41,490 --> 00:41:47,622 diciptakan untuk tampilan output, yang adalah UI textview baru saja kita buat. 650 00:41:47,622 --> 00:41:48,746 Sekarang mari kita lihat apa yang terjadi. 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 memiliki piramida di app sekarang. 654 00:41:59,130 --> 00:42:06,720 >> Sehingga pengguna dapat melihat output kami karena kami telah menyalin output dari kode kita 655 00:42:06,720 --> 00:42:08,045 antarmuka kami. 656 00:42:08,045 --> 00:42:10,950 Itu cukup bagus. 657 00:42:10,950 --> 00:42:14,990 Ini sebenarnya tidak menarik karena kita can-- 658 00:42:14,990 --> 00:42:18,250 Semua aplikasi yang dilakukan adalah menunjukkan piramida untuk Anda, 659 00:42:18,250 --> 00:42:20,520 dan tidak ada yang dapat Anda lakukan tentang hal itu. 660 00:42:20,520 --> 00:42:22,330 Ini tidak terlalu menarik. 661 00:42:22,330 --> 00:42:27,840 Jadi sekarang mari kita membuat tombol yang akan menghapus pandangan. 662 00:42:27,840 --> 00:42:30,290 Tampaknya tombol akan membantu. 663 00:42:30,290 --> 00:42:33,270 Drag dan drop. 664 00:42:33,270 --> 00:42:33,900 Tombol satu. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Tombol dua. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Jadi ketika kita klik kiri tombol, tampilan harus jelas. 669 00:42:52,052 --> 00:42:53,635 Harus ada apa-apa di layar. 670 00:42:53,635 --> 00:42:56,970 Dan ketika kita klik tombol kanan, Mario, 671 00:42:56,970 --> 00:42:59,740 pandangan akan muncul lagi. 672 00:42:59,740 --> 00:43:05,510 Jadi cara ini kami juga melakukan hal ajaib, kontrol dan tarik 673 00:43:05,510 --> 00:43:08,740 dengan deklarasi kelas di asisten director-- 674 00:43:08,740 --> 00:43:11,600 dalam asisten penampil. 675 00:43:11,600 --> 00:43:18,620 Dalam hal ini kita menentukan bahwa yang harus 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 yang disebut clearMario, 679 00:43:26,830 --> 00:43:34,210 yang merupakan metode yang akan dipanggil setiap kali kita menekan tombol yang jelas. 680 00:43:34,210 --> 00:43:41,030 Jadi sebenarnya kode kita, mari kita menempatkan teks output dan lihat output 681 00:43:41,030 --> 00:43:44,620 menjadi apa-apa, dan dengan cara itu itu akan tampak jelas. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Selain itu, mari kita ciptakan Metode lain yang disebut runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh maaf, yang seharusnya tidak menjadi properti. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Baiklah, yang seharusnya menjadi tindakan juga. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Dan ketika fungsi yang disebut, 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 baik-baik saja. 692 00:44:39,780 --> 00:44:41,120 Apakah itu kompilasi? 693 00:44:41,120 --> 00:44:43,920 Iya Nih. 694 00:44:43,920 --> 00:44:45,090 Sekarang kita memiliki pandangan. 695 00:44:45,090 --> 00:44:46,560 Kami memiliki output. 696 00:44:46,560 --> 00:44:50,040 Dan mari kita lihat apa yang terjadi. 697 00:44:50,040 --> 00:44:52,590 Yang sudah pergi. 698 00:44:52,590 --> 00:44:54,500 Ini kembali lagi. 699 00:44:54,500 --> 00:44:57,620 Jadi di sini kita telah ditentukan apa fungsi 700 00:44:57,620 --> 00:45:00,400 akan dipanggil saat kita ketik sesuatu, 701 00:45:00,400 --> 00:45:03,160 ketika kita menekan tombol tertentu. 702 00:45:03,160 --> 00:45:07,890 Ini pada dasarnya adalah Skema tindakan Target 703 00:45:07,890 --> 00:45:12,510 untuk event driven pemrograman di Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Selain itu, itu tidak terlalu menarik 705 00:45:15,030 --> 00:45:19,810 karena kita tidak bisa benar-benar mengubah seberapa tinggi piramida akan, 706 00:45:19,810 --> 00:45:23,640 jadi kita mungkin ingin entah bagaimana mendapatkan input dari user 707 00:45:23,640 --> 00:45:29,490 dan mengubah ketinggian piramida berdasarkan apa yang mereka produksi. 708 00:45:29,490 --> 00:45:32,900 Jadi kita akan melakukan itu. 709 00:45:32,900 --> 00:45:38,720 Jadi saat ini ketika kita sebut runMario, kita tidak hanya menyebut Mario langsung. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Judul yang satu ini. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Delegasi. 714 00:46:23,700 --> 00:46:25,160 Hal ini sangat menarik. 715 00:46:25,160 --> 00:46:26,720 Apa delegasi? 716 00:46:26,720 --> 00:46:28,950 Aku akan menempatkan diri di sini. 717 00:46:28,950 --> 00:46:31,038 Dan kita akan melihat apa artinya nanti. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Jadi di sini kita pada dasarnya menciptakan contoh spesifik disebut peringatan UI 720 00:46:51,120 --> 00:46:52,210 Tampilan. 721 00:46:52,210 --> 00:46:54,440 Pandangan UI peringatan adalah pada dasarnya apa yang akan Anda 722 00:46:54,440 --> 00:46:58,940 lihat setiap kali sesuatu muncul dan meminta Anda untuk memasukkan, 723 00:46:58,940 --> 00:47:03,080 seperti apa yang akan terjadi ketika Anda mencoba untuk membeli sesuatu di toko aplikasi. 724 00:47:03,080 --> 00:47:14,250 >> Selain itu, setelah Anda menciptakannya, kita hanya menunjukkan waspada. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Baiklah, mari kita cepat Tes akan bekerja atau tidak. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Itu sangat dingin. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Sekarang mari kita benar-benar membuat field input untuk waspada UI. 731 00:47:59,120 --> 00:48:01,170 Ini adalah bagaimana kita melakukan itu. 732 00:48:01,170 --> 00:48:07,490 Dan kita harus memiliki Tampilan masukan untuk waspada. 733 00:48:07,490 --> 00:48:09,020 Keren banget. 734 00:48:09,020 --> 00:48:12,330 Katakan saja 10. 735 00:48:12,330 --> 00:48:14,900 >> Ini tidak melakukan apa-apa yang benar sekarang karena panggilan 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 Agak aneh karena setiap kali 738 00:48:23,470 --> 00:48:30,790 kita menekan tombol bawah, setiap kali kita tekan tombol pada tampilan waspada, 739 00:48:30,790 --> 00:48:35,560 sesuatu harus terjadi, tapi itu tidak terjadi. 740 00:48:35,560 --> 00:48:37,220 Bagaimana kita menangkap itu? 741 00:48:37,220 --> 00:48:41,280 Bagaimana kita tahu bahwa pengguna telah diberhentikan pandangan peringatan 742 00:48:41,280 --> 00:48:45,630 dan sudah masuk nomor, karena sekarang tidak ada yang benar-benar terjadi. 743 00:48:45,630 --> 00:48:50,450 >> Nah, sudah bisa anda duga benar, delegasi. 744 00:48:50,450 --> 00:48:55,440 Jadi di samping semua deklarasi ini, 745 00:48:55,440 --> 00:49:03,190 kita perlu menambahkan delegasi baru untuk disebut UI tampilan peringatan delegasi. 746 00:49:03,190 --> 00:49:06,440 Sehingga setiap interaksi atau acara 747 00:49:06,440 --> 00:49:10,190 bahwa kita akan memiliki dengan tampilan UI peringatan 748 00:49:10,190 --> 00:49:14,100 akan ditangani oleh kelas kami juga. 749 00:49:14,100 --> 00:49:26,297 >> Jadi selain itu, akan waspada tombol tampilan klik pada indeks. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Ini tercapai. 752 00:49:37,730 --> 00:49:42,020 Jadi dalam hal ini kita harus already-- jadi kita harus 753 00:49:42,020 --> 00:49:46,210 menemukan sebuah protokol yang akan menangani event saat 754 00:49:46,210 --> 00:49:51,320 kita klik tombol Selesai pada tampilan siaga. 755 00:49:51,320 --> 00:49:55,976 Jadi setiap kali kita mengabaikan pandangan waspada, ini harus terjadi. 756 00:49:55,976 --> 00:49:57,350 Mari saya hanya menguji dengan sangat cepat. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Baik memang, kami telah sampai di 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 miliki sebelumnya 761 00:50:43,120 --> 00:50:45,350 masuk dalam tampilan peringatan. 762 00:50:45,350 --> 00:50:48,505 Dan berdasarkan teks, kami akan menampilkan Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Hal ini sangat cepat ternyata jika benar-benar bekerja atau tidak. 765 00:50:55,480 --> 00:50:59,476 Jadi dalam hal ini, jika kita masukan, katakanlah, 10, kita harus melihat 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Sangat baik, kami memiliki beberapa di sini. 768 00:51:05,210 --> 00:51:06,470 Itu cukup bagus. 769 00:51:06,470 --> 00:51:16,840 Sekarang langkah terakhir akan be-- Jadi Langkah terakhir yang perlu kita lakukan sekarang 770 00:51:16,840 --> 00:51:21,100 hanya panggilan Mario dengan Tingkat berdasarkan input 771 00:51:21,100 --> 00:51:23,270 bahwa kita telah dimasukkan ke dalam pandangan waspada. 772 00:51:23,270 --> 00:51:26,920 Jadi kita perlu mengkonversi string ini ke iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Meluap statis sangat mengagumkan. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Dan kemudian kita sebut diri Nilai marioWithLevels. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Mari kita lihat akan itu benar-benar bekerja atau tidak. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Kita sudah diberikan piramida. 781 00:52:01,550 --> 00:52:04,785 Mari kita mencoba untuk mengubah ketinggian. 782 00:52:04,785 --> 00:52:06,530 Itu benar-benar bekerja. 783 00:52:06,530 --> 00:52:07,610 Hal ini cukup keren. 784 00:52:07,610 --> 00:52:10,420 Sehingga sekarang Anda bisa hanya masukan nilai apapun yang Anda inginkan. 785 00:52:10,420 --> 00:52:12,440 Mari kita hanya mengatakan empat. 786 00:52:12,440 --> 00:52:14,260 Itu cukup mengagumkan. 787 00:52:14,260 --> 00:52:17,090 Jadi ini pada dasarnya adalah contoh yang sangat cepat 788 00:52:17,090 --> 00:52:23,170 untuk cara membuat sebuah proyek di s kode dan bagaimana untuk benar-benar cepat kawat sampai 789 00:52:23,170 --> 00:52:26,220 beberapa peristiwa yang benar-benar sederhana dan fungsi. 790 00:52:26,220 --> 00:52:28,840 >> Jadi sumber akan untuk diletakkan online nanti. 791 00:52:28,840 --> 00:52:33,400 Jadi jika Anda tertarik bagaimana iOS Mario bekerja, 792 00:52:33,400 --> 00:52:38,360 Aku akan menempatkan persis sama proyek ke website CS50 nanti. 793 00:52:38,360 --> 00:52:41,260 Kami pada dasarnya sudah selesai dengan musim panas, dan sebelum kita selesai 794 00:52:41,260 --> 00:52:45,190 Saya hanya ingin menunjukkan kalian untuk beberapa sumber daya yang benar-benar mengagumkan 795 00:52:45,190 --> 00:52:47,550 tersedia secara online. 796 00:52:47,550 --> 00:52:52,270 >> Jelas dokumentasi Apel akan menjadi sangat membantu. 797 00:52:52,270 --> 00:52:57,630 Tapi selain itu, saya terutama merekomendasikan empat sumber, kode sekolah, 798 00:52:57,630 --> 00:53:02,120 rumah pohon, AppCoda dan WWDC video. 799 00:53:02,120 --> 00:53:07,270 Sekolah kode dan rumah pohon yang dua website mendidik online, 800 00:53:07,270 --> 00:53:10,210 yang secara khusus fokus pada rekayasa perangkat lunak. 801 00:53:10,210 --> 00:53:16,930 Khusus untuk kode sekolah, mereka memiliki tutorial yang benar-benar baik pada iOS. 802 00:53:16,930 --> 00:53:19,550 >> Itu adalah contoh yang sangat cepat untuk itu. 803 00:53:19,550 --> 00:53:22,980 Mereka benar-benar membuat benar-benar cute-- melihat bahwa iPhone kecil yang lucu 804 00:53:22,980 --> 00:53:24,920 Dude di sana, itu cukup mengagumkan. 805 00:53:24,920 --> 00:53:31,010 Dan cara mereka menjelaskan Tujuan Sintaks C sangat jelas. 806 00:53:31,010 --> 00:53:32,230 Rumah pohon 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 sebuah blog yang dijalankan oleh benar-benar berpengalaman Tujuan C 809 00:53:38,130 --> 00:53:39,120 programmer. 810 00:53:39,120 --> 00:53:43,950 Dan semua tutorial di AppCoda adalah cukup pendek dan mudah diimplementasikan, 811 00:53:43,950 --> 00:53:45,390 sangat dianjurkan. 812 00:53:45,390 --> 00:53:47,700 >> Dan jika Anda seorang pengembang, pasti pergi memeriksa 813 00:53:47,700 --> 00:53:55,660 bagaimana video WWDC di mana Anda dapat belajar tentang pemrograman iOS terbaru 814 00:53:55,660 --> 00:53:58,250 teknik, API dan perpustakaan. 815 00:53:58,250 --> 00:54:02,850 Sehingga cukup banyak untuk seminar. 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 bersenang-senang menciptakan aplikasi iOS Anda sendiri. 818 00:54:08,040 --> 00:54:09,302