1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Selamat Datang lihat seminar CS50 - 3 00:00:09,800 --> 00:00:11,630 Pengantar iOS. 4 00:00:11,630 --> 00:00:13,290 Terima kasih semua untuk datang. 5 00:00:13,290 --> 00:00:16,610 Saya harap Anda hanya bersemangat seperti saya tentang iOS. 6 00:00:16,610 --> 00:00:22,300 Tahun lalu, aku mengambil CS50 sebagai mahasiswa tahun kedua, dan pada dasarnya saya belajar iOS untuk saya 7 00:00:22,300 --> 00:00:23,490 tugas akhir. 8 00:00:23,490 --> 00:00:26,350 Dan itu cukup - 9 00:00:26,350 --> 00:00:30,530 Yah, itu tidak mudah, tetapi ada banyak dukungan tutorial online. 10 00:00:30,530 --> 00:00:33,760 Dan aku benar-benar berharap bahwa dengan ini seminar, aku akan memberikan kalian kepala 11 00:00:33,760 --> 00:00:36,750 mulai pada pengembangan iOS 12 00:00:36,750 --> 00:00:40,490 >> Jadi, dalam hal pengembangan iOS, ada dua hal utama yang kita 13 00:00:40,490 --> 00:00:42,090 ingin menutup hari ini. 14 00:00:42,090 --> 00:00:43,290 Pertama, bahasa - 15 00:00:43,290 --> 00:00:46,650 bahasa ini akan berada di Objective-C. Kami akan benar-benar mendengar 16 00:00:46,650 --> 00:00:47,750 sesuatu yang benar-benar menarik. 17 00:00:47,750 --> 00:00:51,500 Jadi, Anda dapat bergabung dengan seluruh Apple komunitas pengembang dan membangun beberapa 18 00:00:51,500 --> 00:00:52,940 apps benar-benar mengagumkan. 19 00:00:52,940 --> 00:00:58,670 >> Juga, iOS 7 indah, mudah-mudahan, untuk sebagian dari Anda. 20 00:00:58,670 --> 00:01:01,130 Tapi itu kontroversial, saya tahu. 21 00:01:01,130 --> 00:01:05,349 Dan terutama, apa yang ingin saya lakukan adalah panduan Anda melalui Objective-C, dan juga 22 00:01:05,349 --> 00:01:10,650 Xcode, yang merupakan terintegrasi lingkungan pengembangan yang Anda akan 23 00:01:10,650 --> 00:01:13,460 untuk bekerja di iOS. 24 00:01:13,460 --> 00:01:19,140 >> Jadi, hanya kata pada Objective-C. Pada dasarnya, ini sama persis seperti C, 25 00:01:19,140 --> 00:01:22,790 tapi dengan banyak hal-hal lain. 26 00:01:22,790 --> 00:01:27,710 Dan, yang lebih ketat, itu sebenarnya super-set C. Jadi apa pun yang Anda 27 00:01:27,710 --> 00:01:32,280 bisa dilakukan di C sekarang, yang pada dasarnya seperti pset 0 sampai 6, Anda 28 00:01:32,280 --> 00:01:34,170 dapat dilakukan di Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Jadi, jangan merasa takut tentang hal ini baru bahasa yang Anda akan belajar. 30 00:01:38,620 --> 00:01:42,120 Anda sudah tertutup banyak itu, karena Anda sudah semua dilakukan C masa lalu ini 31 00:01:42,120 --> 00:01:45,880 semester, kecuali sekarang Anda akan untuk memiliki lebih banyak untuk bekerja dengan. 32 00:01:45,880 --> 00:01:49,270 Dan aku hanya akan membawa Anda melalui beberapa contoh untuk menyoroti beberapa 33 00:01:49,270 --> 00:01:53,920 perbedaan utama yang saya temukan adalah ketika benar-benar penting yang saya pelajari 34 00:01:53,920 --> 00:01:57,180 Objective-C tahun lalu. 35 00:01:57,180 --> 00:02:00,910 >> Yah sebenarnya, jadi, titik lainnya adalah, Objective-C adalah, jelas, 36 00:02:00,910 --> 00:02:02,200 object-oriented. 37 00:02:02,200 --> 00:02:06,340 Dan kita akan membahas sedikit tentang apa artinya nanti. 38 00:02:06,340 --> 00:02:11,340 Pada dasarnya, ini seperti bagaimana Anda bekerja dengan structs dalam pset masa lalu, dengan 39 00:02:11,340 --> 00:02:13,360 node dan lainnya yang serupa hal-hal seperti itu. 40 00:02:13,360 --> 00:02:17,110 Kecuali, di Objective-C, semuanya obyek, dan Anda akan menjadi 41 00:02:17,110 --> 00:02:20,720 melewati sekitar pointer ke objek daripada nilai-nilai sendiri. 42 00:02:20,720 --> 00:02:25,050 Jadi, itu hanya sesuatu yang penting yang perlu diingat. 43 00:02:25,050 --> 00:02:29,140 >> Jadi, kenapa tidak kita mulai dengan beberapa perbedaan sintaks antara C dan 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Saya ingin menyoroti # include, Anda tahu, io.h standar dalam C dan C + +, dengan 46 00:02:38,310 --> 00:02:44,030 versi Objective-C itu, yang adalah # impor, dan kemudian semacam 47 00:02:44,030 --> 00:02:44,790 file header. 48 00:02:44,790 --> 00:02:48,165 Dalam hal ini, akan UIKit, Anda tahu, memangkas UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Hal ini juga bisa, Anda tahu, MKMapView Anda memangkas MKMapview.h jika Anda ingin 50 00:02:53,560 --> 00:02:56,370 yang harus dilakukan, seperti, peta dalam aplikasi Anda. 51 00:02:56,370 --> 00:02:57,110 Hal yang serupa seperti itu. 52 00:02:57,110 --> 00:03:01,250 >> Jadi, yang penting adalah meliputi kini telah berubah untuk mengimpor. 53 00:03:01,250 --> 00:03:04,340 Tapi gagasan itu masih tetap. 54 00:03:04,340 --> 00:03:10,460 Kau akan mengimpor semacam dari file header ke dalam program Anda. 55 00:03:10,460 --> 00:03:14,550 >> Saya juga ingin menyoroti perbedaan antara printf dan NSLog. 56 00:03:14,550 --> 00:03:19,760 Namun, seperti yang kita katakan sebelumnya, Objective-C adalah ketat super-set 57 00:03:19,760 --> 00:03:22,800 C, yang berarti bahwa ada printf di Objective-C, juga. 58 00:03:22,800 --> 00:03:24,340 Namun, kebanyakan orang tidak menggunakan itu. 59 00:03:24,340 --> 00:03:28,245 Kebanyakan orang menggunakan NSLog ini karena memberikan cap waktu, dan kita akan melihat 60 00:03:28,245 --> 00:03:29,780 dalam laga nanti. 61 00:03:29,780 --> 00:03:33,560 Tapi, itu umumnya lebih berguna cara untuk mencetak variabel. 62 00:03:33,560 --> 00:03:38,220 >> Dan saya juga ingin menggarisbawahi bahwa NSLog mengambil hanya sama 63 00:03:38,220 --> 00:03:41,650 nilai placeholder sebagai printf tidak - 64 00:03:41,650 --> 00:03:45,900 jadi% d adalah untuk int, % F adalah untuk pelampung. 65 00:03:45,900 --> 00:03:49,750 Namun, saya ingin menyoroti sangat terakhir ini - 66 00:03:49,750 --> 00:03:52,960 NSLog% pada tanda - 67 00:03:52,960 --> 00:03:55,390 yang merupakan tempat bagi suatu benda. 68 00:03:55,390 --> 00:04:01,160 Dan seperti yang saya katakan sebelumnya, penawaran Objective-C cukup banyak terutama di objek, 69 00:04:01,160 --> 00:04:05,020 dan jadi ini akan datang dalam digunakan ketika Anda ingin mencetak, mungkin, mungkin sebuah 70 00:04:05,020 --> 00:04:08,390 NSArray, atau NSDictionary, atau NSString. 71 00:04:08,390 --> 00:04:13,750 >> Jadi, juga, perhatikan bahwa, di NSLog kami pernyataan, kita memiliki di tanda di depan 72 00:04:13,750 --> 00:04:15,380 kutipan - 73 00:04:15,380 --> 00:04:20,769 yaitu untuk menandakan string yang, sekarang, di Objective-C adalah obyek. 74 00:04:20,769 --> 00:04:23,310 Mereka tidak lagi hanya bintang arang. 75 00:04:23,310 --> 00:04:25,530 Mereka obyek dan diperlakukan seperti itu. 76 00:04:25,530 --> 00:04:28,690 >> Jadi, itu benar-benar penting bahwa ketika Anda menggunakan NSLog dibutuhkan dalam NS 77 00:04:28,690 --> 00:04:32,580 string, yang berarti bahwa Anda akan memiliki untuk memasukkan di di depan Anda 78 00:04:32,580 --> 00:04:34,270 tanda kutip. 79 00:04:34,270 --> 00:04:38,290 Dan itulah mengapa Anda lihat, di sini, di semua fungsi saya panggilan ke NSLog ini, saya 80 00:04:38,290 --> 00:04:42,400 memiliki di di depan tanda kutip, bahkan meskipun% d dan% f adalah 81 00:04:42,400 --> 00:04:45,200 semua sama dari C. 82 00:04:45,200 --> 00:04:47,930 >> Ada pertanyaan sejauh ini? 83 00:04:47,930 --> 00:04:50,920 Saya akan mencoba untuk pergi melalui ini dengan cepat sehingga bahwa kita dapat memiliki lebih banyak waktu untuk bekerja 84 00:04:50,920 --> 00:04:55,210 dengan Xcode dan Objective-C, sehingga bahwa kalian bisa mendapatkan lebih banyak 85 00:04:55,210 --> 00:04:57,630 akrab dengannya. 86 00:04:57,630 --> 00:05:01,900 >> Selanjutnya, saya ingin menyoroti sesuatu konseptual penting. 87 00:05:01,900 --> 00:05:05,130 Jadi, di C, kebanyakan hal fungsi. 88 00:05:05,130 --> 00:05:06,280 Kami membuat panggilan fungsi. 89 00:05:06,280 --> 00:05:10,190 Kami menyatakan fungsi dengan cara ini, dengan mengembalikan tipe pertama, maka 90 00:05:10,190 --> 00:05:13,570 nama fungsi, tanda kurung, dan kemudian argumen apapun dan jenis 91 00:05:13,570 --> 00:05:15,590 argumen ini kami ingin lulus masuk 92 00:05:15,590 --> 00:05:19,970 Dan Objective-C, karena semuanya adalah obyek atau kelas - 93 00:05:19,970 --> 00:05:23,970 jadi kelas dan objek adalah dua istilah yang sebagian besar identik dengan satu sama lain, 94 00:05:23,970 --> 00:05:28,270 jadi saya dapat menggunakannya secara bergantian seluruh seminar. 95 00:05:28,270 --> 00:05:34,090 >> Tapi, Anda akan melihat bahwa kita memiliki metode dalam Objective-C ketimbang fungsi. 96 00:05:34,090 --> 00:05:36,390 Dan metode milik objek. 97 00:05:36,390 --> 00:05:38,950 Jadi seperti, mungkin mengambil misalnya, node - 98 00:05:38,950 --> 00:05:40,250 Jenis kami [Tak terdengar] 99 00:05:40,250 --> 00:05:44,390 simpul dari pset 6 atau 5 - 100 00:05:44,390 --> 00:05:49,590 kita memiliki kata, properti, atau node pointer berikutnya. 101 00:05:49,590 --> 00:05:53,880 Metode hanya fungsi di dalam semacam struktur. 102 00:05:53,880 --> 00:05:57,510 >> Jadi, dalam hal ini, struktur akan obyek, dan kemudian metode ini 103 00:05:57,510 --> 00:05:59,260 sesuatu yang dimiliki oleh suatu objek. 104 00:05:59,260 --> 00:06:02,650 Dan ini adalah bagaimana Anda akan menyatakan, semacam, sebuah metode. 105 00:06:02,650 --> 00:06:07,990 Anda akan mulai dengan, sekali lagi, kembali Jenis - jadi, saya mencoba untuk warna 106 00:06:07,990 --> 00:06:12,990 kode kata-kata kunci di sini sehingga kalian dapat melihat, setidaknya, format 107 00:06:12,990 --> 00:06:17,650 kesamaan antara fungsi deklarasi dan deklarasi metode. 108 00:06:17,650 --> 00:06:21,990 Jadi, Anda mulai dengan, Anda tahu, return Jenis - dalam kasus ini, itu adalah array, atau 109 00:06:21,990 --> 00:06:23,910 sebuah pointer NSArray - 110 00:06:23,910 --> 00:06:26,710 dan kemudian Anda memiliki metode ini. 111 00:06:26,710 --> 00:06:30,900 Dan kemudian, apa yang menarik di sini adalah bahwa alih-alih memiliki kurung, kami 112 00:06:30,900 --> 00:06:32,900 memiliki titik dua ini. 113 00:06:32,900 --> 00:06:38,450 Dan kemudian, di depan argumen kami, kami menempatkan, sekali lagi, dalam kurung jenis 114 00:06:38,450 --> 00:06:39,370 argumen kami. 115 00:06:39,370 --> 00:06:43,160 >> Jadi, sekarang saya mencoba untuk membuat perbandingan antara, Anda tahu, n dan 116 00:06:43,160 --> 00:06:45,450 nomor, karena mereka kedua ints sejenisnya. 117 00:06:45,450 --> 00:06:49,580 Dan kemudian, yang lain adalah jenis NSUInteger. 118 00:06:49,580 --> 00:06:56,390 Dan kemudian, dengan Objective-C, ketika Anda ingin memiliki beberapa argumen 119 00:06:56,390 --> 00:07:00,030 klausa Anda metode, Anda, semacam, memisahkan mereka jenis seperti ini - 120 00:07:00,030 --> 00:07:03,790 Saya tidak yakin bagaimana untuk menggambarkan itu, tapi ini adalah contoh yang baik tentang bagaimana Anda 121 00:07:03,790 --> 00:07:06,530 dapat memiliki beberapa argumen di sana. 122 00:07:06,530 --> 00:07:10,360 >> Anda bisa, tentu saja, hanya benar-benar mengabaikan usus andArray NSArray 123 00:07:10,360 --> 00:07:13,240 Array jika Anda ingin hanya metode yang mengambil satu argumen. 124 00:07:13,240 --> 00:07:13,677 Ya, pertanyaan. 125 00:07:13,677 --> 00:07:18,701 >> AUDIENCE: Apakah kedua NSUInteger dan Argumen NSArray yang dapat diambil dalam 126 00:07:18,701 --> 00:07:21,530 dalam NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: Ya. 128 00:07:22,060 --> 00:07:23,400 Jadi, mari saya jelaskan. 129 00:07:23,400 --> 00:07:23,790 Jadi, ya. 130 00:07:23,790 --> 00:07:30,260 Jadi, pertanyaannya adalah yang NSUInteger dan NSArray * jenis argumen, 131 00:07:30,260 --> 00:07:31,570 dan itu benar. 132 00:07:31,570 --> 00:07:35,700 Jadi, Anda selalu ingin menentukan apa jenis argumen Anda. 133 00:07:35,700 --> 00:07:41,570 Dan di sini, aku mencoba untuk memperkenalkan Anda dengan beberapa sintaks dan vocab dari 134 00:07:41,570 --> 00:07:45,910 Objective-C, sehingga mereka adalah jenis yang sebenarnya bahwa Anda akan berurusan dengan. 135 00:07:45,910 --> 00:07:48,970 >> Dan seperti yang Anda akan melihat, array tidak lagi, semacam, 136 00:07:48,970 --> 00:07:50,780 braket hal-hal sederhana. 137 00:07:50,780 --> 00:07:52,060 Mereka benda. 138 00:07:52,060 --> 00:07:56,700 Meskipun, jika kita pergi ke berikutnya slide, kita dapat melihat bahwa kita bisa 139 00:07:56,700 --> 00:08:02,510 keras-kode NSArray di Objective-C dengan hanya sebuah simbol di di depan 140 00:08:02,510 --> 00:08:04,190 kurung. 141 00:08:04,190 --> 00:08:08,650 Aku tidak, sebenarnya, cukup yakin apakah Saya sintaksis keras-kode array 142 00:08:08,650 --> 00:08:16,020 benar untuk versi C, tapi itu seharusnya dalam array C. 143 00:08:16,020 --> 00:08:19,760 >> Jadi, ini adalah bagaimana Anda akan, Anda tahu, mungkin menggunakan fungsi atau 144 00:08:19,760 --> 00:08:21,990 metode yang kita buat sebelumnya. 145 00:08:21,990 --> 00:08:22,250 Benar? 146 00:08:22,250 --> 00:08:25,340 Jadi, ini adalah di mana kita mendeklarasikan kami fungsi dan metode kami. 147 00:08:25,340 --> 00:08:28,020 Dan sekarang kita ingin menggunakannya dalam program kami, dan ini adalah 148 00:08:28,020 --> 00:08:29,450 bagaimana kita akan melakukannya. 149 00:08:29,450 --> 00:08:32,400 Jadi, di C, Anda akan memiliki, kau tahu, mungkin, bool b, dan Anda menetapkan ke 150 00:08:32,400 --> 00:08:36,549 sama fungsi, dan kemudian Anda lulus dalam argumen. 151 00:08:36,549 --> 00:08:39,190 >> Di Objective-C, itu cukup banyak hal yang sama. 152 00:08:39,190 --> 00:08:43,370 Anda memiliki NSArray * my_array, dan itu akan sama - sekarang, satu-satunya 153 00:08:43,370 --> 00:08:47,460 perbedaan di sini adalah hal objek ini, yang saya sudah ditandai dengan warna kuning, dan 154 00:08:47,460 --> 00:08:51,180 seperti yang Anda lihat, di C, ada ada kata kuning lainnya. 155 00:08:51,180 --> 00:08:54,170 Dan itu karena metode milik dengan benda tertentu. 156 00:08:54,170 --> 00:08:59,800 Jadi itulah mengapa saya harus memiliki objek itu, semacam, menyebut metode ini pada 157 00:08:59,800 --> 00:09:04,360 angka nol, dan kemudian NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Setiap pertanyaan itu? 159 00:09:05,350 --> 00:09:12,190 >> Kita akan melihat konsep-konsep ini dalam aksi segera ketika kita masuk ke demo. 160 00:09:12,190 --> 00:09:13,400 OK. 161 00:09:13,400 --> 00:09:17,170 Sekarang, saya ingin berbicara sedikit singkat tentang Xcode 5, yang merupakan 162 00:09:17,170 --> 00:09:21,160 lingkungan pengembangan terintegrasi bahwa Anda akan bekerja dengan. 163 00:09:21,160 --> 00:09:26,160 Saya tahu banyak dari Anda, atau beberapa dari Anda, tidak memiliki Mac, yang merupakan masalah 164 00:09:26,160 --> 00:09:30,490 karena Xcode tidak tersedia untuk Windows dan PC. 165 00:09:30,490 --> 00:09:32,785 Jangan tanya kenapa, tapi mungkin - 166 00:09:32,785 --> 00:09:33,730 yeah, perusahaan. 167 00:09:33,730 --> 00:09:35,290 Apapun. 168 00:09:35,290 --> 00:09:39,360 Tapi bagaimanapun, jadi, saya minta maaf jika beberapa Anda harus men-download beberapa jenis 169 00:09:39,360 --> 00:09:43,000 mesin virtual untuk Mac di untuk menjalankan Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Tapi itu adalah bagus cukup perangkat lunak untuk digunakan. 171 00:09:46,460 --> 00:09:51,280 >> Jadi, sebelum kita menyelam ke dalam apapun dari demo, saya hanya ingin menampilkan 172 00:09:51,280 --> 00:09:55,700 gambar dari apa yang tampak seperti di Xcode Anda jendela, dan kemudian juga berbicara tentang 173 00:09:55,700 --> 00:09:57,670 apa seluruh ruang ini. 174 00:09:57,670 --> 00:10:01,600 Jadi, itu jenis seperti belajar bagaimana menggunakan Microsoft Word, kecuali Anda ingin 175 00:10:01,600 --> 00:10:04,675 mendapatkan dibiasakan dengan semua hal yang berbeda yang 176 00:10:04,675 --> 00:10:06,250 yang terjadi di sini. 177 00:10:06,250 --> 00:10:11,160 >> Jadi pertama, saya ingin menunjukkan Anda ke toolbar di bagian atas. 178 00:10:11,160 --> 00:10:14,450 Anda akan melihat bahwa, di bagian atas, Anda akan memiliki nama file - 179 00:10:14,450 --> 00:10:18,100 atau, sebenarnya, nama proyek Anda dan kemudian nama file Anda. 180 00:10:18,100 --> 00:10:20,940 Mencatat bermain dan tombol berhenti. 181 00:10:20,940 --> 00:10:24,210 Mereka adalah orang-orang bahwa Anda akan gunakan untuk menjalankan aplikasi Anda pada 182 00:10:24,210 --> 00:10:25,600 simulator - 183 00:10:25,600 --> 00:10:26,550 simulator iOS. 184 00:10:26,550 --> 00:10:29,940 Hal ini secara otomatis dilengkapi dengan Xcode 5, sehingga Anda tidak perlu khawatir tentang 185 00:10:29,940 --> 00:10:32,070 men-download beberapa jenis simulator. 186 00:10:32,070 --> 00:10:34,700 Anda hanya menekan bermain dan kemudian berjalan app Anda. 187 00:10:34,700 --> 00:10:39,230 Dan Anda dapat bermain-main dengan Anda, dan Anda akan melihat bagaimana kerjanya nanti. 188 00:10:39,230 --> 00:10:42,690 >> Dan kemudian, di tengah, tentu saja, adalah di mana semua kode yang indah Anda 189 00:10:42,690 --> 00:10:44,240 akan pergi. 190 00:10:44,240 --> 00:10:48,340 Dan kemudian, di sisi kiri, Anda akan memiliki ini, semacam, folder - 191 00:10:48,340 --> 00:10:50,340 navigasi - 192 00:10:50,340 --> 00:10:53,970 dan kemudian, Anda juga akan melihat bahwa, bersama dengan icon folder, ada 193 00:10:53,970 --> 00:10:57,680 sekelompok ikon lain ada yang akan berguna nantinya. 194 00:10:57,680 --> 00:11:04,710 >> Dan kemudian, di sisi kanan adalah utilitas daerah di mana Anda dapat bekerja dengan 195 00:11:04,710 --> 00:11:09,620 beberapa objek dan menentukan, Anda tahu, apa warna harus, apa 196 00:11:09,620 --> 00:11:12,040 font teks harus, dan sebagainya. 197 00:11:12,040 --> 00:11:15,890 Meskipun, segala sesuatu yang Anda lakukan di daerah utilitas, Anda dapat 198 00:11:15,890 --> 00:11:17,480 dilakukan di kode juga. 199 00:11:17,480 --> 00:11:21,630 Jadi, saya akan pergi melalui dua contoh penggunaan, sederhana, tidak ada kode di 200 00:11:21,630 --> 00:11:23,730 semua - atau kode yang sangat minimal - 201 00:11:23,730 --> 00:11:28,290 ayat semua kode, hanya agar kalian tahu apa yang Anda bisa dan tidak bisa dilakukan di 202 00:11:28,290 --> 00:11:29,260 Xcode dan Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> Dan kemudian, akhirnya, turun di bagian bawah, Anda memiliki area debug. 204 00:11:32,770 --> 00:11:37,270 Jadi, Anda tidak lagi harus menjalankan GDB, dan sebagainya, pada program Anda. 205 00:11:37,270 --> 00:11:39,180 Secara otomatis melakukannya untuk Anda. 206 00:11:39,180 --> 00:11:42,880 Dan Anda juga dapat mencetak barang ke daerah ini. 207 00:11:42,880 --> 00:11:46,790 Jadi sebenarnya, kemudian, kita akan pergi melalui mario.c, jika kalian masih ingat 208 00:11:46,790 --> 00:11:49,000 itu, di Xcode. 209 00:11:49,000 --> 00:11:50,360 Sehingga harus menyenangkan. 210 00:11:50,360 --> 00:11:55,870 >> Dan kemudian, hanya untuk membawa kembali ke Objective-C, saya ingin menyoroti apa 211 00:11:55,870 --> 00:11:57,440 Anda dapat melakukannya dengan jika pernyataan. 212 00:11:57,440 --> 00:12:03,160 Jadi, Anda tahu, karena Objective-C adalah superset dari C, semua yang Anda lakukan adalah, 213 00:12:03,160 --> 00:12:06,890 harfiah, sama seperti C. Anda hanya memiliki sedikit perbedaan. 214 00:12:06,890 --> 00:12:10,810 Jadi, Anda akan melihat form untuk jika Pernyataan masih sama - Anda memiliki 215 00:12:10,810 --> 00:12:14,280 jika, dan kemudian Anda memiliki tanda kurung dengan kondisi di dalam, dan kemudian 216 00:12:14,280 --> 00:12:17,150 kurung kurawal untuk apa pun yang Anda ingin melakukan dalam sana. 217 00:12:17,150 --> 00:12:21,680 >> Namun, saya ingin menempatkan ini slide up di sini, hanya untuk menggambarkan bahwa, 218 00:12:21,680 --> 00:12:25,680 karena kita sedang berhadapan dengan benda-benda sekarang, kita harus menggunakan hal-hal ini 219 00:12:25,680 --> 00:12:31,240 disebut seperti, sama dengan string, yang adalah, kebetulan, metode yang 220 00:12:31,240 --> 00:12:33,710 string atau obyek NSString. 221 00:12:33,710 --> 00:12:38,600 Jadi, kata, dalam hal ini, adalah NSString obyek, dan memiliki metode yang disebut adalah 222 00:12:38,600 --> 00:12:44,150 sama dengan string, dan kemudian kita melewati dalam string keras-kode untuk melihat 223 00:12:44,150 --> 00:12:48,110 apakah mereka adalah sama satu sama lain. 224 00:12:48,110 --> 00:12:51,580 >> Ada pertanyaan sejauh ini? 225 00:12:51,580 --> 00:12:52,440 OK. 226 00:12:52,440 --> 00:12:56,190 Dan, saya ingin pergi ke untuk pernyataan juga. 227 00:12:56,190 --> 00:13:01,420 >> Jadi, misalnya, jika kita ingin lingkaran lebih panjang dari string di C, ini 228 00:13:01,420 --> 00:13:03,710 harus akrab bagi Anda. 229 00:13:03,710 --> 00:13:07,840 Dan, di Objective-C, aku ingin untuk menyoroti hal ini, semacam, 230 00:13:07,840 --> 00:13:09,235 metode yang disebut count. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Well, sebenarnya, biarkan aku hanya mengambil kembali. 233 00:13:15,550 --> 00:13:17,200 Count adalah metode array. 234 00:13:17,200 --> 00:13:21,070 Namun, itu lebih khusus milik array, yang mengapa Anda 235 00:13:21,070 --> 00:13:22,380 dapat menggunakan notasi titik. 236 00:13:22,380 --> 00:13:25,870 Tapi aku tidak ingin masuk ke terlalu banyak hal-hal konseptual ini, saya hanya ingin 237 00:13:25,870 --> 00:13:30,140 untuk menunjukkan kepada Anda bagaimana hal-hal akan terlihat seperti di Objective-C terhadap C. 238 00:13:30,140 --> 00:13:35,400 >> Dan juga, saya ingin menunjukkan bahwa meskipun aku telah menggunakan NSUInteger 239 00:13:35,400 --> 00:13:39,860 di depan semua saya i di Objective-C, Anda juga dapat menggunakan int, karena int adalah 240 00:13:39,860 --> 00:13:42,290 benar-benar berlaku di Objective-C, juga. 241 00:13:42,290 --> 00:13:42,475 Ya? 242 00:13:42,475 --> 00:13:44,350 >> AUDIENCE: Apakah hanya gaya, atau - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Ya. 244 00:13:44,760 --> 00:13:46,060 Jadi, seperti yang Anda lihat - 245 00:13:46,060 --> 00:13:49,390 jadi, pertanyaan itu adalah bahwa hanya masalah gaya. 246 00:13:49,390 --> 00:13:54,820 Seperti yang Anda lihat, aku punya, semacam, star asterisk hal bawah di bagian bawah, dan 247 00:13:54,820 --> 00:13:59,870 link yang membawa Anda ke Stack Overflow membentuk, di mana seseorang menjelaskan 248 00:13:59,870 --> 00:14:03,640 perbedaan antara int di NSInteger dan NSUInteger. 249 00:14:03,640 --> 00:14:05,540 Jadi, Anda dapat membaca tentang itu nanti. 250 00:14:05,540 --> 00:14:07,640 Slide ini akan, tentu saja, tersedia untuk Anda. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Mari kita lihat. 253 00:14:11,280 --> 00:14:12,150 OK, mengagumkan. 254 00:14:12,150 --> 00:14:15,410 Jadi, ini juga termasuk dalam slide karena saya pikir ini adalah besar 255 00:14:15,410 --> 00:14:19,370 website yang memperkenalkan Anda sintaks Objective-C. 256 00:14:19,370 --> 00:14:24,410 Jadi, sebenarnya, mengapa kita tidak pindah ke Chrome dan memeriksa website ini? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Benar. 259 00:14:31,300 --> 00:14:36,670 Jadi, apa yang saya ingin menunjukkan Orang-orang di sini adalah gambar ini. 260 00:14:36,670 --> 00:14:41,630 Jadi, ini, semacam, akan menjadi apa Anda akan melihat dalam setiap 261 00:14:41,630 --> 00:14:42,890 File Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 Sebenarnya, kenapa tidak kita hanya mengambil waktu untuk, semacam, ambil ini masuk 264 00:14:51,430 --> 00:14:53,470 >> Jadi, buku ini - 265 00:14:53,470 --> 00:14:55,880 itulah objek yang kita sedang berhadapan dengan. 266 00:14:55,880 --> 00:14:59,680 Dan kemudian, itu jelas akan menjadi diwarisi dari beberapa objek lain, tetapi 267 00:14:59,680 --> 00:15:01,810 Anda tidak perlu khawatir tentang itu. 268 00:15:01,810 --> 00:15:04,430 Dan saat itu, mungkin, memiliki beberapa variabel anggota. 269 00:15:04,430 --> 00:15:09,160 >> Yang penting saya ingin menunjukkan Anda adalah metode instan, di sini. 270 00:15:09,160 --> 00:15:12,670 Jadi, metode instan dilambangkan dengan tanda minus ini. 271 00:15:12,670 --> 00:15:15,550 Dan kemudian, karena Anda akan melihat, kami sudah mulai melihat paradigma 272 00:15:15,550 --> 00:15:17,670 untuk metode deklarasi, kan? 273 00:15:17,670 --> 00:15:22,670 Jenis kembali, nama metode, dan maka jenis argumen, dan 274 00:15:22,670 --> 00:15:24,660 maka nama argumen. 275 00:15:24,660 --> 00:15:29,090 Dan tanda minus ini berarti bahwa itu adalah metode contoh, yang berarti bahwa 276 00:15:29,090 --> 00:15:32,270 metode ini hanya tersedia bagi benda-benda yang telah instantiated. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Untuk kontras itu, metode dengan ditambah tanda di depan mereka adalah kelas 279 00:15:39,100 --> 00:15:43,640 metode, yang berarti bahwa Anda dapat memanggil metode ini, bahkan jika Anda tidak memiliki 280 00:15:43,640 --> 00:15:45,970 namun obyek diciptakan. 281 00:15:45,970 --> 00:15:51,600 Jadi, untuk contoh yang jelas, NSString adalah sebuah kelas. 282 00:15:51,600 --> 00:15:55,850 Dan Anda dapat menelepon, misalnya, metode kelas pada NSString - 283 00:15:55,850 --> 00:15:58,660 sebenarnya, seperti, kata NSString. 284 00:15:58,660 --> 00:16:02,050 >> Namun, dalam rangka untuk menggunakan metode, Anda benar-benar 285 00:16:02,050 --> 00:16:03,460 perlu membuat string. 286 00:16:03,460 --> 00:16:08,980 Sebagai contoh, NSString star string yang sama pada tanda kutip, hello world. 287 00:16:08,980 --> 00:16:10,910 Dan kemudian, Anda dapat menggunakan metode ini - 288 00:16:10,910 --> 00:16:11,990 metode instan - 289 00:16:11,990 --> 00:16:14,790 pada yang hello world tali. 290 00:16:14,790 --> 00:16:17,825 Jadi, itulah perbedaan antara metode instan dan metode kelas. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> Dan, kita hanya menutupi bagian ini. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Properti adalah hal lain yang dalam objek, pada dasarnya. 295 00:16:33,750 --> 00:16:37,530 Dan Anda menyatakan mereka dengan pada kata kunci properti. 296 00:16:37,530 --> 00:16:39,940 Anda memiliki pilihan ini, di sini, bahwa saya akan menjelaskannya nanti ketika 297 00:16:39,940 --> 00:16:43,110 kita masuk ke demo. 298 00:16:43,110 --> 00:16:43,660 Ya? 299 00:16:43,660 --> 00:16:43,950 Hi. 300 00:16:43,950 --> 00:16:45,440 >> AUDIENCE: Bisakah Anda memperbesar, please? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: Oh ya. 302 00:16:46,130 --> 00:16:46,560 Maaf. 303 00:16:46,560 --> 00:16:49,140 >> AUDIENCE: Terima kasih. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Itu harus jauh lebih baik. 305 00:16:50,005 --> 00:16:51,240 >> AUDIENCE: Ya. 306 00:16:51,240 --> 00:16:53,940 Terima kasih. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Ya, tolong ingatkan saya jika Aku lupa untuk zoom in atau zoom out. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Jadi, ini adalah semua yang saya inginkan untuk menunjukkan Anda untuk - 310 00:17:03,570 --> 00:17:05,970 whoa, itu banyak - 311 00:17:05,970 --> 00:17:06,790 untuk website ini. 312 00:17:06,790 --> 00:17:12,210 Jadi, mari kita kembali ke slide kami. 313 00:17:12,210 --> 00:17:17,819 >> Sebenarnya, sekarang mari kita sejenak untuk menyelam ke dalam demo. 314 00:17:17,819 --> 00:17:25,490 Jadi, kita akan mulai dengan proyek Xcode baru. 315 00:17:25,490 --> 00:17:33,040 Jadi, jika Anda akan membuka Xcode pada semua mesin Anda, itu akan membawa Anda beberapa 316 00:17:33,040 --> 00:17:36,720 Halaman di mana dikatakan, seperti, baik terbuka up proyek yang sudah ada atau yang baru 317 00:17:36,720 --> 00:17:39,230 proyek, dan Anda harus klik sebuah proyek baru. 318 00:17:39,230 --> 00:17:41,477 Dan kemudian, ia harus mengambil Anda ke layar ini. 319 00:17:41,477 --> 00:17:41,593 Ya? 320 00:17:41,593 --> 00:17:44,279 >> AUDIENCE: Jika kita tidak memiliki Mac, kita hanya semacam dingin? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: Atau lihat di dengan seseorang, ya. 322 00:17:46,870 --> 00:17:47,740 Ya. 323 00:17:47,740 --> 00:17:50,660 Anda dapat bersantai, juga. 324 00:17:50,660 --> 00:17:51,570 OK. 325 00:17:51,570 --> 00:17:55,410 >> Jadi, apa yang kita akan lakukan pertama, sekarang, adalah, sebenarnya, kita akan melakukan 326 00:17:55,410 --> 00:17:56,600 satu aplikasi tampilan. 327 00:17:56,600 --> 00:18:01,340 Jadi, jika Anda akan melihat, apa yang baik tentang Xcode dan dukungan Apple untuk 328 00:18:01,340 --> 00:18:05,690 pengembang adalah bahwa Anda memiliki banyak template untuk bekerja dengan sudah. 329 00:18:05,690 --> 00:18:09,210 Anda bisa, misalnya, membuat aplikasi master-detail. 330 00:18:09,210 --> 00:18:10,920 Anda dapat membuat game - 331 00:18:10,920 --> 00:18:13,860 dan benar-benar, saya tidak akan masuk ke permainan, karena permainan adalah cerita yang berbeda 332 00:18:13,860 --> 00:18:15,320 untuk pengembangan iOS. 333 00:18:15,320 --> 00:18:18,930 Dan mereka agak terpisah, jadi saya tidak akan membahas itu. 334 00:18:18,930 --> 00:18:22,580 >> Kemudian, Anda telah berbasis page aplikasi. 335 00:18:22,580 --> 00:18:24,010 Anda memiliki aplikasi tab - 336 00:18:24,010 --> 00:18:29,350 jadi seperti, misalnya, Bank of America mungkin memiliki, seperti, aplikasi tab. 337 00:18:29,350 --> 00:18:32,140 Ini yang di mana Anda memiliki tombol di bagian bawah. 338 00:18:32,140 --> 00:18:34,750 Dan kemudian, Anda memiliki Kit permainan Sprite. 339 00:18:34,750 --> 00:18:38,670 >> Atau Anda dapat bekerja dari awal, yang adalah apa yang akan kita lakukan nanti. 340 00:18:38,670 --> 00:18:42,470 Tapi mari kita, pertama, mulai dengan aplikasi tampilan tunggal. 341 00:18:42,470 --> 00:18:48,590 Kemudian, ia akan meminta nama produk, dan kita bisa melakukan tes. 342 00:18:48,590 --> 00:18:50,190 Nama Organisasi - 343 00:18:50,190 --> 00:18:54,140 jadi, nama organisasi, perusahaan identifier - 344 00:18:54,140 --> 00:18:58,100 mereka adalah penting jika Anda akan untuk menempatkan aplikasi Anda di toko app. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Selain itu, kode Anda akan berjalan baik-baik saja tanpa ini. 347 00:19:05,116 --> 00:19:09,940 >> Ini akan menjadi penting jika Anda ingin - jadi, per se, seperti, menempatkan aplikasi Anda 348 00:19:09,940 --> 00:19:14,080 ke telepon Anda atau sesuatu, dan uji itu, Anda tahu, dalam kehidupan nyata - 349 00:19:14,080 --> 00:19:15,360 ini akan menjadi penting. 350 00:19:15,360 --> 00:19:20,110 Hal ini cenderung biasanya dikaitkan dengan semacam rekening pengembang 351 00:19:20,110 --> 00:19:20,970 dengan Apple. 352 00:19:20,970 --> 00:19:24,740 >> Dan, aku tahu, mungkin, banyak dari kalian tidak akan memiliki account pengembang. 353 00:19:24,740 --> 00:19:26,460 Aku tahu universitas memiliki satu. 354 00:19:26,460 --> 00:19:27,630 Saya pikir CS memiliki satu. 355 00:19:27,630 --> 00:19:32,770 Tapi, Anda bisa email saya dan saya akan mencoba untuk mencari tahu untuk Anda. 356 00:19:32,770 --> 00:19:38,210 Tapi sekarang, aku baru saja dimasukkan ke dalam beberapa hal placeholder di sini. 357 00:19:38,210 --> 00:19:41,250 >> Dan Anda bisa, tentu saja, di sini, pilih apakah Anda ingin menjadi semata-mata 358 00:19:41,250 --> 00:19:44,410 iPhone, iPad di, atau keduanya - 359 00:19:44,410 --> 00:19:46,630 aplikasi universal. 360 00:19:46,630 --> 00:19:56,170 Jadi, untuk saat ini, mari kita lakukan universal, hanya untuk melihat kedua sisi platform. 361 00:19:56,170 --> 00:19:57,120 >> Mari kita lihat. 362 00:19:57,120 --> 00:20:01,510 Jadi, sekarang, aku akan menyimpan dalam semacam folder. 363 00:20:01,510 --> 00:20:04,500 Tidak peduli di mana - Anda dapat selalu bergerak nanti. 364 00:20:04,500 --> 00:20:09,380 Dan, sekarang, kita dibawa untuk proyek Xcode kami. 365 00:20:09,380 --> 00:20:12,890 Saya tidak akan khawatir tentang semua ini. 366 00:20:12,890 --> 00:20:17,510 Saya akan menyarankan tidak menyentuh apapun ini, kecuali Anda tahu persis apa 367 00:20:17,510 --> 00:20:18,260 Anda lakukan. 368 00:20:18,260 --> 00:20:21,750 Jadi, semua ini, hanya mengabaikan untuk sebagian besar. 369 00:20:21,750 --> 00:20:26,940 Anda tidak perlu menyentuhnya, dan jika Anda melakukan Anda mengacaukan beberapa hal di sini, 370 00:20:26,940 --> 00:20:28,600 menjadi sedikit rumit. 371 00:20:28,600 --> 00:20:32,480 >> Jadi, kenapa tidak kita melihat ke dalam file pada 372 00:20:32,480 --> 00:20:34,700 sisi kiri di navigator kami. 373 00:20:34,700 --> 00:20:37,060 Di sini, kita memiliki AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Kami memiliki AppDelegate.m Jadi, seperti yang Anda akan pemberitahuan, kami telah file header, yang 375 00:20:43,430 --> 00:20:45,720 berakhir di titik jam, dan kami memiliki implementasi - 376 00:20:45,720 --> 00:20:46,970 sebenarnya, biarkan aku zoom in 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 OK. 379 00:20:57,060 --> 00:20:59,940 Mari saya zoom in 380 00:20:59,940 --> 00:21:05,810 >> Benar, jadi Anda telah file header dan Anda memiliki file implementasi. 381 00:21:05,810 --> 00:21:07,060 Sebenarnya - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 OK. 384 00:21:09,240 --> 00:21:11,800 Ini sedikit aneh, tapi beruang dengan saya. 385 00:21:11,800 --> 00:21:16,140 Kemudian, karena kita telah memilih tampilan tunggal aplikasi, kita akan menjadi 386 00:21:16,140 --> 00:21:17,340 bekerja dengan storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Jadi, storyboard adalah sesuatu bahwa Apple telah datang dengan untuk benar-benar membantu 388 00:21:22,140 --> 00:21:26,550 pengembang cepat prototipe aplikasi mereka. 389 00:21:26,550 --> 00:21:29,410 Jadi, ini adalah di mana Anda dapat membuat sebuah aplikasi tanpa menulis 390 00:21:29,410 --> 00:21:31,710 baris kode. 391 00:21:31,710 --> 00:21:35,390 Namun, dalam pandangan aplikasi kita satu, yang kita lakukan, tentu saja, memiliki 392 00:21:35,390 --> 00:21:41,270 mengajukan pandangan kami, yang adalah controller tampilan. 393 00:21:41,270 --> 00:21:45,150 Jadi, kita memiliki header dan file implementasi, di sini. 394 00:21:45,150 --> 00:21:52,350 >> Dan, aku akan memperkecil sekarang karena kita harus bekerja dalam storyboard. 395 00:21:52,350 --> 00:21:55,190 Jadi, inilah pandangan kami. 396 00:21:55,190 --> 00:22:00,120 Jika kita, sederhana, menjalankan aplikasi sekarang, ada tidak banyak menarik terjadi. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Jadi, Anda akan melihat layar putih ini. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> Dan, di daerah utilitas, kita dapat menambahkan banyak hal yang berbeda untuk itu. 401 00:22:14,010 --> 00:22:19,290 Jadi, ketika Anda sedang berhadapan dengan layar di iOS, pengendali tampilan adalah 402 00:22:19,290 --> 00:22:23,150 benda-benda yang merangkum, semacam, pandangan Anda. 403 00:22:23,150 --> 00:22:26,980 Jadi, pandangan kontroler selalu telah properti yang disebut pandangan. 404 00:22:26,980 --> 00:22:29,610 Dan pandangan itu, biasanya, berisi, Anda tahu, apa yang Anda 405 00:22:29,610 --> 00:22:30,810 ingin melihat pada layar. 406 00:22:30,810 --> 00:22:39,210 >> Jadi, baik, mari kita mulai dengan menempatkan, mungkin, mungkin label. 407 00:22:39,210 --> 00:22:41,450 Jadi, mari kita menaruh label di sana - 408 00:22:41,450 --> 00:22:44,080 menempelkannya di tengah. 409 00:22:44,080 --> 00:22:49,560 Jadi, sekarang aku sudah mengklik label, saya bisa masuk ke properti inspektur 410 00:22:49,560 --> 00:22:51,510 dan mulai mengubah nilainya. 411 00:22:51,510 --> 00:22:55,040 Sebut saja CS50 Colours. 412 00:22:55,040 --> 00:22:58,220 >> Dan, saya juga dapat mengubah font. 413 00:22:58,220 --> 00:23:02,630 Jadi, bukannya melakukan sistem, yaitu default, kita bisa melakukan satu kustom. 414 00:23:02,630 --> 00:23:03,770 Kita dapat mengubah - 415 00:23:03,770 --> 00:23:06,453 Anda tahu, ultralight, membuatnya 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 Dan kemudian, kita bisa membuat kotak kami lebih besar. 418 00:23:11,370 --> 00:23:14,410 >> AUDIENCE: Apakah Anda pikir Anda dapat memperbesar hanya sedikit lebih, mungkin? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: Ya? 420 00:23:14,810 --> 00:23:16,196 OK. 421 00:23:16,196 --> 00:23:17,450 >> AUDIENCE: Hanya tekan itu? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Mari kita lihat. 423 00:23:19,020 --> 00:23:20,382 Apakah pekerjaan ini? 424 00:23:20,382 --> 00:23:22,270 >> AUDIENCE: Just lulus Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Tentu. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 OK. 428 00:23:25,940 --> 00:23:26,275 Mengagumkan. 429 00:23:26,275 --> 00:23:27,072 >> AUDIENCE: Label di bawah? 430 00:23:27,072 --> 00:23:28,920 Label? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: Apa itu? 432 00:23:29,480 --> 00:23:32,050 >> AUDIENCE: Apa drop-down adalah label di bawah? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Jadi, pertanyaannya adalah, apa drop-down adalah label di bawah? 434 00:23:35,170 --> 00:23:37,260 Seharusnya, sederhana, berada di bawah sini. 435 00:23:37,260 --> 00:23:39,330 Saya kira itu hal kubus. 436 00:23:39,330 --> 00:23:40,910 Tapi biasanya, ini adalah default - 437 00:23:40,910 --> 00:23:43,250 Aku hanya akan turun di sini sampai aku menemukan label. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Ya. 440 00:23:47,730 --> 00:23:48,950 >> Jadi sekarang, kami memiliki label kami. 441 00:23:48,950 --> 00:23:51,040 Mari pusat itu. 442 00:23:51,040 --> 00:23:56,410 Dan Xcode memberi kita pedoman untuk centering objek. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Jadi, sekarang mari kita menjalankan kode kami lagi. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Di sana kami pergi. 447 00:24:08,800 --> 00:24:10,310 Jadi, kita memiliki CS50 Colours. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 Dan sekarang, mari kita meletakkan tombol di sana, kan? 450 00:24:15,420 --> 00:24:17,480 Karena kita ingin membuat ini interaktif. 451 00:24:17,480 --> 00:24:19,410 Jadi, mari kita menempatkan sebuah tombol di sini. 452 00:24:19,410 --> 00:24:39,020 Dan kita akan menyebutnya tombol ini "tekan di sini untuk melanjutkan. "Kami akan pusat itu, juga 453 00:24:39,020 --> 00:24:39,990 Sebenarnya, itu sudah terpusat. 454 00:24:39,990 --> 00:24:40,630 Ya. 455 00:24:40,630 --> 00:24:43,130 >> Jadi, sekarang kita memiliki sebuah tombol. 456 00:24:43,130 --> 00:24:53,000 Dan jika kita menjalankan ini lagi, kita akan memiliki tombol kecil yang bagus di sini. 457 00:24:53,000 --> 00:24:56,520 Dan saya bisa klik, tapi tidak melakukan apa-apa, karena kita tidak melakukan 458 00:24:56,520 --> 00:24:58,500 apa-apa dengan tombol belum. 459 00:24:58,500 --> 00:25:01,740 >> Jadi, mari kita membuat pandangan lain, kan? 460 00:25:01,740 --> 00:25:04,160 Jadi, katakanlah saya ingin memanfaatkan bahwa tombol dan saya ingin 461 00:25:04,160 --> 00:25:05,730 pergi ke halaman lain - 462 00:25:05,730 --> 00:25:06,820 pandangan lain. 463 00:25:06,820 --> 00:25:14,440 Apa yang akan saya lakukan adalah, saya dapat membuat pandangan controller, kan? 464 00:25:14,440 --> 00:25:19,690 Sekarang saya akan klik pada tombol, dan kemudian, yang penting adalah, aku akan 465 00:25:19,690 --> 00:25:20,910 klik - atau - 466 00:25:20,910 --> 00:25:23,660 ya, tekan kontrol pada keyboard. 467 00:25:23,660 --> 00:25:24,880 Control. 468 00:25:24,880 --> 00:25:27,005 Klik pada tombol, dan kemudian tarik. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Jadi, ingatlah untuk menahan tombol kontrol. 471 00:25:33,550 --> 00:25:35,160 Mari kita lakukan itu lagi. 472 00:25:35,160 --> 00:25:40,930 Jadi, memegang kendali, klik, dan tarik apa yang ingin Anda lakukan. 473 00:25:40,930 --> 00:25:41,520 OK. 474 00:25:41,520 --> 00:25:43,610 >> Dan sekarang, saya memiliki beberapa pilihan di sini. 475 00:25:43,610 --> 00:25:47,900 Saya dapat baik mendorong, atau aku bisa melakukan moda angkutan, atau aku bisa melakukan custom. 476 00:25:47,900 --> 00:25:50,900 Push hanya jika Anda memiliki pengontrol navigasi. 477 00:25:50,900 --> 00:25:54,270 Saat ini, pandangan pertama kami kontroler tidak dalam setiap 478 00:25:54,270 --> 00:25:55,610 pengontrol navigasi. 479 00:25:55,610 --> 00:25:59,500 Jadi, controller navigasi adalah salah satu yang memberikan tombol kembali pada 480 00:25:59,500 --> 00:26:03,910 aplikasi iOS di mana Anda miliki, Anda tahu, bahwa atas, semacam, bar tebal - 481 00:26:03,910 --> 00:26:06,480 di mana Anda bisa kembali, atau maju, dan sebagainya. 482 00:26:06,480 --> 00:26:07,740 Saat ini, saya tidak memiliki itu. 483 00:26:07,740 --> 00:26:11,050 Jadi, itu sebabnya aku tidak bisa melakukan push. 484 00:26:11,050 --> 00:26:12,480 >> Jadi, saya mengklik mendorong sengaja, di sini. 485 00:26:12,480 --> 00:26:16,480 Dan sebenarnya, mari kita menjalankan kode, dan harus crash pada saya. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Hanya jika saya menekan tombol meskipun, jadi - 488 00:26:22,960 --> 00:26:23,420 benar. 489 00:26:23,420 --> 00:26:26,480 Jadi, ini buruk. 490 00:26:26,480 --> 00:26:31,330 >> Dan, seperti yang Anda lihat, di sini, kami memiliki pesan kesalahan. 491 00:26:31,330 --> 00:26:35,460 Jadi, "Dorong segues hanya dapat digunakan ketika Sumber kontroler dikelola oleh 492 00:26:35,460 --> 00:26:40,700 contoh UI navigasi pengendali. " Jadi, karena ini bukan dalam sebuah 493 00:26:40,700 --> 00:26:44,030 navigasi controller, Aku tidak bisa melakukan itu. 494 00:26:44,030 --> 00:26:48,782 >> Jadi, sekarang, aku akan kembali ke folder, akan kembali ke storyboard. 495 00:26:48,782 --> 00:26:51,680 >> AUDIENCE: Apa navigasi controller, lagi? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Jadi, sekarang saya akan menunjukkan kepada Anda. 497 00:26:55,260 --> 00:26:56,200 Mari kita lihat. 498 00:26:56,200 --> 00:27:00,510 Jadi, aku akan klik pada tampilan ini controller, dan kemudian aku akan pergi 499 00:27:00,510 --> 00:27:03,920 sampai dengan produk - 500 00:27:03,920 --> 00:27:06,240 sebenarnya, tidak, maaf - Editor. 501 00:27:06,240 --> 00:27:08,360 Dan aku akan pergi ke - 502 00:27:08,360 --> 00:27:09,350 sebenarnya, aku klik di atasnya? 503 00:27:09,350 --> 00:27:10,070 Tidak. 504 00:27:10,070 --> 00:27:11,080 Di sana kami pergi. 505 00:27:11,080 --> 00:27:16,270 Aku akan pergi ke editor, turun untuk menanamkan dalam, dan kemudian navigasi 506 00:27:16,270 --> 00:27:17,520 kontroler. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> OK. 509 00:27:20,720 --> 00:27:27,750 Dan, ruang kerja saya terlihat sangat berantakan, jadi mari kita membersihkan ini. 510 00:27:27,750 --> 00:27:29,000 Jadi, semua ini adalah storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 Dan dengan cara ini - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, berhenti - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Saya dapat dengan cepat membangun sesuatu seperti ini. 517 00:27:50,860 --> 00:27:53,020 Dan kemudian, sekarang aku bisa kembali, kau tahu? 518 00:27:53,020 --> 00:27:55,730 >> Tapi ini adalah jenis membosankan, kan? 519 00:27:55,730 --> 00:28:03,020 Jadi, apa yang ingin saya lakukan adalah, saya tidak ingin untuk membuat, hanya cukup, pandangan 520 00:28:03,020 --> 00:28:03,870 kontroler. 521 00:28:03,870 --> 00:28:07,720 Katakanlah saya ingin benar-benar membuat tampilan tabel controller, jadi saya bisa dimasukkan ke dalam 522 00:28:07,720 --> 00:28:12,110 beberapa warna yang bagus, ke dalam tabel. 523 00:28:12,110 --> 00:28:16,210 >> Jadi, sekarang aku sudah dimasukkan ke dalam tampilan tabel saya controller, saya perlu untuk menghubungkan kembali 524 00:28:16,210 --> 00:28:18,560 dari tombol ini untuk controller tampilan. 525 00:28:18,560 --> 00:28:21,780 Jadi saya perlu melakukan kontrol saya, klik, tarik hal lagi. 526 00:28:21,780 --> 00:28:27,318 Dan sekarang aku bisa melakukan push, karena saya menanamkan itu dalam controller navigasi. 527 00:28:27,318 --> 00:28:32,210 >> AUDIENCE: Navigasi kontrol hanya memungkinkan Anda untuk pergi dari satu tempat ke tempat? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: Ya. 529 00:28:33,540 --> 00:28:38,670 Jadi, lebih teknis, itu sebuah objek di mana - 530 00:28:38,670 --> 00:28:43,150 jadi, dalam navigasi objek controller, itu 531 00:28:43,150 --> 00:28:44,780 melacak array. 532 00:28:44,780 --> 00:28:48,300 Dan array memegang semua berikutnya melihat kontroler. 533 00:28:48,300 --> 00:28:51,560 Itu sebabnya ketika Anda menekan kembali, itu kembali ke halaman sebelumnya. 534 00:28:51,560 --> 00:28:55,260 Karena controller navigasi objek, atau kode yang menangani 535 00:28:55,260 --> 00:28:58,890 obyek ini, memiliki sebuah array yang membuat melacak ini pengendali tampilan, dan 536 00:28:58,890 --> 00:29:01,870 kemudian, Anda tahu, dq pandangan controller dan memberikan Anda kembali 537 00:29:01,870 --> 00:29:02,750 sebelumnya. 538 00:29:02,750 --> 00:29:05,200 >> Jadi, ini adalah hal-hal teknis, tapi - 539 00:29:05,200 --> 00:29:07,505 dan saya tunjukkan nanti di kode, jika kita punya waktu. 540 00:29:07,505 --> 00:29:10,270 Aku agak kehabisan waktu, tapi - 541 00:29:10,270 --> 00:29:15,610 >> Jadi, dengan tampilan tabel, apa yang bisa kita lakukan adalah - 542 00:29:15,610 --> 00:29:18,440 Ini biasanya diatur secara otomatis ke Dynamic Prototype - 543 00:29:18,440 --> 00:29:20,640 kita akan membuatnya Sel statis, kalau tidak kita akan 544 00:29:20,640 --> 00:29:22,920 mengalami beberapa masalah. 545 00:29:22,920 --> 00:29:28,470 >> Dan kemudian, katakanlah aku akan untuk memiliki satu bagian. 546 00:29:28,470 --> 00:29:31,000 Jadi, bagian seperti - 547 00:29:31,000 --> 00:29:35,160 jika Anda pernah melihat aplikasi musik, ketika Anda memiliki seniman, bagian akan 548 00:29:35,160 --> 00:29:37,830 menjadi A melalui Z's - 549 00:29:37,830 --> 00:29:38,780 huruf - 550 00:29:38,780 --> 00:29:42,600 dan kemudian, Anda tahu, individu baris akan menjadi nama artis. 551 00:29:42,600 --> 00:29:47,460 Jadi, apa yang keren di sini, adalah bahwa saya bisa mengakses semua benda di dalam 552 00:29:47,460 --> 00:29:50,430 dari storyboard saya melalui ini menu drop-down, juga. 553 00:29:50,430 --> 00:29:56,600 >> Jadi, aku akan klik pada bagian saya, dan aku ingin, kau tahu, mungkin lima baris. 554 00:29:56,600 --> 00:30:00,770 Dan kemudian, dalam setiap baris, Saya ingin menempatkan label. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 Dan aku akan menelepon Biru ini. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 Dan kemudian, saya ingin menempatkan pandangan UI, Anda tahu, mungkin untuk, seperti, sebuah kotak kecil. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Sehingga saya bisa menunjukkan orang preview warna. 561 00:30:28,710 --> 00:30:34,150 Dan aku akan kembali ke properti dan mengubah warna itu untuk, oh, aku tidak 562 00:30:34,150 --> 00:30:35,510 tahu, yang satu ini. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> Dan kemudian, perhatikan juga, di sini, ketika saya memiliki aksesoris, saya dapat memiliki banyak 565 00:30:43,150 --> 00:30:46,160 aksesori yang berbeda bahwa Anda biasanya melihat. 566 00:30:46,160 --> 00:30:55,250 Indikator pengungkapan, detail, atau tanda centang, atau hanya sekedar detail. 567 00:30:55,250 --> 00:30:59,080 Jadi, mungkin kita bisa lakukan, seperti, pengungkapan indikator, misalnya. 568 00:30:59,080 --> 00:31:03,540 >> Dan kemudian, mengapa kita tidak mengambil ini, copy paste, dan menempatkan mereka ke dalam 569 00:31:03,540 --> 00:31:06,740 berikutnya baris tabel. 570 00:31:06,740 --> 00:31:08,115 Jadi, kita dapat memanggil Kuning ini. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 Dan saya mungkin harus memperpanjang ini. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Mari kita membuatnya kuning. 575 00:31:17,290 --> 00:31:20,610 Dan dengan cara ini, kita dapat menyalin tempel perjalanan ke bawah. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Apa itu? 578 00:31:25,370 --> 00:31:26,620 Purple. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Jadi, ini semua CS50 khas warna yang telah Anda lihat di kelas - 581 00:31:34,740 --> 00:31:37,160 sebenarnya, maaf - 582 00:31:37,160 --> 00:31:38,410 atau di website. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 Mudah-mudahan kalian bisa melihat apa yang saya lakukan di sini. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 OK. 587 00:31:57,890 --> 00:31:58,490 Yang terakhir. 588 00:31:58,490 --> 00:32:02,040 >> AUDIENCE: Bagaimana Anda menambahkan baris awalnya? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Jadi, pertanyaannya adalah, bagaimana aku menambahkan baris awalnya? 590 00:32:04,740 --> 00:32:07,500 Aku pergi ke bagian tabel ini - atau namun saya bisa 591 00:32:07,500 --> 00:32:09,200 pilih bagian tabel - 592 00:32:09,200 --> 00:32:11,250 dan kemudian, di sini, saya Diperbaharui jumlah baris. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> Dan, biarkan aku berharap bahwa ini bekerja. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 OK. 597 00:32:31,480 --> 00:32:32,870 Mari kita lihat apakah ini bekerja. 598 00:32:32,870 --> 00:32:34,000 Oh, sempurna, mengagumkan. 599 00:32:34,000 --> 00:32:35,300 OK. 600 00:32:35,300 --> 00:32:40,330 Sementara aku membangun demo saya, beberapa hal-hal yang tidak selaras, jadi, terima kasih untuk 601 00:32:40,330 --> 00:32:42,510 tepuk tangan. 602 00:32:42,510 --> 00:32:42,920 >> Ya. 603 00:32:42,920 --> 00:32:44,770 Jadi, mari kita lihat. 604 00:32:44,770 --> 00:32:47,550 Kami akan membuat sembilan ini hanya untuk membuat segala sesuatu - atau sebenarnya, mari kita 605 00:32:47,550 --> 00:32:51,420 mengubah semua ini menjadi pengungkapan indikator. 606 00:32:51,420 --> 00:32:55,790 Lalu, apa yang saya ingin menunjukkan kepada Anda, juga, adalah bagaimana saya dapat mengambil masing-masing 607 00:32:55,790 --> 00:32:59,230 baris tabel dan mereka berinteraksi - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 Tidak. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> Oh. 612 00:33:06,030 --> 00:33:07,230 Juga, saya ingin menunjukkan kepada Anda - 613 00:33:07,230 --> 00:33:13,080 di sini, saya dapat menempatkan judul saya navigasi controller, kan? 614 00:33:13,080 --> 00:33:17,090 Jadi sebenarnya, Anda akan melihat, segera setelah saya tertanam controller pandangan ini dalam 615 00:33:17,090 --> 00:33:22,010 dari controller navigasi, kita melihat ini bar navigasi di bagian atas kami 616 00:33:22,010 --> 00:33:25,340 representasi storyboard dari controller tampilan. 617 00:33:25,340 --> 00:33:29,270 Jadi, ini memberikan kita, seperti, visual, semacam, membimbing ke layar terlihat kami. 618 00:33:29,270 --> 00:33:34,360 Hal ini jelas akan menjadi bar navigasi. 619 00:33:34,360 --> 00:33:40,950 >> Dan apa yang ingin saya lakukan dengan cepat, sekarang, yang dimasukkan ke dalam lain - 620 00:33:40,950 --> 00:33:45,880 jadi ini tampilan tabel kontroler yang saya lakukan dengan mengambil salah satu dari ini dan menyeretnya 621 00:33:45,880 --> 00:33:49,800 di sini, dan itulah yang memungkinkan saya untuk cepat, benar-benar, membuat tampilan tabel 622 00:33:49,800 --> 00:33:50,850 kontroler. 623 00:33:50,850 --> 00:33:54,100 Jika kita memiliki waktu meskipun, Anda akan melihat bahwa, pemrograman, itu adalah 624 00:33:54,100 --> 00:33:57,660 sedikit lebih sulit untuk membuat tabel controller pandangan, karena ada 625 00:33:57,660 --> 00:34:02,520 adalah beberapa metode yang diperlukan bagi Anda untuk, semacam, menulis 626 00:34:02,520 --> 00:34:07,130 dalam rangka untuk tampilan tabel controller untuk ditampilkan dengan benar. 627 00:34:07,130 --> 00:34:15,340 >> Namun, saya hanya ingin menunjukkan, sekarang, contoh di mana, jika aku mengambil ini, 628 00:34:15,340 --> 00:34:15,920 misalnya - 629 00:34:15,920 --> 00:34:18,290 Aku sudah dimasukkan ke dalam tampilan controller lain. 630 00:34:18,290 --> 00:34:27,320 Dan sekarang, katakanlah saya ingin mengontrol alt biru pertama saya 631 00:34:27,320 --> 00:34:28,980 baris tabel ke sini. 632 00:34:28,980 --> 00:34:31,070 Dan aku ingin menelepon Biru ini. 633 00:34:31,070 --> 00:34:32,570 Dan kemudian - 634 00:34:32,570 --> 00:34:34,159 mari kita lihat. 635 00:34:34,159 --> 00:34:41,050 Aku ada di tampilan sekarang, dan saya dapat mengubah latar belakang biru. 636 00:34:41,050 --> 00:34:45,945 >> Jadi, pemberitahuan, di sini, ini drop-down menu juga memberikan Anda sebuah hirarki semua 637 00:34:45,945 --> 00:34:47,040 benda-benda. 638 00:34:47,040 --> 00:34:50,530 Jadi suatu hal yang penting untuk dicatat, di sini, adalah bahwa semua hal ini, di sini - 639 00:34:50,530 --> 00:34:54,330 ini tampilan tabel controller, meja tampilan, tampilan tabel bagian, tampilan tabel 640 00:34:54,330 --> 00:34:57,169 sel - semua ini adalah objek, dalam kode. 641 00:34:57,169 --> 00:35:03,752 Jadi, Anda tahu, label sekarang berada di bawah tampilan konten, dan sebagainya. 642 00:35:03,752 --> 00:35:05,020 Seterusnya dan sebagainya. 643 00:35:05,020 --> 00:35:08,765 >> Jadi, jika kita menjalankan kode ini, kami akan melihat sesuatu - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 mari kita lihat apakah ini - ya. 646 00:35:17,870 --> 00:35:18,670 Jadi, di sana kita pergi. 647 00:35:18,670 --> 00:35:22,120 Tapi, jika kita tidak melakukan itu, tidak ada dari hal-hal lain bekerja. 648 00:35:22,120 --> 00:35:22,500 Benar? 649 00:35:22,500 --> 00:35:23,800 Jadi hanya satu ini bekerja. 650 00:35:23,800 --> 00:35:29,100 Dan, demi waktu, saya tidak akan masuk ke dalam, Anda tahu, menempatkan 651 00:35:29,100 --> 00:35:29,770 bawah yang lain. 652 00:35:29,770 --> 00:35:32,020 Dan ini adalah akhir, semacam, storyboard - 653 00:35:32,020 --> 00:35:33,400 apa yang saya ingin menunjukkan Anda untuk storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> Dan, saya punya bekerja contoh, sebenarnya, di sini. 656 00:35:43,490 --> 00:35:48,090 Jadi, ini adalah storyboard yang saya buat sebelumnya. 657 00:35:48,090 --> 00:35:52,740 Jadi, seperti yang Anda lihat, ini adalah kontroler navigasi saya. 658 00:35:52,740 --> 00:35:57,040 Kemudian saya memiliki pandangan pertama saya controller, maka saya punya saya tampilan tabel controller, 659 00:35:57,040 --> 00:35:58,980 dan kemudian aku memiliki semua ini - 660 00:35:58,980 --> 00:36:01,180 jadi sebelumnya, aku melakukan sesuatu yang sangat berbeda. 661 00:36:01,180 --> 00:36:04,450 Jadi, alasan-hal. 662 00:36:04,450 --> 00:36:07,930 Saya mungkin akan membersihkannya nanti sebelum Saya mengirimnya ke produksi. 663 00:36:07,930 --> 00:36:12,800 >> Tapi, jika kita menjalankan ini, kita akan melihat bahwa semua opsi 664 00:36:12,800 --> 00:36:14,050 tersedia bagi kita. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Kecuali saya tidak membuat latar belakang warna-warna. 667 00:36:21,320 --> 00:36:26,510 Jadi, aplikasi sederhana yang bagus. 668 00:36:26,510 --> 00:36:28,340 >> Sekarang, mari kita mencoba untuk mengatasi pemrograman ini. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 OK. 671 00:36:32,130 --> 00:36:37,570 Jadi, untuk melakukan itu, kita hanya akan untuk memulai sebuah proyek Xcode baru. 672 00:36:37,570 --> 00:36:41,920 Kita akan membuat sebuah aplikasi kosong sekarang, karena kita tidak ingin memiliki 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Jadi, saya hanya membatasi diri untuk tidak menggunakan salah satu storyboard, dan 675 00:36:46,590 --> 00:36:49,170 aplikasi kosong tidak akan memberi saya storyboard. 676 00:36:49,170 --> 00:36:52,256 Ini hanya untuk mencegah diri dari kecurangan. 677 00:36:52,256 --> 00:36:54,428 Mari kita lihat. 678 00:36:54,428 --> 00:36:55,360 Tunggu. 679 00:36:55,360 --> 00:36:55,960 Apakah saya - 680 00:36:55,960 --> 00:36:56,448 ya. 681 00:36:56,448 --> 00:36:57,698 OK. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Benar. 684 00:37:09,180 --> 00:37:16,790 Jadi, di sini, kita dibiarkan dengan tidak lain kode. 685 00:37:16,790 --> 00:37:19,460 Jadi, biarkan aku memindahkan jendela ini sedikit di atas. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Benar. 688 00:37:22,260 --> 00:37:28,160 Seperti yang dapat Anda lihat di sini, hanya file kita diberikan adalah AppDelegate.h dan dot 689 00:37:28,160 --> 00:37:30,500 m, dan kita tidak memiliki storyboard lagi. 690 00:37:30,500 --> 00:37:39,580 >> Jadi jika kita menjalankan ini, kita masih akan sampai ke layar putih, terima kasih Tuhan. 691 00:37:39,580 --> 00:37:42,280 OK - layar putih, tapi tidak ada yang lain. 692 00:37:42,280 --> 00:37:45,260 Dan, di sini adalah bagian penting. 693 00:37:45,260 --> 00:37:47,810 Ini adalah di mana tindakan terjadi. 694 00:37:47,810 --> 00:37:51,410 Pada versi sebelumnya, ada biasanya tidak ada kode di sini, tapi 695 00:37:51,410 --> 00:37:55,600 storyboard pada dasarnya memberikan kode untuk bagian ini. 696 00:37:55,600 --> 00:37:57,470 Aku tidak akan masuk ke rincian tentang bagaimana. 697 00:37:57,470 --> 00:38:02,890 >> Dan apa yang ingin kita lakukan sekarang adalah, kami ingin untuk masuk ke sini, dan ruang kecil ini 698 00:38:02,890 --> 00:38:05,050 mulai menciptakan aplikasi kami lagi. 699 00:38:05,050 --> 00:38:06,092 Jadi - 700 00:38:06,092 --> 00:38:06,318 ya? 701 00:38:06,318 --> 00:38:07,450 >> AUDIENCE: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Ya, tentu. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 OK. 706 00:38:14,520 --> 00:38:17,380 Aku akan mengetik, jadi ini seharusnya tidak terlalu banyak masalah. 707 00:38:17,380 --> 00:38:17,940 OK. 708 00:38:17,940 --> 00:38:22,720 >> Jadi, pertama, ingat kita ingin menciptakan controller navigasi, kan? 709 00:38:22,720 --> 00:38:27,090 Dan juga, seperti yang Anda lihat di sini, Xcode melakukan pekerjaan yang benar-benar hebat 710 00:38:27,090 --> 00:38:28,070 self-mengisi. 711 00:38:28,070 --> 00:38:31,650 Jadi, seperti yang Anda akan melihat, nama-nama segala sesuatu yang jauh lebih lama dari 712 00:38:31,650 --> 00:38:33,910 biasa, tapi Xcode mengisinya untuk Anda. 713 00:38:33,910 --> 00:38:35,710 Jadi aku hanya bisa tekan Enter. 714 00:38:35,710 --> 00:38:40,180 >> Jadi, saya ingin membuat navigasi UI pengontrol pointer, dan saya dapat menyebutnya 715 00:38:40,180 --> 00:38:41,430 navigationController. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 Sekarang, apa yang harus saya lakukan sekarang? 718 00:38:44,470 --> 00:38:49,510 Setelah tanda sama ini, saya harus, pertama, menciptakannya di dalam memori. 719 00:38:49,510 --> 00:38:53,790 Jadi, aku akan melakukan NavigationController alokasi - 720 00:38:53,790 --> 00:38:56,640 jadi, ini mirip dengan malloc, bahwa kalian digunakan dalam C - 721 00:38:56,640 --> 00:38:58,400 dan kemudian, aku akan init itu. 722 00:38:58,400 --> 00:39:03,670 >> Jadi, itu benar-benar penting bahwa setiap objek yang Anda buat, Anda ingin 723 00:39:03,670 --> 00:39:04,940 alokasi dan init itu. 724 00:39:04,940 --> 00:39:08,600 Itu akan membuat dan instantialize di dalam memori, dan 725 00:39:08,600 --> 00:39:10,480 sekarang Anda dapat menggunakannya. 726 00:39:10,480 --> 00:39:10,780 Baiklah? 727 00:39:10,780 --> 00:39:14,360 Jika Anda tidak melakukannya, objek tidak tidak ada, dan Anda akan mengalami a bunch 728 00:39:14,360 --> 00:39:17,290 masalah. 729 00:39:17,290 --> 00:39:20,250 >> Dan kemudian, saya ingin membuat pandangan controller, kan? 730 00:39:20,250 --> 00:39:25,580 Jadi, saya ingin membuat sebuah UIViewController Bintang - 731 00:39:25,580 --> 00:39:29,620 jadi, semuanya adalah pointer di Objective-C, dan aku akan melakukan 732 00:39:29,620 --> 00:39:31,600 sesuatu yang mirip, di sini - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 OK. 736 00:39:40,150 --> 00:39:43,450 >> Lalu apa yang akan saya lakukan adalah, saya akan - jadi, ingat ketika kita melakukan 737 00:39:43,450 --> 00:39:45,360 yang menanamkan dalam navigasi controller? 738 00:39:45,360 --> 00:39:46,920 Ini adalah bagaimana Anda melakukannya dalam kode. 739 00:39:46,920 --> 00:39:54,550 Anda akan melakukan navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> AUDIENCE: [Tak terdengar]. 742 00:39:57,636 --> 00:39:59,030 Ini akan terjadi bagi kita, atau -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: Oh, yeah. 744 00:40:00,080 --> 00:40:00,550 Tidak. 745 00:40:00,550 --> 00:40:02,740 Ini menyukaiku lebih baik. 746 00:40:02,740 --> 00:40:04,670 Tidak, itu akan bekerja untuk Anda juga. 747 00:40:04,670 --> 00:40:06,700 Jadi, ini semua metode. 748 00:40:06,700 --> 00:40:10,400 Jadi pushViewController adalah sebuah metode, dan juga, lebih khusus lagi, ini merupakan 749 00:40:10,400 --> 00:40:13,590 metode contoh dari UI pengontrol navigasi. 750 00:40:13,590 --> 00:40:20,030 Karena aku harus membuat navigasi UI saya star controller, dan kemudian saya 751 00:40:20,030 --> 00:40:24,510 dapat memanggil pushViewController ini pada saya contoh spesifik dari navigasi UI 752 00:40:24,510 --> 00:40:25,010 kontroler. 753 00:40:25,010 --> 00:40:29,490 >> AUDIENCE: Apakah kita harus melakukan hal yang tepat kata, atau apakah itu sudah ada untuk itu? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Ya, karena itu metode. 755 00:40:31,380 --> 00:40:32,200 Ini seperti fungsi. 756 00:40:32,200 --> 00:40:33,330 Ini seperti printf. 757 00:40:33,330 --> 00:40:34,390 Ini seperti scanf. 758 00:40:34,390 --> 00:40:36,250 Ini seperti strcompare. 759 00:40:36,250 --> 00:40:40,310 Kecuali ia tahu apa yang Anda mungkin ingin mengetik, dan melihat bahwa itu akan selalu 760 00:40:40,310 --> 00:40:42,740 datang dengan hal-hal yang hukum diperbolehkan untuk Anda. 761 00:40:42,740 --> 00:40:47,620 Jadi, jika tidak ada yang muncul di sini, maka ada sesuatu yang salah. 762 00:40:47,620 --> 00:40:50,550 >> Jadi, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Jadi, sekarang, saya ingin mendorong saya baru dibuat 764 00:40:52,580 --> 00:40:56,850 UIViewController, dan kemudian, animasi - 765 00:40:56,850 --> 00:40:57,470 mungkin tidak. 766 00:40:57,470 --> 00:41:00,110 Karena ini akan menjadi Pandangan pertama controller. 767 00:41:00,110 --> 00:41:03,210 Maksudku, bahkan jika saya membuat animasi, mungkin tidak akan muncul, karena 768 00:41:03,210 --> 00:41:05,050 itu adalah layar pertama. 769 00:41:05,050 --> 00:41:06,540 >> Dan ingat kurung. 770 00:41:06,540 --> 00:41:08,850 Jadi, ingat bagaimana kami menggunakan kurung? 771 00:41:08,850 --> 00:41:11,870 Dan di dalam kurung, yang object panggilan pada metode - 772 00:41:11,870 --> 00:41:15,910 jadi objek kita adalah navigasi controller, dan metode ini adalah push 773 00:41:15,910 --> 00:41:17,210 controller tampilan animasi. 774 00:41:17,210 --> 00:41:21,920 Dan melihat bagaimana dibutuhkan dalam dua argumen, dan mereka dipisahkan oleh, semacam, 775 00:41:21,920 --> 00:41:24,390 kata-kata, dan titik dua. 776 00:41:24,390 --> 00:41:28,300 Jadi, Objective-C mencoba untuk membuatnya bagus dan mudah bagi Anda untuk membaca keras-keras - 777 00:41:28,300 --> 00:41:33,020 kode Anda - dan memilikinya setengah, semacam, masuk akal. 778 00:41:33,020 --> 00:41:37,150 >> Namun, melakukan hal ini tidak cukup. 779 00:41:37,150 --> 00:41:39,780 Biarkan aku tampilannya keluar sekarang. 780 00:41:39,780 --> 00:41:44,210 Melakukan ini saja tidak cukup untuk mendapatkan apa yang kita punya untuk sebelumnya. 781 00:41:44,210 --> 00:41:48,580 Jadi di sini, Anda akan melihat bahwa ada sebenarnya tidak akan menjadi apapun 782 00:41:48,580 --> 00:41:50,190 bar, di sini, kan? 783 00:41:50,190 --> 00:41:54,680 Tidak ada navigasi bar, yang berarti bahwa kita masih belum mendapatkan itu. 784 00:41:54,680 --> 00:41:58,850 >> Dan kita dapat menguji hal itu, juga, oleh, mungkin, mengubah latar belakang 785 00:41:58,850 --> 00:42:00,460 ViewController, kan? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 ah. 789 00:42:03,640 --> 00:42:07,690 Jadi, melihat bagaimana ViewController tidak memiliki warna latar belakang, meskipun saya 790 00:42:07,690 --> 00:42:08,780 ingin mengaksesnya? 791 00:42:08,780 --> 00:42:14,080 Dan itu karena ViewController merupakan wadah untuk pandangan. 792 00:42:14,080 --> 00:42:19,490 Jadi, ia memiliki properti tampilan, yang kemudian memiliki warna latar belakang. 793 00:42:19,490 --> 00:42:25,510 >> Dan, aku bisa mengaturnya, semacam perlahan, dengan memanggil warna 794 00:42:25,510 --> 00:42:28,130 pada objek UIColor. 795 00:42:28,130 --> 00:42:33,210 Jadi, perhatikan di sini, redColor adalah metode. 796 00:42:33,210 --> 00:42:36,750 Ini adalah metode kelas UIColor. 797 00:42:36,750 --> 00:42:40,820 Karena saya tidak harus membuat contoh aktual dari UIColor dalam rangka 798 00:42:40,820 --> 00:42:42,020 untuk memanggil metode di atasnya. 799 00:42:42,020 --> 00:42:45,050 Aku hanya, hanya, menyebutnya pada nama jenis-seperti. 800 00:42:45,050 --> 00:42:49,620 Aku, seperti yang disebut di int, int jika memiliki, seperti, metode untuk itu, misalnya. 801 00:42:49,620 --> 00:42:52,380 >> Jadi, jika kita menjalankan kode ini, kita akan melihat bahwa latar belakang 802 00:42:52,380 --> 00:42:53,540 sebenarnya tidak merah. 803 00:42:53,540 --> 00:42:54,790 Ini masih putih. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 Dan bagaimana kita bisa mendapatkan sekitar itu, perhatikan bagaimana ada self.window tersebut. 806 00:43:04,550 --> 00:43:08,260 Artinya, seperti, wadah utama untuk aplikasi Anda. 807 00:43:08,260 --> 00:43:11,630 Ini adalah hal yang utama yang berisi segala sesuatu di layar, untuk 808 00:43:11,630 --> 00:43:13,650 iPhone atau aplikasi iPad. 809 00:43:13,650 --> 00:43:20,970 >> Dan, mudah, self.window memiliki properti ini disebut 810 00:43:20,970 --> 00:43:22,650 RootViewController. 811 00:43:22,650 --> 00:43:26,480 Dan itu akan menjadi pointer ke pandangan pertama controller dalam 812 00:43:26,480 --> 00:43:27,270 dari aplikasi Anda. 813 00:43:27,270 --> 00:43:32,000 Jadi, apa yang ingin kita lakukan di sini, sekarang, adalah untuk mengatur yang sama dengan navigasi kami 814 00:43:32,000 --> 00:43:32,710 kontroler. 815 00:43:32,710 --> 00:43:33,760 Benar? 816 00:43:33,760 --> 00:43:37,490 Karena, secara teknis, navigasi controller adalah pandangan yang sangat pertama kami 817 00:43:37,490 --> 00:43:38,770 kontroler. 818 00:43:38,770 --> 00:43:46,160 Ini melacak berbagai tampilan lain controller, dan kami mendorong ini 819 00:43:46,160 --> 00:43:49,810 controller pandangan ke dalam array yang di controller navigasi. 820 00:43:49,810 --> 00:43:52,640 >> Jadi, Anda tidak ingin melakukan ini. 821 00:43:52,640 --> 00:43:54,225 Itu tidak benar-benar membantu Anda. 822 00:43:54,225 --> 00:43:58,040 Anda ingin melakukan hal ini, jika Anda ingin melakukan controller navigasi, yang sebagian besar 823 00:43:58,040 --> 00:44:01,100 Anda mungkin akan karena Anda akan ingin untuk, semacam, memiliki semacam, 824 00:44:01,100 --> 00:44:04,840 seperti, menu untuk kembali ke atau homepage untuk kembali ke, daripada 825 00:44:04,840 --> 00:44:05,470 layar kosong. 826 00:44:05,470 --> 00:44:05,920 Ya? 827 00:44:05,920 --> 00:44:11,460 >> AUDIENCE: Apakah tidak nyaman bagi Anda untuk memperbesar pada - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Ya. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Jadi, ya. 831 00:44:15,720 --> 00:44:22,370 Ini adalah kode, dan sekarang mari kita menguji itu. 832 00:44:22,370 --> 00:44:27,920 >> Jadi, di sana kita pergi. 833 00:44:27,920 --> 00:44:29,170 Sihir. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Jadi, OK. 836 00:44:32,690 --> 00:44:34,420 Terima kasih. 837 00:44:34,420 --> 00:44:35,000 OK. 838 00:44:35,000 --> 00:44:38,690 Jadi sekarang, apa yang ingin kita lakukan adalah - jadi, kita agak terbatas, di sini, kan? 839 00:44:38,690 --> 00:44:45,130 Kami berpotensi menulis segala sesuatu dalam fungsi yang satu ini. 840 00:44:45,130 --> 00:44:48,470 Tapi, itu belum seberapa pengembangan iOS biasanya bekerja. 841 00:44:48,470 --> 00:44:53,030 >> Jadi, apa yang akan kita lakukan adalah, kita akan membuat beberapa file baru. 842 00:44:53,030 --> 00:44:57,110 Tapi, lebih khusus lagi, kita akan membuat kelas Objective-C yang lain, atau 843 00:44:57,110 --> 00:44:58,010 obyek lain - 844 00:44:58,010 --> 00:45:00,700 kelas dan objek yang dipertukarkan di sini. 845 00:45:00,700 --> 00:45:06,460 Dan, inilah cara saya bisa, berpotensi, membuat kelas lain dari U kontroler. 846 00:45:06,460 --> 00:45:12,030 >> Jadi, itu adalah sub-kelas, karena Anda akan melihat, di sini, itu adalah sub-kelas dari 847 00:45:12,030 --> 00:45:15,910 Tampilan UI controller, tapi aku bisa menyebutnya nama lain di sini. 848 00:45:15,910 --> 00:45:19,400 Aku bisa menelepon CS50 ini, saya bisa menelepon controller pandangan ini, saya bisa menelepon 849 00:45:19,400 --> 00:45:21,640 Pemandangan bla ini kontroler - 850 00:45:21,640 --> 00:45:22,400 apapun yang saya inginkan. 851 00:45:22,400 --> 00:45:24,140 Ini hanyalah nama untuk kelas. 852 00:45:24,140 --> 00:45:27,020 Namun, itu akan menjadi penting karena, pada dasarnya, apa yang saya lakukan 853 00:45:27,020 --> 00:45:29,720 di sini adalah, aku menciptakan nama kelas lain. 854 00:45:29,720 --> 00:45:34,140 Jadi, itu akan menjadi, seperti, beberapa semacam jenis atau objek. 855 00:45:34,140 --> 00:45:35,910 Jadi, harus sedikit generik. 856 00:45:35,910 --> 00:45:37,225 Ini tidak akan menjadi sangat spesifik. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> Dan juga, saya ingin menunjukkan dua pilihan ini. 859 00:45:44,480 --> 00:45:48,430 Karena kita melakukan segala sesuatu dalam kode, kadang-kadang jauh lebih mudah 860 00:45:48,430 --> 00:45:53,540 untuk membawa file antarmuka, sehingga Aku benar-benar dapat drag dan drop, seperti 861 00:45:53,540 --> 00:45:54,960 yang kita lakukan sebelumnya dengan storyboard - 862 00:45:54,960 --> 00:45:57,810 Anda tahu, label, atau tombol, atau apapun yang lain. 863 00:45:57,810 --> 00:46:01,950 Jadi, xibs adalah file yang memungkinkan Anda untuk melakukan itu, dan Anda harus hook it up 864 00:46:01,950 --> 00:46:04,310 pandangan ini berkas kontroler. 865 00:46:04,310 --> 00:46:06,540 >> Jadi, aku akan sengaja tidak memeriksa ini. 866 00:46:06,540 --> 00:46:12,510 Biasanya aku akan memeriksa ini, dan jika saya hanya melakukan ini untuk iPhone atau iPad, saya 867 00:46:12,510 --> 00:46:16,340 akan memeriksa ini dan hanya memiliki satu untuk, Anda tahu, iPhone atau iPad. 868 00:46:16,340 --> 00:46:19,750 Tapi karena aku melakukan universal, aku akan untuk membuat dua dari mereka kemudian. 869 00:46:19,750 --> 00:46:22,220 Jadi, aku akan sengaja hapus centang ini. 870 00:46:22,220 --> 00:46:23,940 >> Hal ini juga sangat penting. 871 00:46:23,940 --> 00:46:27,490 Banyak kali, aku sudah bug di mana ini tidak diperiksa. 872 00:46:27,490 --> 00:46:31,930 Jadi, jelas, file ini tidak, semacam, seperti, disertakan atau diimpor 873 00:46:31,930 --> 00:46:33,740 dalam folder tes ini. 874 00:46:33,740 --> 00:46:38,180 Jadi, kode saya sama sekali tidak tahu keberadaan file ini, dan 875 00:46:38,180 --> 00:46:41,080 yang menyebabkan banyak rasa sakit dan jam debugging. 876 00:46:41,080 --> 00:46:44,360 Tapi, pastikan ini dicentang sehingga itu, Anda tahu, target ini 877 00:46:44,360 --> 00:46:47,510 file untuk aplikasi ini. 878 00:46:47,510 --> 00:46:48,310 >> OK. 879 00:46:48,310 --> 00:46:51,680 Jadi, sekarang kita telah membuat dua file baru. 880 00:46:51,680 --> 00:46:54,050 Dan file-file ini terlihat cukup kosong. 881 00:46:54,050 --> 00:46:59,550 Dan, sebenarnya, mari kita juga terus on dengan menciptakan file xib. 882 00:46:59,550 --> 00:47:03,690 Jadi, sebelumnya, aku berada di Kakao Touch drop-down. 883 00:47:03,690 --> 00:47:06,880 Sekarang, aku akan pergi ke Pengguna Antarmuka sentuh, dan seperti yang Anda lihat, saya 884 00:47:06,880 --> 00:47:08,120 dapat membuat storyboard. 885 00:47:08,120 --> 00:47:11,710 >> Jadi, bahkan saya mulai dengan kosong aplikasi, saya masih dapat menggunakan 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Meskipun, hal itu akan sulit dalam hal bagaimana Anda ingin menghubungkan 888 00:47:15,480 --> 00:47:16,820 bahwa untuk kode Anda. 889 00:47:16,820 --> 00:47:18,230 Jadi, saya tidak akan pergi ke sana. 890 00:47:18,230 --> 00:47:22,160 >> Tapi, apa yang ingin kita lakukan sekarang adalah membuat tampilan. 891 00:47:22,160 --> 00:47:25,720 Dan Anda dapat memilih untuk iPhone atau iPad. 892 00:47:25,720 --> 00:47:30,180 Dan biasanya, untuk menunjukkan Perbedaan - jika Anda melakukan 893 00:47:30,180 --> 00:47:31,950 aplikasi universal - 894 00:47:31,950 --> 00:47:35,980 Anda juga memasang iPhone garis bawah, atau Anda dapat melakukan Twiddly. 895 00:47:35,980 --> 00:47:36,980 Itu tidak terlalu penting. 896 00:47:36,980 --> 00:47:40,890 Ini hanya bagi Anda untuk membedakan pandangan mana adalah untuk perangkat yang. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> Jadi, sekarang lihat. 899 00:47:44,430 --> 00:47:47,550 Saya memiliki layar yang saya dapat bekerja dengan. 900 00:47:47,550 --> 00:47:53,530 Jadi, misalnya, saya bisa menempatkan label di sini, Anda tahu, dan saya juga dapat menempatkan 901 00:47:53,530 --> 00:47:54,820 tombol lain di sini. 902 00:47:54,820 --> 00:47:58,730 Aku tidak akan repot-repot mengubah nilai-nilai di sini. 903 00:47:58,730 --> 00:48:09,050 >> Tapi, apa yang penting di sini adalah bahwa pemilik file - 904 00:48:09,050 --> 00:48:13,660 jadi, aku dalam iPhone pandangan, xib file iPhone. 905 00:48:13,660 --> 00:48:18,050 Dan turun di daerah navigasi ini atau menu drop-down, saya ingin pergi ke 906 00:48:18,050 --> 00:48:19,090 pemilik file. 907 00:48:19,090 --> 00:48:22,630 Dan ini adalah benar-benar Langkah penting di sini. 908 00:48:22,630 --> 00:48:27,780 Saya ingin membuat tampilan kelas controller, sehingga file xib ini 909 00:48:27,780 --> 00:48:30,030 akan terkait dengan my view kontroler. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 Dan apa pun yang saya lakukan dalam pandangan saya kontroler pemrograman adalah 912 00:48:39,360 --> 00:48:42,800 akan tercermin di sini. 913 00:48:42,800 --> 00:48:46,270 >> Jadi, bagaimanapun, perhatikan bahwa - 914 00:48:46,270 --> 00:48:55,995 sebenarnya, mari kita membuat pandangan ini latar belakang biru, misalnya. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Atau hijau. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 Dan kemudian, jadi jika Anda akan melihat, kembali kode ini, ini adalah di mana kita harus kita 919 00:49:07,950 --> 00:49:09,200 pengontrol navigasi. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Meskipun kami melakukan langkah itu, itu masih akan menjadi merah, bukan hijau. 922 00:49:18,310 --> 00:49:20,350 Dan ada alasan mengapa. 923 00:49:20,350 --> 00:49:28,090 Itu karena, ketika kita inited controller pandangan kami, di sini - 924 00:49:28,090 --> 00:49:30,010 Maaf, itu sedikit gila - 925 00:49:30,010 --> 00:49:34,520 ketika kita inited controller pandangan kami di sini, kami inited itu dari jenis umum 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 OK? 928 00:49:36,560 --> 00:49:40,560 Jadi kita bahkan tidak melakukan dengan kelas ini. 929 00:49:40,560 --> 00:49:42,030 >> Jadi ingat, ini seperti kelas sekarang. 930 00:49:42,030 --> 00:49:47,160 Hal ini dapat dianggap sebagai tipe, hanya sebagai UIViewController adalah tipe. 931 00:49:47,160 --> 00:49:51,080 Dan untuk menggunakannya, apa yang perlu kita lakukan adalah impor - 932 00:49:51,080 --> 00:49:52,520 impor ViewController - 933 00:49:52,520 --> 00:49:55,750 dan, seperti yang Anda lihat, itu AutoFills untuk saya. 934 00:49:55,750 --> 00:49:56,570 Jadi, ViewController - 935 00:49:56,570 --> 00:50:02,070 dan sekarang, di sini, saya dapat mengubah ini UIViewController ke ViewController. 936 00:50:02,070 --> 00:50:05,050 Dan sekarang, di sini, saya dapat mengubah ini untuk ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Mari kita jalankan ini lagi. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 Ini masih merah. 941 00:50:19,690 --> 00:50:23,370 Dan alasan mengapa hal itu masih merah karena - 942 00:50:23,370 --> 00:50:26,230 woah, apa yang terjadi di sana? 943 00:50:26,230 --> 00:50:31,500 Kami ingin mengasosiasikan xib ini file dengan controller tampilan. 944 00:50:31,500 --> 00:50:37,540 Namun, dalam rangka untuk benar-benar melakukan itu, kita perlu untuk pergi ke dalam ini. 945 00:50:37,540 --> 00:50:42,980 Dan ketika kita melakukan init, kita ingin melakukan initWithNibName, dan kemudian kita ingin 946 00:50:42,980 --> 00:50:48,910 lakukan di tali View_iPhone, misalnya. 947 00:50:48,910 --> 00:50:51,700 Anda dapat mengabaikan bundel sini. 948 00:50:51,700 --> 00:50:54,965 >> Dan ini akan memungkinkan kita, sebenarnya - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, ada masalah. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Benar. 953 00:51:09,980 --> 00:51:17,670 >> Jadi, ada masalah karena, dalam File tampilan xib kami, kami memiliki label dan 954 00:51:17,670 --> 00:51:18,720 kita memiliki sebuah tombol. 955 00:51:18,720 --> 00:51:23,660 Namun, meskipun kami telah terhubung kedua, tidak ada dalam 956 00:51:23,660 --> 00:51:27,440 ViewController.h atau ViewController.m yang mencerminkan 957 00:51:27,440 --> 00:51:29,160 tombol atau label-label. 958 00:51:29,160 --> 00:51:32,425 Jadi, kita perlu menulis mereka sebagai sifat controller tampilan. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Jadi, ini adalah bagaimana Anda mendeklarasikan properti. 961 00:51:39,490 --> 00:51:43,422 Dibutuhkan dalam, biasanya, dua pilihan tersebut. 962 00:51:43,422 --> 00:51:48,690 Untuk tujuan kita dan seminar ini, Saya akan mengatakan bahwa, secara umum, 963 00:51:48,690 --> 00:51:52,250 kebanyakan properti yang nonatomic dan mempertahankan. 964 00:51:52,250 --> 00:51:55,420 Anda dapat membaca oleh Google mencari, Anda tahu, perbedaan antara 965 00:51:55,420 --> 00:51:58,620 nonatomic dan mempertahankan, Anda tahu, Google atau sesuatu. 966 00:51:58,620 --> 00:52:01,090 Dan aku akan membawa Anda ke, seperti, Stack Overflow, di mana orang akan memiliki 967 00:52:01,090 --> 00:52:03,605 jawaban untuk perbedaan antara mereka. 968 00:52:03,605 --> 00:52:07,000 Tapi untuk saat ini, itulah yang kita ingin peduli dengan. 969 00:52:07,000 --> 00:52:12,790 >> Dan kami ingin membuat label UI, bintang, dan kita bisa menyebutnya apa pun yang kita inginkan. 970 00:52:12,790 --> 00:52:15,710 Kita bisa menyebutnya, Anda tahu, label. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 Dan, kita akan membuat yang lain satu untuk tombol. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 Dan ingat untuk menyertakan tanda bintang, karena kita berhadapan dengan pointer 975 00:52:29,910 --> 00:52:36,740 cukup banyak di mana-mana di dalam Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Namun, itu tetap tidak akan memecahkan masalah, seperti yang Anda lihat di sini. 977 00:52:42,110 --> 00:52:50,540 Dan alasannya adalah karena, setiap kali kita ingin menghubungkan label xib file atau 978 00:52:50,540 --> 00:52:55,690 tombol untuk program, atau header dan file implementasi, kita ingin 979 00:52:55,690 --> 00:52:58,255 tambahkan potongan kode ini - 980 00:52:58,255 --> 00:53:00,610 stopkontak. 981 00:53:00,610 --> 00:53:03,600 Perhatikan bahwa itu adalah kata kuncinya. 982 00:53:03,600 --> 00:53:07,970 >> Dan, segera setelah saya selesai mengetik itu keluar, harus memiliki ini 983 00:53:07,970 --> 00:53:09,100 dua lingkaran, di sini. 984 00:53:09,100 --> 00:53:11,200 Biasanya, mereka tidak terisi 985 00:53:11,200 --> 00:53:12,920 Saya tidak yakin mengapa mereka. 986 00:53:12,920 --> 00:53:21,370 Tapi biasanya, Anda akan harus secara manual menghubungkan mereka dengan pergi ke sisi 987 00:53:21,370 --> 00:53:23,530 daerah utilitas. 988 00:53:23,530 --> 00:53:28,430 >> Jadi, sekarang, aku punya label saya dipilih, dan saya ingin menyeret baru ini 989 00:53:28,430 --> 00:53:33,910 referensi outlet ke pemilik file saya, dan kemudian klik pada Label. 990 00:53:33,910 --> 00:53:40,230 Jadi sekarang, akhirnya, label ini terhubung ke label ini. 991 00:53:40,230 --> 00:53:44,950 Dan label ini adalah apa yang akan kita menggunakan pemrograman untuk mengubah nya 992 00:53:44,950 --> 00:53:49,250 teks, font, latar belakang warna, dan sebagainya. 993 00:53:49,250 --> 00:53:52,430 >> Jadi, kenapa tidak kita lakukan sama untuk tombol? 994 00:53:52,430 --> 00:53:54,770 Dan seperti yang Anda akan melihat, untuk tombol, itu sedikit lebih rumit. 995 00:53:54,770 --> 00:53:59,060 Karena, maksudku, Anda seharusnya pers pada tombol, sehingga punya banyak 996 00:53:59,060 --> 00:54:02,950 pilihan untuk bagaimana pengguna dapat menekan tombol. 997 00:54:02,950 --> 00:54:06,570 Dan kemudian, kita akan lihat nanti bahwa kita dapat menghubungkan hal ini kepada kami 998 00:54:06,570 --> 00:54:09,140 kode untuk membuatnya bekerja. 999 00:54:09,140 --> 00:54:12,770 >> Jadi, untuk saat ini meskipun, kita ingin terhubung ke tombol yang sebenarnya 1000 00:54:12,770 --> 00:54:13,570 dalam kode kita. 1001 00:54:13,570 --> 00:54:19,640 Jadi kami pergi ke outlet referensi baru, dan kemudian melakukan tombol. 1002 00:54:19,640 --> 00:54:22,068 Sekarang, mari kita jalankan ini lagi. 1003 00:54:22,068 --> 00:54:23,040 Uh oh. 1004 00:54:23,040 --> 00:54:23,890 OK. 1005 00:54:23,890 --> 00:54:25,140 Aku tidak tahu apa yang terjadi di sini sekarang. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 Whoa. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 Hanya satu saat, di sini. 1010 00:54:58,960 --> 00:55:02,490 >> Sebenarnya, mengapa kita tidak mengambil lihat contoh lain di 1011 00:55:02,490 --> 00:55:05,800 kepentingan waktu. 1012 00:55:05,800 --> 00:55:06,200 OK. 1013 00:55:06,200 --> 00:55:10,610 Jadi, inilah yang lebih mudah disiapkan contoh ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Seperti yang dapat Anda lihat di sini, saya mencantumkan properti untuk 1016 00:55:17,110 --> 00:55:18,460 label dan tombol. 1017 00:55:18,460 --> 00:55:20,370 Dan kemudian, potongan kode ini di sini - 1018 00:55:20,370 --> 00:55:21,830 IBAction ini - 1019 00:55:21,830 --> 00:55:27,740 adalah koneksi ke tombol ini di sini. 1020 00:55:27,740 --> 00:55:33,940 Jadi seperti yang Anda lihat di sini, Sentuh Inside terhubung ke pemilih 1021 00:55:33,940 --> 00:55:37,390 disebut Tombol Ditekan. 1022 00:55:37,390 --> 00:55:41,700 >> Jadi, kita benar-benar bisa pergi melalui gerak lagi, di sini, dengan mengambil Sentuh Up 1023 00:55:41,700 --> 00:55:48,750 Di dalam dan menyeretnya ke Pemilik file, dan kemudian 1024 00:55:48,750 --> 00:55:51,570 klik pada Tombol Ditekan. 1025 00:55:51,570 --> 00:55:52,820 Sekarang, mari kita menjalankan kode kita. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Jadi sekarang, tombol ini sekarang bekerja dan akan membawa kita ke halaman berikutnya. 1028 00:56:02,020 --> 00:56:08,430 >> Dan, dari segi tampilan controller kita, ini adalah bagian dari kode yang mengambil 1029 00:56:08,430 --> 00:56:10,000 peduli Tombol ditekan. 1030 00:56:10,000 --> 00:56:14,260 Dan penting untuk dicatat di sini, bahwa Saya telah membuat jenis lain dari pandangan 1031 00:56:14,260 --> 00:56:16,330 pengontrol disebut meja controller tampilan. 1032 00:56:16,330 --> 00:56:19,900 Jadi, ini mirip dengan kembali di storyboard, ketika saya menyeret salah satu 1033 00:56:19,900 --> 00:56:23,450 ini tampilan tabel pengendali ke dalam storyboard. 1034 00:56:23,450 --> 00:56:24,470 Aku menciptakan lain 1035 00:56:24,470 --> 00:56:30,000 >> Pointer ke tampilan tabel controller, alokasi dan init-ing, dan kemudian melakukan 1036 00:56:30,000 --> 00:56:34,490 diri dot navigasi controller, mendorong ViewController, ini baru 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 Dan Aku telah menetapkan animasi untuk ya, karena sekarang dalam aplikasi saya, dan saya 1039 00:56:39,750 --> 00:56:45,670 ingin benar-benar melihat animasi akan dari halaman rumah ke meja 1040 00:56:45,670 --> 00:56:46,920 controller tampilan. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> AUDIENCE: Apakah Anda masih khawatir tentang pengumpulan sampah? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: Apa itu? 1044 00:56:51,840 --> 00:56:54,740 Tidak. 1045 00:56:54,740 --> 00:56:58,970 Jadi, pertanyaannya adalah, apakah Anda memiliki untuk bekerja dengan pengumpulan sampah? 1046 00:56:58,970 --> 00:57:03,470 Jadi, Xcode 4 memiliki seperti ARC, yang menghitung referensi otomatis. 1047 00:57:03,470 --> 00:57:06,120 Dan, biasanya ketika Anda mulai baru proyek, Anda akan memeriksa itu, karena 1048 00:57:06,120 --> 00:57:09,440 tidak ada yang benar-benar ingin berurusan dengan membebaskan memori dan hal-hal. 1049 00:57:09,440 --> 00:57:13,720 Tapi saya pikir di Xcode 5, bahkan tidak ada bahwa opsi pada proyek baru. 1050 00:57:13,720 --> 00:57:16,750 Jadi, secara otomatis melakukan itu untuk Anda. 1051 00:57:16,750 --> 00:57:16,920 Ya? 1052 00:57:16,920 --> 00:57:20,970 >> AUDIENCE: Dapatkah Anda mengekspor PDF dalam storyboard Anda? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Ya, pasti. 1054 00:57:22,020 --> 00:57:28,180 Jadi, semua ini akan dimasukkan dalam kode sumber, sehingga kalian dapat memeriksa 1055 00:57:28,180 --> 00:57:30,730 proyek Xcode sebenarnya untuk itu. 1056 00:57:30,730 --> 00:57:31,105 Ya? 1057 00:57:31,105 --> 00:57:35,944 >> AUDIENCE: Tapi, maksudku, seperti, bisa saya mencetak PDF dengan storyboard saya? 1058 00:57:35,944 --> 00:57:38,920 Jika saya hanya ingin mengekspor gambar untuk menunjukkan seseorang. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: Oh yeah. 1060 00:57:39,160 --> 00:57:41,980 Saya pikir, mungkin, Anda hanya dapat mengambil screen shot. 1061 00:57:41,980 --> 00:57:44,350 Ya, dan mengirim mereka layar tembakan atau sesuatu. 1062 00:57:44,350 --> 00:57:45,600 Ya. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Jadi, mari kita lihat. 1065 00:57:50,570 --> 00:57:56,470 Dalam kepentingan waktu, saya pikir itu semua aku bisa menutupi hari ini. 1066 00:57:56,470 --> 00:57:59,600 Tapi, aku tahu itu, sebenarnya, hanya hampir tidak menyentuh permukaan iOS 1067 00:57:59,600 --> 00:58:00,370 pembangunan. 1068 00:58:00,370 --> 00:58:05,630 Jadi, jangan ragu untuk menghubungi saya jika Anda memiliki pertanyaan tentang iOS 1069 00:58:05,630 --> 00:58:07,000 pembangunan. 1070 00:58:07,000 --> 00:58:12,840 Dan, mudah-mudahan, saya akan mampu membersihkan up beberapa kode sumbernya 1071 00:58:12,840 --> 00:58:16,830 file kode, sehingga Anda akan memiliki beberapa contoh benar-benar baik untuk bekerja dengan. 1072 00:58:16,830 --> 00:58:21,020 >> Selain itu, jika kalian akan ke CS50 Hackathon, saya mungkin atau mungkin 1073 00:58:21,020 --> 00:58:25,730 tidak berada di sana, dan saya dapat membantu dengan beberapa pengembangan iOS, juga. 1074 00:58:25,730 --> 00:58:26,980 Jadi, terima kasih banyak, guys. 1075 00:58:26,980 --> 00:58:31,168