RHED SHI: Selamat datang ke melihat seminar CS50 - Pengenalan kepada IOS. Terima kasih semua kerana datang. Saya berharap anda hanya sebagai teruja kerana saya kira-kira IOS. Tahun lepas, saya telah mengambil CS50 sebagai mahasiswa tingkat kedua yang, dan saya pada dasarnya belajar IOS untuk saya Projek Akhir. Dan ia adalah cukup - dengan baik, ia tidak mudah, tetapi terdapat banyak tutorial sokongan dalam talian. Dan saya benar-benar berharap usaha ini seminar, saya akan memberikan anda semua kepala bermula pada pembangunan IOS Jadi, dari segi pembangunan IOS, terdapat dua perkara utama yang kita mahu menutup hari ini. Pertama, bahasa - bahasa tersebut akan berada dalam Objektif-C. Kami benar-benar akan mendengar sesuatu yang benar-benar menarik. Jadi, anda boleh menyertai seluruh Apple komuniti pemaju dan membina beberapa aplikasi benar-benar hebat. Juga, IOS 7 adalah yang indah, mudah-mudahan, kepada sebahagian dari kamu. Tetapi ia kontroversi, saya tahu. Dan terutamanya, apa yang saya mahu lakukan adalah panduan anda melalui Objektif-C, dan juga Xcode, yang merupakan bersepadu persekitaran pembangunan yang anda akan bekerja di untuk IOS. Dan sebagainya, hanya satu perkataan pada Objektif-C. Pada asasnya, ia adalah sama benar dengan C, tetapi dengan banyak perkara-perkara lain. Dan sebagainya, lebih ketat, ia sebenarnya satu super set C. Jadi apa-apa yang anda boleh lakukan di C sekarang, yang merupakan pada dasarnya suka Serangga 0 hingga 6, anda boleh lakukan dalam Objektif-C. Jadi, jangan berasa takut tentang perkara ini baru bahasa yang anda akan belajar. Anda telah meliputi banyak ia, kerana anda semua dilakukan C ini lalu semester, kecuali sekarang anda akan mempunyai lebih banyak untuk bekerja dengan. Dan saya hanya akan membawa anda melalui beberapa contoh untuk mengetengahkan beberapa satu perbezaan utama yang saya dapati adalah apabila benar-benar penting yang saya belajar Objektif-C tahun lepas. Well sebenarnya, jadi, titik lain adalah, Objektif-C adalah, jelas, berorientasikan objek. Dan kita akan membincangkan sedikit mengenai apa yang bermakna kemudian. Pada asasnya, ia seperti bagaimana anda bekerja dengan structs dalam Serangga yang lepas, dengan nod dan lain yang seumpamanya perkara seperti itu. Kecuali, dalam Objektif-C, semuanya objek, dan anda akan menjadi mengedarkan petunjuk untuk objek bukannya nilai-nilai diri mereka sendiri. Jadi, ia hanya sesuatu yang penting perlu diingat. Jadi, mengapa tidak kita mula dengan beberapa perbezaan sintaksis antara C dan Objektif-C? Saya mahu untuk menyerlahkan # termasuk, anda tahu, io.h standard dalam C dan C + +, dengan versi Objektif-C itu, yang adalah # import, dan kemudian beberapa jenis file header. Dalam kes ini, ia akan menjadi UIKit, anda tahu, slash UIKit.h. Ia juga boleh menjadi, anda tahu, MKMapview kepada anda mengurangkan MKMapview.h jika anda mahu lakukan, seperti, peta bahagian dalam aplikasi anda. Perkara yang sama seperti itu. Jadi, apa yang penting adalah termasuk kini telah ditukar kepada import. Tetapi idea masih kekal. Anda akan mengimport beberapa jenis fail header ke dalam program anda. Saya juga mahu menonjolkan perbezaan antara printf dan NSLog. Walau bagaimanapun, seperti yang kita katakan sebelum ini, Objektif-C adalah super-set ketat C, yang bermaksud bahawa printf wujud dalam Objektif-C, juga. Tetapi, kebanyakan orang tidak menggunakan itu. Kebanyakan orang menggunakan NSLog ini kerana ia memberikan anda suatu cap masa, dan kita akan melihat dalam tindakan kemudian. Tetapi, ia secara umumnya lebih berguna cara untuk mencetak pembolehubah. Dan saya juga ingin memaklumkan bahawa NSLog mengambil masa dalam hanya yang sama nilai pemegang tempat sebagai printf tidak - jadi% d adalah untuk int an, % F adalah untuk apungan. Walau bagaimanapun, saya ingin menyerlahkan salah satu yang terakhir ini - NSLog% pada tanda - yang merupakan pemegang tempat bagi sesuatu objek. Dan seperti yang saya katakan sebelum ini, tawaran Objektif-C cukup banyak kebanyakannya dalam objek, dan sebagainya ini akan digunakan apabila anda mahu mencetak, mungkin, mungkin an NSArray, atau NSDictionary, atau NSString. Jadi, begitu juga, perhatian bahawa, NSLog kami pernyataan, kita mempunyai pada tanda di hadapan sebut harga - iaitu untuk menandakan tali itu, sekarang, dalam Objektif-C adalah objek. Mereka tidak lagi bintang hanya char. Mereka objek dan dilayan seperti itu. Jadi, ia benar-benar penting bahawa apabila anda menggunakan NSLog ia mengambil masa dalam NS tali, yang bermaksud bahawa anda akan mempunyai termasuk pada di hadapan anda tanda petikan. Dan itulah mengapa anda lihat, di sini, dalam semua fungsi saya panggilan ke NSLog ini, saya mempunyai sekurang-satu di hadapan sebut harga, walaupun walaupun d% dan% f adalah semua yang sama dari C. Apa-apa soalan setakat ini? Saya akan cuba untuk pergi melalui ini cepat supaya bahawa kita boleh mempunyai lebih banyak masa untuk bekerja dengan Xcode dan Objektif-C, jadi bahawa kalian boleh mendapatkan lebih banyak biasa dengannya. Seterusnya, saya ingin mengetengahkan sesuatu konsep penting. Jadi, dalam C, kebanyakan perkara adalah fungsi. Kami membuat panggilan fungsi. Kami mengaku fungsi cara ini, dengan kembali menaip pertama, maka nama fungsi, kurungan, dan kemudian apa sahaja hujah-hujah dan jenis hujah-hujah ini kita mahu untuk lulus masuk Dan Objektif-C, kerana segala-galanya adalah objek atau kelas - jadi kelas dan objek dua istilah yang kebanyakannya sinonim dengan satu sama lain, jadi saya boleh menggunakan mereka silih berganti di seminar berkenaan. Tetapi, anda akan melihat bahawa kita mempunyai kaedah dalam Objektif-C dan bukan fungsi. Dan kaedah kepunyaan objek-objek. Jadi hanya kerana, mungkin mengambil sebagai contoh, nod - Jenis kami [didengar] nod daripada Serangga 6 atau 5 - kita mempunyai perkataan, harta, atau penunjuk nod seterusnya. Kaedah hanya fungsi di dalam daripada beberapa jenis struktur. Jadi, dalam kes ini, struktur akan menjadi objek, dan kemudian kaedah ini sesuatu yang dimiliki oleh objek. Dan ini adalah bagaimana anda akan mengisytiharkan, jenis, kaedah. Anda akan bermula dengan, sekali lagi, pulangan Jenis - jadi, saya cuba untuk warna kod kata kunci di sini supaya anda semua dapat melihat, sekurang-kurangnya, format persamaan antara fungsi perisytiharan dan pengisytiharan kaedah. Jadi, anda mula dengan, anda tahu, pulangan yang Jenis - dalam kes ini, ia adalah satu pameran, atau penunjuk NSArray - dan kemudian anda perlu kaedah ini. Dan kemudian, apa yang menarik di sini ialah yang bukan mempunyai kurungan, kami mempunyai titik bertindih ini. Dan kemudian, di hadapan hujah kami, kami meletakkan, sekali lagi, dalam kurungan jenis yang hujah kami. Jadi, sekarang saya cuba untuk membuat perbandingan antara, anda tahu, n dan nombor, kerana mereka kedua-dua Ints seperti. Dan kemudian, yang satu lagi adalah satu jenis NSUInteger. Dan kemudian, dengan Objektif-C, apabila anda mahu mempunyai pelbagai hujah-hujah yang fasal anda kaedah, anda, jenis, memisahkan mereka daripada jenis seperti ini - Saya tidak pasti bagaimana untuk menerangkan ia, tetapi ini adalah satu contoh yang baik bagaimana anda boleh mempunyai pelbagai hujah-hujah yang ada. Anda boleh, sudah tentu, hanya betul-betul mengabaikan kolon andArray yang NSArray pelbagai jika anda mahu hanya kaedah yang yang mengambil dalam satu hujah. Ya, soalan. PENONTON: Adakah kedua-dua NSUInteger dan Hujah NSArray yang boleh diambil di dalam NSArray? RHED SHI: Ya. Jadi, biarlah saya menerangkan. Jadi, ya. Jadi, soalan itu adalah NSUInteger dan NSArray * jenis hujah-hujah, dan itulah yang betul. Jadi, anda sentiasa mahu menetapkan apa yang jenis hujah anda. Dan di sini, saya cuba untuk memperkenalkan anda kepada beberapa sintaks dan vocab daripada Objektif-C, jadi mereka adalah jenis sebenar bahawa anda akan berurusan dengan. Dan seperti yang anda akan notis, tatasusunan tidak lagi, jenis, mudah perkara kurungan. Mereka objek. Walaupun, jika kita pergi ke seterusnya slaid, kita dapat melihat bahawa kita boleh keras-kod yang NSArray dalam Objektif-C dengan hanya simbol di di hadapan kurungan. Saya tidak, sebenarnya, agak pasti sama ada Saya sintaksis berkod keras array dengan betul untuk versi C, tetapi itu sepatutnya dalam pelbagai C. Jadi, ini adalah bagaimana anda akan, anda tahu, mungkin menggunakan fungsi-fungsi atau kaedah yang kita dicipta lebih awal. Betul? Jadi, ini adalah di mana kami mengisytiharkan kami fungsi dan kaedah kami. Dan sekarang kita mahu menggunakannya dalam program kami, dan ini adalah bagaimana kita akan melakukannya. Jadi, dalam C, anda perlu, anda tahu, mungkin, bool b, dan anda menetapkannya sama majlis itu, dan kemudian anda meninggal dalam hujah. Dalam Objektif-C, ia agak banyak perkara yang sama. Anda mempunyai NSArray * my_array, dan ia akan sama - sekarang, satu-satunya perbezaan di sini adalah perkara objek ini, yang saya telah diketengahkan dalam kuning, dan seperti yang anda lihat, dalam C, ada ada perkataan kuning yang lain. Dan ia adalah kerana kaedah milik dengan objek tertentu. Jadi sebab itu saya perlu mempunyai objek yang, jenis, panggilan kaedah ini ke atas nombor sifar, dan kemudian yang NSArray a, b, c, d. Soalan mengenai itu? Kita akan melihat konsep-konsep ini dalam tindakan cantik tidak lama lagi apabila kita pergi ke demo. OK. Sekarang, saya mahu bercakap sedikit secara ringkas mengenai Xcode 5, yang merupakan persekitaran pembangunan bersepadu yang anda akan bekerja dengan. Saya tahu banyak anda, atau sebahagian dari kamu, tidak mempunyai Mac, yang menjadi masalah kerana Xcode tidak terdapat untuk Windows dan PC. Jangan tanya saya mengapa, tetapi mungkin - yeah, korporat. Apa sahaja. Tetapi bagaimanapun, jadi, saya memohon maaf jika beberapa anda perlu memuat turun beberapa jenis mesin maya untuk Mac dalam Untuk berjalan Xcode 5. Tetapi ia adalah satu bagus cantik perisian untuk digunakan. Dan sebagainya, sebelum kita menyelam ke dalam sebarang bentuk demo, saya hanya mahu menunjukkan gambar apa Xcode kelihatan seperti dalam anda tingkap, dan kemudian juga bercakap mengenai apa ruang ini seluruh. Jadi, ia adalah jenis seperti belajar bagaimana untuk menggunakan Microsoft Word, kecuali anda mahu mendapatkan berjinak dengan semua perkara yang berbeza yang sedang berlaku di sini. Jadi pertama, beri perhatian kepada anda ke bar alat di bahagian atas. Anda akan melihat bahawa, di bahagian atas, anda akan mempunyai nama fail - atau, sebenarnya, nama projek anda dan kemudian nama fail anda. Perhatikan bermain dan butang berhenti. Mereka adalah orang-orang yang anda akan menggunakan untuk menjalankan aplikasi anda pada simulator - simulator IOS. Secara automatik disertakan dengan Xcode 5, jadi anda tidak perlu bimbang tentang memuat turun beberapa jenis simulator. Anda hanya tekan bermain dan kemudian ia berjalan aplikasi anda. Dan anda boleh bermain-main dengan anda, dan anda akan melihat bagaimana ia berfungsi kemudian. Dan kemudian, di tengah, sudah tentu, adalah di mana semua kod cantik anda akan pergi. Dan kemudian, di sebelah kiri, anda akan mempunyai ini, jenis, folder - navigasi - dan kemudian, anda juga akan melihat bahawa, bersama-sama dengan ikon folder, terdapat sekumpulan ikon lain sana yang akan berguna kemudian. Dan kemudian, di sebelah kanan adalah utiliti yang kawasan di mana anda boleh bekerja dengan beberapa objek dan menentukan, anda tahu, apa warna yang sepatutnya, apa yang Fon teks harus, dan sebagainya. Walaupun, semua yang anda lakukan di kawasan utiliti, anda boleh lakukan dalam kod juga. Dan sebagainya, saya akan pergi melalui dua contoh menggunakan, hanya, tidak ada kod di semua - atau kod sangat minimum - ayat semua kod, hanya supaya kamu tahu apa yang anda boleh dan tidak boleh lakukan di Xcode dan Objektif-C. Dan kemudian, akhirnya, turun di bahagian bawah, anda mempunyai kawasan nyahpepijat. Jadi, anda tidak lagi perlu menjalankan GDB, dan sebagainya, pada program anda. Ia secara automatik tidak untuk anda. Dan anda juga boleh mencetak barangan ke kawasan ini. Jadi sebenarnya, kemudian, kita akan melalui mario.c, jika anda semua masih ingat bahawa, dalam Xcode. Jadi yang perlu menyeronokkan. Dan kemudian, hanya untuk membawa kembali ke Objektif-C, saya mahu untuk menyerlahkan apa anda boleh lakukan dengan jika kenyataan. Jadi, anda tahu, kerana Objektif-C adalah superset C, semua yang anda lakukan adalah, secara literal, yang sama seperti C. Anda hanya mempunyai sedikit perbezaan. Jadi, anda akan notis borang untuk jika Penyataan masih sama - anda mempunyai jika, dan kemudian anda perlu kurungan dengan keadaan di dalam, dan kemudian pendakap kerinting untuk apa sahaja yang anda mahu lakukan dalam sana. Walau bagaimanapun, saya mahu meletakkan slaid ini sehingga di sini, semata-mata untuk menggambarkan bahawa, kerana kita berurusan dengan objek sekarang, kita perlu menggunakan perkara-perkara ini dipanggil seperti, adalah sama dengan tali, yang adalah, secara kebetulan, satu kaedah yang tali atau objek NSString. Jadi, perkataan, dalam kes ini, adalah satu NSString membantah, dan ia mempunyai kaedah yang disebut adalah sama dengan tali, dan kemudian kita lulus dalam rentetan berkod keras untuk melihat sama ada mereka adalah sama satu sama lain. Apa-apa soalan setakat ini? OK. Dan, saya mahu pergi ke yang bagi pernyataan juga. Jadi, sebagai contoh, jika kita mahu gelung lebih panjang rentetan dalam C, ini harus biasa kepada anda. Dan, dalam Objektif-C, saya mahu untuk menyerlahkan ini, jenis, kaedah dipanggil kiraan. Well, sebenarnya, saya hanya mengambil kembali itu. Count adalah kaedah pelbagai. Walau bagaimanapun, ia lebih khusus yang harta pelbagai, itulah sebabnya anda boleh menggunakan notasi titik. Tetapi saya tidak mahu masuk ke dalam terlalu banyak barangan konsep ini, saya hanya mahu menunjukkan bagaimana perkara akan kelihatan seperti dalam Objektif-C berbanding C. Dan juga, saya ingin menunjukkan bahawa walaupun saya telah menggunakan NSUInteger di hadapan semua saya i dalam Objektif-C, anda juga boleh menggunakan int, kerana int adalah betul-betul sah Objektif-C, juga. Ya? PENONTON: Adakah ia hanya gaya, atau - RHED SHI: Yeah. Jadi, seperti yang anda akan melihat - jadi, soalan itu ialah sahaja isu gaya. Seperti yang anda akan lihat, saya mempunyai, jenis, bintang perkara asterisk turun di bahagian bawah, dan pautan yang membawa anda ke Limpahan Stack membentuk, di mana seseorang menerangkan perbezaan antara int dalam NSInteger dan NSUInteger. Dan sebagainya, anda boleh membaca tentang itu kemudian. Ini slaid akan, sudah tentu, disediakan untuk anda. Mari kita lihat. OK, hebat. Jadi, ini juga termasuk dalam slaid kerana saya fikir ini adalah satu yang besar laman web yang memperkenalkan anda kepada Objektif-C sintaksis. Jadi, sebenarnya, mengapa kita tidak berpindah ke Chrome dan menyemak laman web ini? Betul. Jadi, apa yang saya mahu untuk menunjukkan kepada anda lelaki di sini adalah imej ini. Jadi, ini, jenis, akan menjadi apa anda akan melihat bahagian dalam mana-mana File Xcode. Sebenarnya, kenapa pula kita tidak hanya mengambil seketika untuk, jenis, mengambil masuk Jadi, buku ini - itulah objek yang kita berurusan dengan. Dan kemudian, ia jelas akan menjadi diwarisi daripada beberapa objek lain, tetapi anda tidak perlu bimbang tentang itu. Dan kemudian, ia, mungkin, mempunyai beberapa pembolehubah anggota. Perkara penting yang saya ingin menunjukkan kepada anda adalah kaedah contoh, di sini. Jadi, kaedah contoh yang ditandakan oleh tanda tolak ini. Dan kemudian, seperti yang anda akan notis, kita sudah mula melihat paradigma pengisytiharan kaedah, bukan? Jenis balasan, nama kaedah,, dan maka jenis hujah, dan maka nama hujah. Dan tanda tolak ini bermakna bahawa ia adalah satu kaedah contoh, yang bermaksud bahawa kaedah ini adalah hanya boleh didapati untuk objek yang telah terjadi di. Untuk bezakan itu, kaedah dengan ditambah dengan menandatangani di hadapan mereka adalah kelas kaedah, yang bermakna bahawa anda boleh menghubungi kaedah ini, walaupun anda tidak mempunyai objek lagi diciptakan. Jadi, sebagai contoh yang jelas, NSString adalah kelas. Dan anda boleh memanggil, sebagai contoh, kaedah kelas pada NSString - sebenar, seperti, perkataan NSString. Walau bagaimanapun, untuk menggunakan kaedah, anda benar-benar perlu mewujudkan rentetan. Sebagai contoh, NSString tali bintang sama pada tanda petikan, hello dunia. Dan kemudian, anda boleh menggunakan kaedah ini - kaedah misalnya - pada yang hello tali dunia. Jadi, itu perbezaan di antara kaedah contoh dan kaedah kelas. Dan, kita hanya dilindungi bahagian ini. Hartanah adalah satu lagi perkara yang bahagian dalam objek, pada asasnya. Dan anda mengisytiharkan mereka dengan di kata kunci harta. Anda mempunyai pilihan ini, di sini, yang saya akan menjelaskan kemudian apabila kita pergi ke demo. Ya? Hi. PENONTON: Bolehkah anda zum masuk, sila? RHED SHI: Oh ya. Maaf. PENONTON: Terima kasih. RHED SHI: Yang sepatutnya menjadi lebih baik. PENONTON: Yeah. Terima kasih. RHED SHI: Ya, sila mengingatkan saya jika Saya terlupa untuk mengezum masuk atau zum keluar. Jadi, ini adalah semua saya mahu menunjukkan untuk - wah, itu banyak - untuk laman web ini. Jadi, mari kita kembali kepada slaid kami. Sebenarnya, sekarang mari kita mengambil masa menyelam ke dalam demo. Jadi, kami akan bermula dengan projek Xcode baru. Jadi, jika anda akan membuka Xcode pada semua mesin anda, ia akan membawa anda beberapa halaman di mana ia berkata, seperti, sama ada terbuka sehingga projek yang sedia ada atau yang baru projek, dan anda harus klik projek baru. Dan kemudian, ia perlu mengambil anda ke skrin ini. Ya? PENONTON: Jika kita tidak mempunyai Mac, kita hanya jenis berehat? RHED SHI: Atau memandang dengan seseorang, yeah. Yeah. Anda boleh berehat juga. OK. Jadi, apa yang kita akan lakukan pertama, kini, adalah, sebenarnya, kita akan melakukan permohonan pandangan tunggal. Jadi, jika anda akan notis, apa yang besar mengenai Xcode dan sokongan Apple untuk pemaju adalah bahawa anda mempunyai banyak template untuk bekerja dengan sudah. Anda boleh, sebagai contoh, membuat permohonan tuan-terperinci. Anda boleh membuat permainan - dan benar-benar, saya tidak akan pergi ke dalam permainan, kerana permainan adalah cerita yang berbeza untuk pembangunan IOS. Dan mereka jenis yang berasingan, jadi saya tidak akan pergi ke dalam itu. Kemudian, anda telah berasaskan halaman permohonan. Anda mempunyai aplikasi tekan - jadi suka, sebagai contoh, Bank of America mungkin mempunyai, seperti, aplikasi yang tab. Ia adalah orang-orang yang di mana anda mempunyai butang di bahagian bawah. Dan kemudian, anda mempunyai permainan Kit Sprite. Atau anda boleh bekerja dari awal, yang adalah apa yang kita akan lakukan kemudian. Tetapi mari kita, pertama, bermula dengan permohonan pandangan tunggal. Kemudian, ia akan meminta nama produk, dan kita hanya boleh melakukan ujian. Nama organisasi - jadi, nama organisasi, syarikat pengecam - mereka adalah penting jika anda akan untuk meletakkan aplikasi anda di kedai app. Selain daripada itu, kod anda akan menjalankan benar-benar halus tanpa ini. Ini akan menjadi penting jika anda mahu - jadi, per se, seperti, meletakkan aplikasi anda ke telefon atau sesuatu yang anda, dan ujian ia keluar, anda tahu, dalam kehidupan sebenar - ini akan menjadi penting. Ini cenderung untuk sentiasa berkaitan dengan semacam akaun pemaju dengan Apple. Dan sebagainya, saya tahu, mungkin, banyak anda tidak akan mempunyai apa-apa akaun pemaju. Saya tahu universiti mempunyai satu. Saya rasa CS mempunyai satu. Tetapi, anda boleh e-mel saya dan saya akan cuba untuk mengetahui bahawa untuk anda. Tetapi sekarang, saya baru sahaja dimasukkan ke dalam beberapa perkara pemegang tempat di sini. Dan anda boleh, sudah tentu, di sini, pilih sama ada anda mahu ia menjadi semata-mata iPhone, dalam iPad, atau kedua-duanya - permohonan sejagat. Jadi, buat masa ini, mari kita buat sejagat, sama untuk melihat kedua-dua belah platform. Mari kita lihat. Jadi, sekarang, saya akan menyimpan dalam beberapa jenis folder. Tidak kira di mana - anda sentiasa boleh bergerak kemudian. Dan, sekarang, kita dibawa untuk projek Xcode kami. Saya tidak akan bimbang tentang semua ini. Saya cadangkan tidak menyentuh mana-mana ini, melainkan jika anda tahu apa yang yang anda lakukan. Jadi, semua ini, jangan hiraukan untuk sebahagian besar. Anda tidak perlu untuk disentuh, dan jika anda adakah anda merosakkan beberapa perkara di sini, ia mendapat sedikit rumit. Jadi, mengapa tidak kita melihat ke dalam gambar-gambar yang di sebelah kiri di navigasi kami. Di sini, kita mempunyai AppDelegate.h. Kami mempunyai AppDelegate.m Jadi, seperti yang anda akan notis, kami telah pengepala fail, yang berakhir pada dot h, dan kami mempunyai pelaksanaan - sebenarnya, saya zum masuk OK. Biar saya zum masuk Betul, jadi anda telah pengepala fail dan anda mempunyai fail pelaksanaan. Sebenarnya - OK. Ini adalah sedikit pelik, tetapi menanggung dengan saya. Kemudian, kerana kita telah memilih pandangan tunggal permohonan, kita akan menjadi bekerja dengan papan cerita. Jadi, papan cerita adalah sesuatu yang Apple telah datang dengan untuk benar-benar membantu pemaju pesat prototaip permohonan mereka. Jadi, ini adalah di mana anda boleh membuat aplikasi tanpa menulis baris kod. Walau bagaimanapun, dalam permohonan tunggal pandangan kami, kita, sudah tentu, mempunyai memfailkan untuk panduan kita, yang adalah pengawal pandangan. Jadi, kita mempunyai header dan fail pelaksanaan, di sini. Dan, saya akan zum keluar sekarang kerana kami akan perlu bekerja dalam papan cerita. Jadi, di sini pandangan kami. Jika kita, hanya, jalankan aplikasi sekarang, tidak banyak yang menarik berlaku. Jadi, anda akan melihat skrin putih ini. OK? Dan, di kawasan utiliti kami, kami boleh menambah sekumpulan perkara yang berbeza dengannya. Jadi, apabila anda berurusan dengan skrin dalam IOS, pandangan pengawal adalah objek yang merangkumi, jenis, pandangan anda. Jadi, pengawal pandangan sentiasa telah harta yang dipanggil pandangan. Dan pandangan itu, biasanya, mengandungi, anda tahu, apa yang anda mahu melihat pada skrin. Jadi, baik, mari kita hanya bermula dengan meletakkan, mungkin, mungkin label. Jadi, mari kita meletakkan label di sana - melekat di tengah-tengah. Jadi, sekarang saya klik pada label, saya boleh pergi ke inspektor hartanah yang dan mula berubah nilainya. Mari kita memanggilnya CS50 Colours. Dan, saya juga boleh menukar fon. Jadi, daripada melakukan sistem, yang merupakan lalai, kita boleh melakukan satu adat. Kita boleh berubah - anda tahu, ultralight, menjadikannya 32. Dan kemudian, kita boleh membuat kotak kami yang lebih besar. PENONTON: Adakah anda fikir anda boleh mengezum di lebih sedikit, mungkin? RHED SHI: Ya? OK. PENONTON: Hanya ketuk ia? RHED SHI: Mari kita lihat. Adakah kerja ini? PENONTON: Hanya lulus Xcode? RHED SHI: Pasti. OK. Awesome. PENONTON: Label di bawah? Label? RHED SHI: Apa itu? PENONTON: Apa drop-down adalah label yang di bawah? RHED SHI: Jadi, soalan itu, apa yang jatuh turun adalah label di bawah? Ia perlu, hanya, berada di bawah sini. Saya rasa ia adalah satu perkara yang kuasa tiga. Tetapi biasanya, ini adalah lalai - Saya hanya akan turun di sini sehingga saya mendapati label. Yeah. Jadi sekarang, kami mempunyai label kami. Mari kita pusat itu. Dan Xcode memberikan kita garis panduan untuk memusatkan objek. Jadi, mari kita menjalankan kod kami lagi. Di sana kami pergi. Jadi, kita mempunyai CS50 Colours. Dan sekarang, mari kita meletakkan butang di sana, bukan? Kerana kita ingin ini interaktif. Jadi, mari kita meletakkan butang di sini. Dan kita akan panggil butang ini "paip di sini untuk meneruskan. "Kami akan pusat itu, juga Sebenarnya, ia sudah berpusat. Yeah. Jadi, kita mempunyai butang. Dan jika kita menjalankan ini sekali lagi, kita akan mempunyai butang nice sedikit di sini. Dan saya boleh klik, tetapi ia tidak berbuat apa-apa, kerana kita tidak melakukan apa-apa dengan butang yet. Jadi, mari kita mewujudkan satu lagi pandangan, bukan? Jadi, mari kita mengatakan saya mahu meneroka bahawa butang dan saya mahu pergi ke halaman lain - satu lagi pandangan. Apa yang saya akan lakukan ialah, saya boleh membuat pengawal pandangan, bukan? Sekarang saya akan klik pada butang saya, dan kemudian, apa yang penting adalah, saya akan klik - atau - ya, kawalan tekan pada keyboard saya. Kawalan. Klik pada butang, dan kemudian seret. Jadi, jangan lupa untuk tahan kekunci kawalan. Mari kita buat itu lagi. Jadi, memegang kawalan, klik, dan seret dengan apa yang anda mahu lakukan. OK. Dan sekarang, saya mempunyai beberapa pilihan di sini. Saya boleh menolak, atau yang boleh saya lakukan yang mod, atau boleh saya lakukan adat. Push hanya jika anda mempunyai pengawal navigasi. Sekarang, pandangan pertama kami pengawal tidak berada di dalam mana-mana pengawal navigasi. Jadi, pengawal pengemudian adalah yang yang memberikan butang kembali pada anda app IOS di mana anda mempunyai, anda tahu, yang atas, jenis, bar tebal - di mana anda boleh kembali, atau ke hadapan, dan sebagainya. Sekarang, saya tidak mempunyai. Dan sebagainya, sebab itu saya tidak boleh melakukan tolakan. Jadi, saya klik pada menolak tidak sengaja, di sini. Dan sebenarnya, mari kita berjalan kod, dan ia harus kemalangan pada saya. Hanya jika saya tekan butang walaupun, jadi - betul. Jadi, ini adalah tidak baik. Dan, seperti yang anda lihat, di sini, kami mempunyai mesej ralat. Jadi, "segues Push hanya boleh digunakan apabila sumber pengawal diuruskan oleh contoh UI navigasi pengawal. " Jadi, kerana ini bukan bahagian dalam navigasi pengawal, Saya tidak boleh berbuat demikian. Jadi, sekarang, saya akan kembali ke folder, akan kembali kepada papan cerita. PENONTON: Apakah navigasi pengawal, sekali lagi? RHED SHI: Jadi, sekarang saya akan menunjukkan kepada anda. Mari kita lihat. Oleh itu, saya akan klik pada pandangan ini pengawal, dan kemudian saya akan pergi sehingga produk - sebenarnya, tidak, maaf - editor. Dan saya akan pergi ke dalam - sebenarnya, adakah saya klik di situ? No Di sana kami pergi. Saya akan naik ke editor, turun untuk menanamkan dalam, dan kemudian navigasi pengawal. OK. Dan, ruang kerja saya kelihatan benar-benar tidak kemas, jadi mari kita membersihkan ini up. Jadi, semua ini adalah papan cerita. Dan dengan cara ini - OK, berhenti - Saya cepat boleh membina sesuatu seperti ini. Dan kemudian, sekarang saya boleh kembali, anda tahu? Tetapi ini adalah jenis membosankan, bukan? Jadi, apa yang saya mahu lakukan adalah, saya tidak mahu untuk membuat, hanya semata-mata, pandangan yang pengawal. Katakan saya mahu untuk benar-benar membuat paparan jadual pengawal, jadi saya boleh dimasukkan ke dalam beberapa warna bagus, ke dalam jadual. Jadi, sekarang saya telah dimasukkan ke dalam paparan jadual saya pengawal, saya perlu menyambung semula dari butang ini kepada pandangan pengawal. Jadi saya perlu melakukan kawalan saya, klik, seret perkara lagi. Dan sekarang saya boleh melakukan push, kerana saya menerapkan ia di dalam pengawal navigasi. PENONTON: Navigation pengawal hanya membolehkan anda untuk pergi dari satu tempat ke tempat? RHED SHI: Ya. Jadi, lebih dari segi teknikal, ia objek di mana - jadi, di dalam navigasi objek pengawal, ia menjejaki array. Dan array yang memegang segala yang berikutnya melihat pengawal. Itulah sebabnya apabila anda menekan kembali, ia kembali ke laman sebelumnya. Kerana pengawal pengemudian objek, atau kod yang menjaga objek ini, mempunyai pelbagai yang menyimpan menjejaki ini pengawal pandangan, dan boleh kemudian, anda tahu, DQ pandangan pengawal dan memberi anda belakang satu sebelumnya. Jadi, ini adalah barangan teknikal, tetapi - dan saya akan menunjukkan anda di kemudian kod, jika kita mempunyai masa. Saya jenis kehabisan pada masa, tetapi - Jadi, dengan paparan jadual, apa yang kita boleh lakukan ialah - Ia biasanya secara automatik untuk Dynamic Prototaip - kita akan membuat ia Sel statik, jika tidak kita akan menghadapi beberapa masalah. Dan kemudian, katakan saya akan mempunyai satu bahagian. Jadi, seksyen adalah seperti - jika anda pernah melihat aplikasi muzik, apabila anda mempunyai artis, bahagian akan menjadi A melalui Z's - huruf - dan kemudian, anda tahu, individu baris akan menjadi nama-nama artis. Dan sebagainya, apa yang sejuk di sini, adalah bahawa saya boleh mengakses semua objek di dalam papan cerita saya melalui ini drop-down menu juga. Oleh itu, saya akan klik pada bahagian saya, dan saya mahu, anda tahu, mungkin lima baris. Dan kemudian, di dalam setiap baris, Saya mahu meletakkan label. Dan saya akan memanggil Blue ini. Dan kemudian, saya mahu meletakkan pandangan UI, anda tahu, mungkin untuk, seperti, kotak sedikit. Supaya saya dapat menunjukkan kepada orang preview warna. Dan saya akan kembali kepada harta dan menukar warna itu, oh, saya tidak tahu, satu ini. Dan kemudian, notis juga, di sini, apabila saya mempunyai aksesori, saya boleh mempunyai banyak satu aksesori yang berbeza yang anda biasanya lihat. Penunjuk pendedahan, terperinci, atau memeriksa tanda, atau hanya sekadar terperinci. Jadi, mungkin kita boleh lakukan, seperti, pendedahan yang petunjuk, sebagai contoh. Dan kemudian, mengapa kita tidak mengambil ini, salinan tampal mereka, dan meletakkan mereka ke dalam baris jadual seterusnya. Jadi, kita boleh memanggil Kuning ini. Dan saya mungkin perlu memperluaskan. Mari kita membuat ia kuning. Dan dengan cara ini, kita boleh menyalin paste cara kita ke bawah. Apakah maklumat itu? Ungu. Jadi, semua ini adalah CS50 biasa warna yang anda lihat dalam kelas - sebenarnya, maaf - atau di laman web. Semoga anda semua dapat melihat apa yang saya lakukan di sini. OK. Terkini. PENONTON: Bagaimana anda menambah berturut-turut pada mulanya? RHED SHI: Jadi, soalan itu, bagaimana adakah saya menambah baris mulanya? Saya pergi ke dalam seksyen jadual ini - atau bagaimanapun saya boleh pilih seksyen meja - dan kemudian, di sini, saya dikemaskini bilangan baris. Dan, saya berharap ini berfungsi. OK. Mari kita lihat jika ini berfungsi. Oh, sempurna, hebat. OK. Walaupun saya telah membina demo saya, sesetengah perkara yang tidak sejajar, jadi, terima kasih kerana tepukan. Yeah. Jadi, mari kita lihat. Kami akan membuat ini sembilan hanya untuk membuat segala-galanya - atau sebenarnya, mari kita hanya menjadikan semua ini ke dalam pendedahan penunjuk. Dan kemudian, apa yang saya ingin menunjukkan kepada anda, juga, adalah bagaimana saya boleh mengambil setiap orang baris meja dan mempunyai mereka berinteraksi - oh. No Oh. Juga, saya ingin menunjukkan kepada anda - di sini, saya boleh meletakkan tajuk saya navigasi pengawal, bukan? Jadi sebenarnya, anda akan notis, sebaik sahaja saya tertanam pengawal pandangan ini di dalam pengawal navigasi, kita lihat ini bar navigasi di bahagian atas kami perwakilan papan cerita daripada pengawal pandangan. Dan sebagainya, ini memberikan kita, seperti, visual, jenis, panduan kepada skrin kelihatan kami. Ini jelas akan menjadi bar navigasi. Dan apa yang saya mahu lakukan dengan cepat, sekarang, dimasukkan ke dalam satu lagi - jadi ini pengawal paparan jadual saya lakukan dengan mengambil satu daripada ini dan mengheret di sini, dan itulah apa yang membolehkan saya untuk dengan cepat, benar-benar, membuat paparan jadual pengawal. Jika kita mempunyai masa walaupun, anda akan melihat bahawa, program menetapkan, ia adalah satu sedikit lebih sukar untuk buat jadual yang pengawal pandangan, kerana ada adalah beberapa kaedah yang diperlukan untuk anda, jenis, menulis dalam perintah untuk paparan jadual pengawal yang akan dipaparkan dengan betul. Walau bagaimanapun, saya hanya mahu menunjukkan kepada anda, sekarang, satu contoh di mana, jika saya mengambil ini, sebagai contoh - Saya dimasukkan ke dalam satu lagi pengawal pandangan. Dan sekarang, mari kita mengatakan saya mahu mengawal alt biru saya yang pertama baris jadual ke sini. Dan saya mahu panggil Blue ini. Dan kemudian - mari kita lihat. Saya pada pandangan sekarang, dan saya boleh menukar latar belakang kepada biru. Dan sebagainya, notis, di sini, ini drop-down menu juga memberikan anda hierarki semua objek-objek ini. Jadi satu perkara yang penting untuk diperhatikan, di sini, adalah bahawa semua perkara-perkara ini, di sini - ini pengawal paparan jadual, jadual pandangan, seksyen paparan jadual, paparan jadual sel - semua ini adalah objek, dalam kod. Jadi, anda tahu, label yang sekarang adalah di bawah pandangan kandungan, dan sebagainya. Sebagainya dan sebagainya. Jadi, jika kita menjalankan kod ini, kita harus melihat sesuatu - mari kita lihat jika ini - yeah. Jadi, kita pergi. Tetapi, jika kita tidak melakukannya, tiada perkara-perkara ini lain bekerja. Betul? Jadi hanya satu ini berfungsi. Dan, demi masa, saya tidak akan pergi ke dalam, anda tahu, meletakkan turun-orang yang lain. Dan ini adalah akhir, jenis, papan cerita - apa yang saya mahu menunjukkan anda untuk papan cerita. Dan, saya mempunyai contoh yang bekerja di luar, sebenarnya, di sini. Jadi, ini adalah papan cerita yang saya lakukan sebelum ini. Jadi, seperti yang anda lihat, ini adalah pengawal pengemudian saya. Kemudian saya pengawal pandangan pertama saya, maka saya mempunyai pengawal paparan jadual saya, dan kemudian saya mempunyai semua ini - jadi sebelum ini, saya telah melakukan sesuatu yang sangat berbeza. Jadi, maafkan perkara-perkara. Saya mungkin akan membersihkannya sehingga kemudian sebelum Saya menghantar ia di luar untuk pengeluaran. Tetapi, jika kita menjalankan ini, kita akan melihat bahawa semua pilihan yang ada pada kita. Kecuali saya tidak membuat latar belakang orang-orang warna. Jadi, permohonan yang mudah yang bagus. Sekarang, mari kita cuba untuk menangani ini program menetapkan. OK. Jadi, untuk melakukan itu, kita hanya akan untuk memulakan projek Xcode baru. Kami akan menjadikannya suatu permohonan kosong sekarang, kerana kita tidak mahu mempunyai papan cerita. Oleh itu, saya hanya menghadkan diri saya untuk tidak menggunakan mana-mana papan cerita, dan permohonan kosong tidak akan memberi saya papan cerita. Ini adalah hanya untuk mengelakkan diri daripada menipu. Mari kita lihat. Tunggu. Adakah saya - ya. OK. Betul. Jadi, di sini, kita ditinggalkan dengan apa-apa lagi tetapi kod. Jadi, biarlah saya menggerakkan tetingkap ini sedikit lebih. Betul. Seperti yang anda boleh lihat di sini, satu-satunya fail kami diberikan adalah AppDelegate.h dan dot m, dan kita tidak mempunyai papan cerita lagi. Jadi, jika kita menjalankan ini, kami masih akan mendapatkan ke skrin putih, berterima kasih kepada Tuhan. OK - skrin putih, tetapi apa-apa lagi. Dan di sini adalah bahagian yang penting. Ini adalah di mana tindakan yang berlaku. Dalam versi sebelum ini, ada biasanya tiada kod di sini, tetapi papan cerita dasarnya menyediakan kod untuk bahagian ini. Saya tidak akan pergi ke butiran mengenai bagaimana. Dan apa yang kita mahu lakukan sekarang ialah, kita mahu untuk pergi di sini, dan ruang kecil ini bermula mewujudkan app kami lagi. Jadi - ya? PENONTON: Zoom? RHED SHI: Zoom. Ya, pasti. OK. Saya akan menaip, jadi ini tidak sepatutnya terlalu banyak perkara. OK. Jadi, pertama, ingat kita mahu mencipta pengawal navigasi, bukan? Dan juga, seperti yang anda lihat di sini, Xcode melakukan pekerjaan yang benar-benar besar pengisian diri. Jadi, seperti yang anda akan notis, nama-nama segala-galanya adalah banyak lagi daripada biasa, tetapi Xcode mengisi ia untuk anda. Jadi saya hanya boleh tekan Enter. Jadi, saya ingin membuat navigasi UI penunjuk pengawal, dan saya boleh memanggilnya navigationController. Kini, apa yang saya buat sekarang? Selepas tanda sama ini, saya perlu, pertama, menciptakannya di dalam ingatan. Oleh itu, saya akan melakukan NavigationController alloc - jadi, ini adalah sama dengan malloc, bahawa kalian digunakan dalam C - dan kemudian, saya akan INIT ia. Jadi, ia benar-benar penting bahawa mana-mana objek yang anda buat, anda mahu alloc dan INIT ia. Itu akan mencipta dan instantialize ia di dalam ingatan, dan sekarang anda boleh menggunakannya. Boleh? Jika anda tidak berbuat demikian, objek anda tidak tidak wujud, dan anda akan menghadapi sekumpulan masalah. Dan kemudian, saya mahu mencipta pengawal pandangan, bukan? Jadi, saya mahu mencipta satu UIViewController star - jadi, segala-galanya adalah penunjuk di Objektif-C, dan saya akan melakukan sesuatu yang serupa, di sini - alloc, init. OK. Dan kemudian apa yang saya akan lakukan ialah, saya akan - jadi, ingat apabila kita lakukan embed dalam pelayaran pengawal? Ini adalah bagaimana anda melakukannya dalam kod. Anda akan melakukan navigationController pushViewController - PENONTON: [didengar]. Ini akan berlaku bagi kita, atau -? RHED SHI: Oh, yeah. No Ia suka saya lebih baik. Tidak, ia akan bekerja untuk anda juga. Jadi, semua ini adalah kaedah. Jadi pushViewController adalah kaedah, dan juga, lebih khusus, ia merupakan kaedah unsur UI pengawal navigasi. Oleh kerana saya terpaksa membuat navigasi UI saya bintang pengawal, dan kemudian saya boleh menghubungi pushViewController ini pada saya contoh tertentu navigasi UI pengawal. PENONTON: Adakah kita perlu melakukan perkara yang tepat perkataan, atau adakah ia telah sedia wujud untuk itu? RHED SHI: Ya, kerana ia satu kaedah yang. Ia seperti satu majlis. Ia seperti printf. Ia seperti scanf. Ia seperti strcompare. Kecuali ia tahu apa yang anda mungkin mahu menaip, dan melihat bahawa ia yang akan terus datang dengan perkara-perkara yang dibenarkan secara sah untuk anda. Jadi, jika apa-apa menunjukkan di sini, maka sesuatu yang salah. Jadi, pushViewController. Jadi, sekarang, saya mahu untuk menolak saya baru diwujudkan UIViewController, dan kemudian, animasi - mungkin tidak. Kerana ini akan menjadi pengawal pandangan pertama. Maksud saya, walaupun saya membuat animasi, ia mungkin tidak akan muncul, kerana ia skrin pertama. Dan ingat kurungan. Jadi, ingat bagaimana kami menggunakan kurungan? Dan di dalam kurungan, yang objek menyeru kaedah yang - jadi objek kami adalah navigasi pengawal, dan kaedah ini menolak pandangan pengawal animasi. Dan lihat bagaimana ia mengambil masa dalam dua hujah, dan mereka dipisahkan oleh, jenis, perkataan, dan tanda bertindih. Jadi, Objektif-C cuba untuk membuat ia bagus dan mudah untuk anda membaca dengan kuat - kod anda - dan mempunyai ia separuh, semacam, masuk akal. Walau bagaimanapun, hanya melakukan ini tidak mencukupi. Biar saya zum keluar sekarang. Hanya melakukan ini adalah tidak cukup untuk mendapatkan apa yang kita dapat sebelum ini. Jadi di sini, anda akan melihat bahawa terdapat sebenarnya tidak akan menjadi apa-apa jenis menggalang, di sini, bukan? Tidak ada bar navigasi, yang cara bahawa kita masih tidak mendapat ia. Dan kita boleh menguji bahawa daripada, juga, oleh, mungkin, menukar latar belakang ViewController, bukan? ViewController.background-- ah. Jadi, melihat bagaimana ViewController tidak mempunyai warna latar belakang, walaupun saya mahu mengaksesnya? Dan itu kerana ViewController adalah bekas untuk paparan. Jadi, ia mempunyai harta pandangan, yang kemudian mempunyai warna latar belakang. Dan, saya boleh menetapkan ia, jenis tediously, dengan memanggil warna pada objek UIColor itu. Jadi, notis sini, redColor adalah kaedah. Ia adalah satu kaedah kelas UIcolor. Kerana saya tidak perlu mewujudkan contoh sebenar yang UIColor untuk untuk memanggil kaedah di atasnya. Saya hanya, hanya, memanggilnya pada nama jenis seperti itu. Saya, seperti, yang dipanggil pada int, jika int telah, seperti, kaedah untuk ia, sebagai contoh. Justeru, jika kita menjalankan kod ini, kita akan melihat bahawa latar belakang adalah sebenarnya tidak merah. Ia masih putih. Dan bagaimana kita boleh mendapatkan sekitar iaitu, notis bagaimana ada self.window itu. Iaitu, seperti, bekas muktamad untuk permohonan anda. Ia adalah perkara utama yang mengandungi segala-galanya pada skrin, untuk iPhone atau aplikasi iPad. Dan, mudah, self.window mempunyai harta ini dipanggil rootViewController. Dan itu akan menjadi penunjuk kepada pengawal pandangan yang pertama di dalam aplikasi anda. Jadi, apa yang kita mahu lakukan di sini, sekarang, adalah untuk menetapkan yang sama dengan navigasi kami pengawal. Betul? Kerana, dari segi teknikal, navigasi pengawal adalah pandangan yang pertama kita pengawal. Ia menjejaki pelbagai pandangan lain pengawal, dan kita menolak ini pandangan pengawal ke dalam array yang dalam pengawal navigasi. Jadi, anda tidak mahu untuk melakukan ini. Yang tidak akan benar-benar membantu anda. Anda mahu melakukan ini, jika anda mahu melakukan pengawal navigasi, yang paling anda mungkin akan kerana anda akan mahu kepada, jenis, mempunyai beberapa jenis, seperti, menu untuk kembali ke atau beberapa laman utama untuk kembali ke, dan bukannya skrin kosong. Ya? PENONTON: Adakah ia tidak selesa untuk anda untuk mengezum masuk pada - RHED SHI: Yeah. Jadi, yeah. Ini adalah kod, dan kini mari kita menguji ia keluar. Jadi, kita pergi. Magic. Jadi, OK. Terima kasih. OK. Jadi sekarang, apa yang kita mahu lakukan ialah - jadi, kita jenis terhad, di sini, bukan? Kita boleh berpotensi menulis semua dalam fungsi ini satu. Tetapi, itu bukan bagaimana pembangunan IOS biasanya kerja-kerja. Jadi, apa yang kita akan lakukan ialah, kami akan mewujudkan beberapa fail baru. Tetapi, lebih khusus, kita akan mewujudkan satu lagi kelas Objektif-C, atau satu lagi objek - kelas dan objek boleh ditukar di sini. Dan, di sini bagaimana saya boleh, berpotensi, mewujudkan satu lagi kelas pengawal U. Jadi, ia adalah kelas sub, seperti yang anda akan notis, di sini, ia adalah satu kelas sub daripada Pandangan UI pengawal, tetapi saya boleh memanggilnya apa-apa nama lain di sini. Saya boleh memanggil CS50 ini, saya boleh memanggil pengawal pandangan ini, saya boleh memanggil ini pandangan pengawal blah - apa-apa yang saya mahu. Ini hanyalah nama untuk kelas. Walau bagaimanapun, ia akan menjadi penting kerana, pada dasarnya, apa yang saya lakukan di sini ialah, saya mewujudkan satu lagi nama kelas. Jadi, ia akan menjadi, seperti, beberapa jenis jenis atau objek. Jadi, ia perlu sedikit generik. Ia tidak akan menjadi sangat khusus. Dan juga, saya ingin menunjukkan keluar kedua-dua pilihan. Kerana kita lakukan kesemua di dalam kod, kadang-kadang ia adalah lebih mudah untuk membawa masuk fail antara muka, seperti yang Saya benar-benar boleh menyeret dan melepaskan, sebagai yang kita lakukan sebelum ini dengan papan cerita - anda tahu, label, atau butang, atau apa-apa sahaja. Dan sebagainya, xibs adalah fail yang membolehkan anda untuk berbuat demikian, dan anda perlu cangkuk itu sehingga pandangan ini pengawal fail. Jadi, saya akan sengaja tidak menyemak ini. Biasanya saya akan menyemak ini, dan jika saya hanya melakukan ini untuk iPhone atau iPad, saya akan memeriksa ini dan hanya mempunyai satu , anda tahu, iPhone atau iPad. Tetapi oleh kerana saya lakukan sejagat, saya akan untuk mewujudkan dua daripada kemudian. Jadi, saya akan sengaja tanda ini. Ini juga benar-benar penting. Banyak kali, saya mempunyai pepijat di mana ini tidak ditandakan. Dan sebagainya, jelas, fail ini tidak, jenis, seperti, dimasukkan atau diimport dalam folder ujian ini. Dan sebagainya, kod saya sama sekali tidak mempunyai idea kewujudan fail ini, dan yang menyebabkan banyak kesakitan dan jam debugging. Tetapi, pastikan ini diperiksa supaya bahawa, anda tahu, sasaran ini fail adalah untuk permohonan ini. OK. Jadi, kita telah membuat dua fail baru. Dan fail-fail ini kelihatan cukup kosong. Dan, sebenarnya, biar kita terus pada dengan mewujudkan fail xib. Jadi, sebelum ini, saya berada di Koko Touch drop-down. Sekarang, saya akan pergi ke Pengguna Sentuhan antara muka, dan seperti yang anda lihat, saya boleh membuat papan cerita. Jadi, walaupun saya bermula dengan kosong permohonan, saya masih boleh menggunakan papan cerita. Walaupun, ia mendapat rumit dari segi bagaimana anda mahu menyambung bahawa untuk kod anda. Jadi, saya tidak akan pergi ke sana. Tetapi, apa yang kita mahu lakukan sekarang ialah mewujudkan pandangan. Dan anda boleh memilih untuk iPhone atau iPad. Dan biasanya, untuk menunjukkan perbezaan - jika anda sedang melakukan permohonan sejagat - anda sama ada meletakkan bawah garis bawah, atau anda boleh melakukan Twiddly. Ia tidak benar-benar perkara itu. Ia hanya untuk anda untuk membezakan yang pandangan adalah yang mana peranti. Dan sebagainya, kini melihat. Saya mempunyai skrin yang saya boleh bekerja dengan. Dan sebagainya, sebagai contoh, saya boleh meletakkan label yang di sini, anda tahu, dan saya juga boleh meletakkan butang lain di sini. Saya tidak akan mengganggu berubah nilai-nilai di sini. Tetapi, apa yang penting di sini ialah bahawa pemilik fail ini - jadi, saya di dalam iPhone pandangan, Fail xib iPhone. Dan ke bawah dalam kawasan navigasi ini atau drop-down menu, saya mahu pergi ke pemilik fail. Dan ini adalah benar-benar langkah yang penting di sini. Saya ingin pandangan kelas pengawal, supaya fail xib ini akan dikaitkan dengan pengawal pandangan saya. Dan apa-apa yang saya lakukan di dalam pandangan saya pengawal programatik adalah akan dapat dilihat di sini. Jadi, bagaimanapun, melihat bahawa - sebenarnya, mari kita membuat pandangan ini biru latar belakang, sebagai contoh. Atau hijau. Dan kemudian, jadi jika anda akan notis, kembali pada kod ini, ini adalah di mana kami dapat kami pengawal navigasi. Walaupun kami melakukan langkah itu, ia masih akan menjadi merah, tidak hijau. Dan ada sebab mengapa. Ini kerana, apabila kita inited pengawal pandangan kami, di sini - maaf, ia tidak gila - apabila kita inited pengawal pandangan kami di sini, kita inited ia jenis umum UIViewController. OK? Oleh itu, kita tidak pun melakukan dengan kelas ini. Jadi ingat, ini adalah seperti kelas sekarang. Ia boleh dianggap sebagai jenis, hanya sebagai UIViewController adalah jenis. Dan untuk menggunakannya, apa yang yang perlu kita lakukan adalah mengimportnya - import ViewController - dan, seperti yang anda lihat, ia autofills untuk saya. Jadi, ViewController - dan kini, di sini, saya boleh menukar ini UIViewController untuk ViewController. Dan kini, di sini, saya boleh menukar ini untuk ViewController. Mari kita menjalankan ini lagi. Ia masih merah. Dan sebab mengapa ia masih merah adalah kerana - Woah, apa yang berlaku di sana? Kami mahu mengaitkan xib ini memfailkan dengan pengawal pandangan. Walau bagaimanapun, untuk benar-benar melakukan itu, kita perlu pergi ke dalam ini. Dan apabila kita melakukan INIT, kami mahu melakukan initWithNibName, dan kemudian kita mahu melakukan perkara yang di tali View_iPhone, sebagai contoh. Anda boleh mengabaikan ikatan di sini. Dan ini akan membolehkan kita, sebenarnya - uh oh, ada masalah. Betul. Dan sebagainya, ada masalah kerana, dalam fail view xib kami, kami mempunyai label dan kita mempunyai butang. Walau bagaimanapun, walaupun kami telah disambungkan kedua-dua, tiada apa-apa bahagian dalam ViewController.h atau ViewController.m yang menggambarkan orang- butang atau mereka label. Jadi, kita perlu menulis mereka sebagai sifat-sifat pengawal pandangan. Jadi, ini adalah bagaimana anda mengisytiharkan harta. Ia mengambil masa dalam, biasanya, kedua-dua pilihan. Bagi maksud kami dan seminar ini, Saya akan mengatakan bahawa, secara umum, kebanyakan hartanah adalah nonatomic dan mengekalkan. Anda boleh membaca oleh Google mencari, anda tahu, perbezaan antara nonatomic dan mengekalkan, anda tahu, Google atau sesuatu. Dan saya akan membawa anda ke, seperti, Stack Limpahan, di mana orang akan mempunyai jawapan untuk perbezaan di antara mereka. Tetapi untuk sekarang, itulah yang kita mahu bimbang dengan. Dan kita mahu membuat label UI, bintang, dan kita boleh memanggilnya apa sahaja yang kita mahu. Kita boleh memanggil ini, anda tahu, label. Dan, kami akan mewujudkan satu lagi satu untuk butang. Dan ingat untuk termasuk asterisk, kerana kita berhadapan dengan petunjuk cukup banyak di mana-mana di dalam Objektif-C. Walau bagaimanapun, yang masih tidak menyelesaikan masalah ini, seperti yang anda lihat di sini. Dan sebab itu adalah kerana, apabila kita hendak menyambung label fail xib atau butang untuk program ini, atau pengepala dan fail pelaksanaan, kami mahu menambah sekeping kod - cawangan. Perhatikan bahawa ia adalah satu perkataan utama. Dan, sebaik sahaja saya selesai menaip yang keluar, ia perlu mempunyai ini dua bulatan, di sini. Biasanya, mereka tidak diisi Saya tidak pasti mengapa mereka berada. Tetapi biasanya, anda perlu secara manual menghubungkan mereka dengan pergi ke sebelah ini kawasan utiliti. Dan sebagainya, sekarang, saya mempunyai label saya dipilih, dan saya mahu mengheret ini baru rujukan outlet untuk pemilik fail saya, dan kemudian klik pada Label. Jadi sekarang, akhirnya, label ini adalah berkaitan dengan label ini. Dan label ini adalah apa yang kita akan menggunakan program menetapkan untuk berubah teks, font yang, latar belakang warna, dan sebagainya. Jadi, kenapa pula kita tidak melakukan perkara yang sama untuk butang di? Dan seperti yang anda akan notis, untuk butang, ia sedikit lebih rumit. Kerana, saya maksudkan, anda sepatutnya akhbar mengenai butang, supaya ia mendapat banyak pilihan untuk bagaimana pengguna boleh tekan pada butang. Dan kemudian, kita akan melihat kemudian bahawa kita boleh menyambungkannya dengan kami kod untuk menjayakannya. Jadi, buat masa walaupun, kita mahu menyambung kepada butang sebenar dalam kod kami. Oleh itu, kita pergi ke alur rujukan yang baru, dan kemudian melakukan butang. Sekarang, mari kita berjalan ini lagi. Uh oh. OK. Saya tidak tahu apa yang berlaku di sini sekarang. Wah. Hanya seketika, di sini. Sebenarnya, kenapa pula kita tidak mengambil melihat satu lagi contoh dalam kepentingan masa. OK. Jadi, di sini yang lebih mudah disediakan contoh untuk ViewController. Seperti yang anda lihat di sini, saya telah menyertakan sifat-sifat bagi label dan butang. Dan kemudian, ini sekeping kod di sini - IBaction ini - adalah sambungan ke butang ini di sini. Jadi seperti yang anda lihat di sini, Touch Up Di dalam disambungkan kepada pemilih dipanggil Butang ditekan. Jadi, kita sebenarnya boleh pergi melalui gerakan lagi, di sini, dengan mengambil Touch Up Di dalam dan mengheret kepada Pemilik fail, dan kemudian klik pada Butang ditekan. Sekarang, mari kita menjalankan kod kami. Jadi sekarang, butang ini kini berfungsi dan akan membawa kami ke halaman seterusnya. Dan, dari segi pengawal pandangan kami, ini adalah sekeping kod yang mengambil menjaga Butang ditekan. Dan adalah penting untuk diperhatikan di sini, bahawa Saya telah membuat satu lagi jenis pandangan pengawal dipanggil meja pandangan pengawal. Jadi, ini adalah sama dengan menyokong di papan cerita, apabila saya diheret salah satu ini pengawal paparan jadual ke dalam papan cerita. Saya mewujudkan satu lagi Penunjuk kepada pengawal paparan jadual, alloc dan INIT-ing, dan kemudian melakukan dot diri navigasi pengawal, menolak ViewController, ini baru viewController. Dan saya tetapkan animasi kepada ya, kerana sekarang dalam aplikasi saya, dan saya ingin benar-benar melihat animasi akan dari halaman rumah ke meja pandangan pengawal. PENONTON: Adakah anda masih bimbang mengenai kutipan sampah? RHED SHI: Apa itu? No Jadi, soalan itu, adakah anda mempunyai untuk bekerja dengan kutipan sampah? Jadi, Xcode 4 mempunyai seperti ARC, yang merupakan pengiraan rujukan automatik. Dan sebagainya, biasanya apabila anda memulakan baru projek, anda akan memeriksa itu, kerana tidak ada yang benar-benar mahu untuk menangani membebaskan memori dan barangan. Tetapi saya rasa pada Xcode 5, tidak ada satu pun bahawa pilihan projek yang baru. Jadi, ia secara automatik tidak untuk anda. Ya? PENONTON: Bolehkah anda mengeksport PDF dalam papan cerita anda? RHED SHI: Ya, sudah tentu. Jadi, semua ini akan dimasukkan ke dalam kod sumber, supaya anda semua boleh menyemak projek Xcode sebenar untuk itu. Yeah? PENONTON: Tetapi, saya maksudkan, seperti, yang boleh saya mencetak PDF dengan papan cerita saya? Jika saya hanya mahu mengeksport imej untuk menunjukkan seseorang. RHED SHI: Ya. Saya fikir, mungkin, anda boleh hanya mengambil satu pukulan skrin. Ya, dan menghantar mereka skrin ditembak atau sesuatu. Yeah. Jadi, mari kita lihat. Demi kepentingan masa, saya fikir itu sahaja l boleh meliputi hari ini. Tetapi, saya tahu bahawa, sebenarnya, hanya hampir tidak menyentuh permukaan IOS pembangunan. Jadi, sila hubungi saya jika anda mempunyai sebarang soalan mengenai IOS pembangunan. Dan, mudah-mudahan, saya akan dapat untuk membersihkan sehingga beberapa kod untuk sumber fail kod, supaya anda akan mempunyai beberapa contoh benar-benar baik untuk bekerja dengannya. Selain daripada itu, jika anda lelaki akan kepada CS50 Hackathon, saya mungkin atau boleh tidak berada di sana, dan saya boleh membantu dengan beberapa pembangunan IOS juga. Jadi, terima kasih banyak, guys.