>> 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.