>> RHED SHI: Selamat Datang lihat seminar CS50 -
Pengantar iOS.
Terima kasih semua untuk datang.
Saya harap Anda hanya bersemangat seperti saya tentang iOS.
Tahun lalu, aku mengambil CS50 sebagai mahasiswa tahun kedua, dan pada dasarnya saya belajar iOS untuk saya
tugas akhir.
Dan itu cukup -
Yah, itu tidak mudah, tetapi ada banyak dukungan tutorial online.
Dan aku benar-benar berharap bahwa dengan ini seminar, aku akan memberikan kalian kepala
mulai pada pengembangan iOS
>> Jadi, dalam hal pengembangan iOS, ada dua hal utama yang kita
ingin menutup hari ini.
Pertama, bahasa -
bahasa ini akan berada di Objective-C. Kami akan benar-benar mendengar
sesuatu yang benar-benar menarik.
Jadi, Anda dapat bergabung dengan seluruh Apple komunitas pengembang dan membangun beberapa
apps benar-benar mengagumkan.
>> Juga, iOS 7 indah, mudah-mudahan, untuk sebagian dari Anda.
Tapi itu kontroversial, saya tahu.
Dan terutama, apa yang ingin saya lakukan adalah panduan Anda melalui Objective-C, dan juga
Xcode, yang merupakan terintegrasi lingkungan pengembangan yang Anda akan
untuk bekerja di iOS.
>> Jadi, hanya kata pada Objective-C. Pada dasarnya, ini sama persis seperti C,
tapi dengan banyak hal-hal lain.
Dan, yang lebih ketat, itu sebenarnya super-set C. Jadi apa pun yang Anda
bisa dilakukan di C sekarang, yang pada dasarnya seperti pset 0 sampai 6, Anda
dapat dilakukan di Objective-C.
>> Jadi, jangan merasa takut tentang hal ini baru bahasa yang Anda akan belajar.
Anda sudah tertutup banyak itu, karena Anda sudah semua dilakukan C masa lalu ini
semester, kecuali sekarang Anda akan untuk memiliki lebih banyak untuk bekerja dengan.
Dan aku hanya akan membawa Anda melalui beberapa contoh untuk menyoroti beberapa
perbedaan utama yang saya temukan adalah ketika benar-benar penting yang saya pelajari
Objective-C tahun lalu.
>> Yah sebenarnya, jadi, titik lainnya adalah, Objective-C adalah, jelas,
object-oriented.
Dan kita akan membahas sedikit tentang apa artinya nanti.
Pada dasarnya, ini seperti bagaimana Anda bekerja dengan structs dalam pset masa lalu, dengan
node dan lainnya yang serupa hal-hal seperti itu.
Kecuali, di Objective-C, semuanya obyek, dan Anda akan menjadi
melewati sekitar pointer ke objek daripada nilai-nilai sendiri.
Jadi, itu hanya sesuatu yang penting yang perlu diingat.
>> Jadi, kenapa tidak kita mulai dengan beberapa perbedaan sintaks antara C dan
Objective-C?
Saya ingin menyoroti # include, Anda tahu, io.h standar dalam C dan C + +, dengan
versi Objective-C itu, yang adalah # impor, dan kemudian semacam
file header.
Dalam hal ini, akan UIKit, Anda tahu, memangkas UIKit.h.
Hal ini juga bisa, Anda tahu, MKMapView Anda memangkas MKMapview.h jika Anda ingin
yang harus dilakukan, seperti, peta dalam aplikasi Anda.
Hal yang serupa seperti itu.
>> Jadi, yang penting adalah meliputi kini telah berubah untuk mengimpor.
Tapi gagasan itu masih tetap.
Kau akan mengimpor semacam dari file header ke dalam program Anda.
>> Saya juga ingin menyoroti perbedaan antara printf dan NSLog.
Namun, seperti yang kita katakan sebelumnya, Objective-C adalah ketat super-set
C, yang berarti bahwa ada printf di Objective-C, juga.
Namun, kebanyakan orang tidak menggunakan itu.
Kebanyakan orang menggunakan NSLog ini karena memberikan cap waktu, dan kita akan melihat
dalam laga nanti.
Tapi, itu umumnya lebih berguna cara untuk mencetak variabel.
>> Dan saya juga ingin menggarisbawahi bahwa NSLog mengambil hanya sama
nilai placeholder sebagai printf tidak -
jadi% d adalah untuk int, % F adalah untuk pelampung.
Namun, saya ingin menyoroti sangat terakhir ini -
NSLog% pada tanda -
yang merupakan tempat bagi suatu benda.
Dan seperti yang saya katakan sebelumnya, penawaran Objective-C cukup banyak terutama di objek,
dan jadi ini akan datang dalam digunakan ketika Anda ingin mencetak, mungkin, mungkin sebuah
NSArray, atau NSDictionary, atau NSString.
>> Jadi, juga, perhatikan bahwa, di NSLog kami pernyataan, kita memiliki di tanda di depan
kutipan -
yaitu untuk menandakan string yang, sekarang, di Objective-C adalah obyek.
Mereka tidak lagi hanya bintang arang.
Mereka obyek dan diperlakukan seperti itu.
>> Jadi, itu benar-benar penting bahwa ketika Anda menggunakan NSLog dibutuhkan dalam NS
string, yang berarti bahwa Anda akan memiliki untuk memasukkan di di depan Anda
tanda kutip.
Dan itulah mengapa Anda lihat, di sini, di semua fungsi saya panggilan ke NSLog ini, saya
memiliki di di depan tanda kutip, bahkan meskipun% d dan% f adalah
semua sama dari C.
>> Ada pertanyaan sejauh ini?
Saya akan mencoba untuk pergi melalui ini dengan cepat sehingga bahwa kita dapat memiliki lebih banyak waktu untuk bekerja
dengan Xcode dan Objective-C, sehingga bahwa kalian bisa mendapatkan lebih banyak
akrab dengannya.
>> Selanjutnya, saya ingin menyoroti sesuatu konseptual penting.
Jadi, di C, kebanyakan hal fungsi.
Kami membuat panggilan fungsi.
Kami menyatakan fungsi dengan cara ini, dengan mengembalikan tipe pertama, maka
nama fungsi, tanda kurung, dan kemudian argumen apapun dan jenis
argumen ini kami ingin lulus masuk
Dan Objective-C, karena semuanya adalah obyek atau kelas -
jadi kelas dan objek adalah dua istilah yang sebagian besar identik dengan satu sama lain,
jadi saya dapat menggunakannya secara bergantian seluruh seminar.
>> Tapi, Anda akan melihat bahwa kita memiliki metode dalam Objective-C ketimbang fungsi.
Dan metode milik objek.
Jadi seperti, mungkin mengambil misalnya, node -
Jenis kami [Tak terdengar]
simpul dari pset 6 atau 5 -
kita memiliki kata, properti, atau node pointer berikutnya.
Metode hanya fungsi di dalam semacam struktur.
>> Jadi, dalam hal ini, struktur akan obyek, dan kemudian metode ini
sesuatu yang dimiliki oleh suatu objek.
Dan ini adalah bagaimana Anda akan menyatakan, semacam, sebuah metode.
Anda akan mulai dengan, sekali lagi, kembali Jenis - jadi, saya mencoba untuk warna
kode kata-kata kunci di sini sehingga kalian dapat melihat, setidaknya, format
kesamaan antara fungsi deklarasi dan deklarasi metode.
Jadi, Anda mulai dengan, Anda tahu, return Jenis - dalam kasus ini, itu adalah array, atau
sebuah pointer NSArray -
dan kemudian Anda memiliki metode ini.
Dan kemudian, apa yang menarik di sini adalah bahwa alih-alih memiliki kurung, kami
memiliki titik dua ini.
Dan kemudian, di depan argumen kami, kami menempatkan, sekali lagi, dalam kurung jenis
argumen kami.
>> Jadi, sekarang saya mencoba untuk membuat perbandingan antara, Anda tahu, n dan
nomor, karena mereka kedua ints sejenisnya.
Dan kemudian, yang lain adalah jenis NSUInteger.
Dan kemudian, dengan Objective-C, ketika Anda ingin memiliki beberapa argumen
klausa Anda metode, Anda, semacam, memisahkan mereka jenis seperti ini -
Saya tidak yakin bagaimana untuk menggambarkan itu, tapi ini adalah contoh yang baik tentang bagaimana Anda
dapat memiliki beberapa argumen di sana.
>> Anda bisa, tentu saja, hanya benar-benar mengabaikan usus andArray NSArray
Array jika Anda ingin hanya metode yang mengambil satu argumen.
Ya, pertanyaan.
>> AUDIENCE: Apakah kedua NSUInteger dan Argumen NSArray yang dapat diambil dalam
dalam NSArray?
>> RHED SHI: Ya.
Jadi, mari saya jelaskan.
Jadi, ya.
Jadi, pertanyaannya adalah yang NSUInteger dan NSArray * jenis argumen,
dan itu benar.
Jadi, Anda selalu ingin menentukan apa jenis argumen Anda.
Dan di sini, aku mencoba untuk memperkenalkan Anda dengan beberapa sintaks dan vocab dari
Objective-C, sehingga mereka adalah jenis yang sebenarnya bahwa Anda akan berurusan dengan.
>> Dan seperti yang Anda akan melihat, array tidak lagi, semacam,
braket hal-hal sederhana.
Mereka benda.
Meskipun, jika kita pergi ke berikutnya slide, kita dapat melihat bahwa kita bisa
keras-kode NSArray di Objective-C dengan hanya sebuah simbol di di depan
kurung.
Aku tidak, sebenarnya, cukup yakin apakah Saya sintaksis keras-kode array
benar untuk versi C, tapi itu seharusnya dalam array C.
>> Jadi, ini adalah bagaimana Anda akan, Anda tahu, mungkin menggunakan fungsi atau
metode yang kita buat sebelumnya.
Benar?
Jadi, ini adalah di mana kita mendeklarasikan kami fungsi dan metode kami.
Dan sekarang kita ingin menggunakannya dalam program kami, dan ini adalah
bagaimana kita akan melakukannya.
Jadi, di C, Anda akan memiliki, kau tahu, mungkin, bool b, dan Anda menetapkan ke
sama fungsi, dan kemudian Anda lulus dalam argumen.
>> Di Objective-C, itu cukup banyak hal yang sama.
Anda memiliki NSArray * my_array, dan itu akan sama - sekarang, satu-satunya
perbedaan di sini adalah hal objek ini, yang saya sudah ditandai dengan warna kuning, dan
seperti yang Anda lihat, di C, ada ada kata kuning lainnya.
Dan itu karena metode milik dengan benda tertentu.
Jadi itulah mengapa saya harus memiliki objek itu, semacam, menyebut metode ini pada
angka nol, dan kemudian NSArray a, b, c, d.
Setiap pertanyaan itu?
>> Kita akan melihat konsep-konsep ini dalam aksi segera ketika kita masuk ke demo.
OK.
Sekarang, saya ingin berbicara sedikit singkat tentang Xcode 5, yang merupakan
lingkungan pengembangan terintegrasi bahwa Anda akan bekerja dengan.
Saya tahu banyak dari Anda, atau beberapa dari Anda, tidak memiliki Mac, yang merupakan masalah
karena Xcode tidak tersedia untuk Windows dan PC.
Jangan tanya kenapa, tapi mungkin -
yeah, perusahaan.
Apapun.
Tapi bagaimanapun, jadi, saya minta maaf jika beberapa Anda harus men-download beberapa jenis
mesin virtual untuk Mac di untuk menjalankan Xcode 5.
Tapi itu adalah bagus cukup perangkat lunak untuk digunakan.
>> Jadi, sebelum kita menyelam ke dalam apapun dari demo, saya hanya ingin menampilkan
gambar dari apa yang tampak seperti di Xcode Anda jendela, dan kemudian juga berbicara tentang
apa seluruh ruang ini.
Jadi, itu jenis seperti belajar bagaimana menggunakan Microsoft Word, kecuali Anda ingin
mendapatkan dibiasakan dengan semua hal yang berbeda yang
yang terjadi di sini.
>> Jadi pertama, saya ingin menunjukkan Anda ke toolbar di bagian atas.
Anda akan melihat bahwa, di bagian atas, Anda akan memiliki nama file -
atau, sebenarnya, nama proyek Anda dan kemudian nama file Anda.
Mencatat bermain dan tombol berhenti.
Mereka adalah orang-orang bahwa Anda akan gunakan untuk menjalankan aplikasi Anda pada
simulator -
simulator iOS.
Hal ini secara otomatis dilengkapi dengan Xcode 5, sehingga Anda tidak perlu khawatir tentang
men-download beberapa jenis simulator.
Anda hanya menekan bermain dan kemudian berjalan app Anda.
Dan Anda dapat bermain-main dengan Anda, dan Anda akan melihat bagaimana kerjanya nanti.
>> Dan kemudian, di tengah, tentu saja, adalah di mana semua kode yang indah Anda
akan pergi.
Dan kemudian, di sisi kiri, Anda akan memiliki ini, semacam, folder -
navigasi -
dan kemudian, Anda juga akan melihat bahwa, bersama dengan icon folder, ada
sekelompok ikon lain ada yang akan berguna nantinya.
>> Dan kemudian, di sisi kanan adalah utilitas daerah di mana Anda dapat bekerja dengan
beberapa objek dan menentukan, Anda tahu, apa warna harus, apa
font teks harus, dan sebagainya.
Meskipun, segala sesuatu yang Anda lakukan di daerah utilitas, Anda dapat
dilakukan di kode juga.
Jadi, saya akan pergi melalui dua contoh penggunaan, sederhana, tidak ada kode di
semua - atau kode yang sangat minimal -
ayat semua kode, hanya agar kalian tahu apa yang Anda bisa dan tidak bisa dilakukan di
Xcode dan Objective-C.
>> Dan kemudian, akhirnya, turun di bagian bawah, Anda memiliki area debug.
Jadi, Anda tidak lagi harus menjalankan GDB, dan sebagainya, pada program Anda.
Secara otomatis melakukannya untuk Anda.
Dan Anda juga dapat mencetak barang ke daerah ini.
Jadi sebenarnya, kemudian, kita akan pergi melalui mario.c, jika kalian masih ingat
itu, di Xcode.
Sehingga harus menyenangkan.
>> Dan kemudian, hanya untuk membawa kembali ke Objective-C, saya ingin menyoroti apa
Anda dapat melakukannya dengan jika pernyataan.
Jadi, Anda tahu, karena Objective-C adalah superset dari C, semua yang Anda lakukan adalah,
harfiah, sama seperti C. Anda hanya memiliki sedikit perbedaan.
Jadi, Anda akan melihat form untuk jika Pernyataan masih sama - Anda memiliki
jika, dan kemudian Anda memiliki tanda kurung dengan kondisi di dalam, dan kemudian
kurung kurawal untuk apa pun yang Anda ingin melakukan dalam sana.
>> Namun, saya ingin menempatkan ini slide up di sini, hanya untuk menggambarkan bahwa,
karena kita sedang berhadapan dengan benda-benda sekarang, kita harus menggunakan hal-hal ini
disebut seperti, sama dengan string, yang adalah, kebetulan, metode yang
string atau obyek NSString.
Jadi, kata, dalam hal ini, adalah NSString obyek, dan memiliki metode yang disebut adalah
sama dengan string, dan kemudian kita melewati dalam string keras-kode untuk melihat
apakah mereka adalah sama satu sama lain.
>> Ada pertanyaan sejauh ini?
OK.
Dan, saya ingin pergi ke untuk pernyataan juga.
>> Jadi, misalnya, jika kita ingin lingkaran lebih panjang dari string di C, ini
harus akrab bagi Anda.
Dan, di Objective-C, aku ingin untuk menyoroti hal ini, semacam,
metode yang disebut count.
Well, sebenarnya, biarkan aku hanya mengambil kembali.
Count adalah metode array.
Namun, itu lebih khusus milik array, yang mengapa Anda
dapat menggunakan notasi titik.
Tapi aku tidak ingin masuk ke terlalu banyak hal-hal konseptual ini, saya hanya ingin
untuk menunjukkan kepada Anda bagaimana hal-hal akan terlihat seperti di Objective-C terhadap C.
>> Dan juga, saya ingin menunjukkan bahwa meskipun aku telah menggunakan NSUInteger
di depan semua saya i di Objective-C, Anda juga dapat menggunakan int, karena int adalah
benar-benar berlaku di Objective-C, juga.
Ya?
>> AUDIENCE: Apakah hanya gaya, atau -
>> RHED SHI: Ya.
Jadi, seperti yang Anda lihat -
jadi, pertanyaan itu adalah bahwa hanya masalah gaya.
Seperti yang Anda lihat, aku punya, semacam, star asterisk hal bawah di bagian bawah, dan
link yang membawa Anda ke Stack Overflow membentuk, di mana seseorang menjelaskan
perbedaan antara int di NSInteger dan NSUInteger.
Jadi, Anda dapat membaca tentang itu nanti.
Slide ini akan, tentu saja, tersedia untuk Anda.
>> Mari kita lihat.
OK, mengagumkan.
Jadi, ini juga termasuk dalam slide karena saya pikir ini adalah besar
website yang memperkenalkan Anda sintaks Objective-C.
Jadi, sebenarnya, mengapa kita tidak pindah ke Chrome dan memeriksa website ini?
>> Benar.
Jadi, apa yang saya ingin menunjukkan Orang-orang di sini adalah gambar ini.
Jadi, ini, semacam, akan menjadi apa Anda akan melihat dalam setiap
File Xcode.
Sebenarnya, kenapa tidak kita hanya mengambil waktu untuk, semacam, ambil ini masuk
>> Jadi, buku ini -
itulah objek yang kita sedang berhadapan dengan.
Dan kemudian, itu jelas akan menjadi diwarisi dari beberapa objek lain, tetapi
Anda tidak perlu khawatir tentang itu.
Dan saat itu, mungkin, memiliki beberapa variabel anggota.
>> Yang penting saya ingin menunjukkan Anda adalah metode instan, di sini.
Jadi, metode instan dilambangkan dengan tanda minus ini.
Dan kemudian, karena Anda akan melihat, kami sudah mulai melihat paradigma
untuk metode deklarasi, kan?
Jenis kembali, nama metode, dan maka jenis argumen, dan
maka nama argumen.
Dan tanda minus ini berarti bahwa itu adalah metode contoh, yang berarti bahwa
metode ini hanya tersedia bagi benda-benda yang telah instantiated.
>> Untuk kontras itu, metode dengan ditambah tanda di depan mereka adalah kelas
metode, yang berarti bahwa Anda dapat memanggil metode ini, bahkan jika Anda tidak memiliki
namun obyek diciptakan.
Jadi, untuk contoh yang jelas, NSString adalah sebuah kelas.
Dan Anda dapat menelepon, misalnya, metode kelas pada NSString -
sebenarnya, seperti, kata NSString.
>> Namun, dalam rangka untuk menggunakan metode, Anda benar-benar
perlu membuat string.
Sebagai contoh, NSString star string yang sama pada tanda kutip, hello world.
Dan kemudian, Anda dapat menggunakan metode ini -
metode instan -
pada yang hello world tali.
Jadi, itulah perbedaan antara metode instan dan metode kelas.
>> Dan, kita hanya menutupi bagian ini.
Properti adalah hal lain yang dalam objek, pada dasarnya.
Dan Anda menyatakan mereka dengan pada kata kunci properti.
Anda memiliki pilihan ini, di sini, bahwa saya akan menjelaskannya nanti ketika
kita masuk ke demo.
Ya?
Hi.
>> AUDIENCE: Bisakah Anda memperbesar, please?
>> RHED SHI: Oh ya.
Maaf.
>> AUDIENCE: Terima kasih.
>> RHED SHI: Itu harus jauh lebih baik.
>> AUDIENCE: Ya.
Terima kasih.
>> RHED SHI: Ya, tolong ingatkan saya jika Aku lupa untuk zoom in atau zoom out.
Jadi, ini adalah semua yang saya inginkan untuk menunjukkan Anda untuk -
whoa, itu banyak -
untuk website ini.
Jadi, mari kita kembali ke slide kami.
>> Sebenarnya, sekarang mari kita sejenak untuk menyelam ke dalam demo.
Jadi, kita akan mulai dengan proyek Xcode baru.
Jadi, jika Anda akan membuka Xcode pada semua mesin Anda, itu akan membawa Anda beberapa
Halaman di mana dikatakan, seperti, baik terbuka up proyek yang sudah ada atau yang baru
proyek, dan Anda harus klik sebuah proyek baru.
Dan kemudian, ia harus mengambil Anda ke layar ini.
Ya?
>> AUDIENCE: Jika kita tidak memiliki Mac, kita hanya semacam dingin?
>> RHED SHI: Atau lihat di dengan seseorang, ya.
Ya.
Anda dapat bersantai, juga.
OK.
>> Jadi, apa yang kita akan lakukan pertama, sekarang, adalah, sebenarnya, kita akan melakukan
satu aplikasi tampilan.
Jadi, jika Anda akan melihat, apa yang baik tentang Xcode dan dukungan Apple untuk
pengembang adalah bahwa Anda memiliki banyak template untuk bekerja dengan sudah.
Anda bisa, misalnya, membuat aplikasi master-detail.
Anda dapat membuat game -
dan benar-benar, saya tidak akan masuk ke permainan, karena permainan adalah cerita yang berbeda
untuk pengembangan iOS.
Dan mereka agak terpisah, jadi saya tidak akan membahas itu.
>> Kemudian, Anda telah berbasis page aplikasi.
Anda memiliki aplikasi tab -
jadi seperti, misalnya, Bank of America mungkin memiliki, seperti, aplikasi tab.
Ini yang di mana Anda memiliki tombol di bagian bawah.
Dan kemudian, Anda memiliki Kit permainan Sprite.
>> Atau Anda dapat bekerja dari awal, yang adalah apa yang akan kita lakukan nanti.
Tapi mari kita, pertama, mulai dengan aplikasi tampilan tunggal.
Kemudian, ia akan meminta nama produk, dan kita bisa melakukan tes.
Nama Organisasi -
jadi, nama organisasi, perusahaan identifier -
mereka adalah penting jika Anda akan untuk menempatkan aplikasi Anda di toko app.
Selain itu, kode Anda akan berjalan baik-baik saja tanpa ini.
>> Ini akan menjadi penting jika Anda ingin - jadi, per se, seperti, menempatkan aplikasi Anda
ke telepon Anda atau sesuatu, dan uji itu, Anda tahu, dalam kehidupan nyata -
ini akan menjadi penting.
Hal ini cenderung biasanya dikaitkan dengan semacam rekening pengembang
dengan Apple.
>> Dan, aku tahu, mungkin, banyak dari kalian tidak akan memiliki account pengembang.
Aku tahu universitas memiliki satu.
Saya pikir CS memiliki satu.
Tapi, Anda bisa email saya dan saya akan mencoba untuk mencari tahu untuk Anda.
Tapi sekarang, aku baru saja dimasukkan ke dalam beberapa hal placeholder di sini.
>> Dan Anda bisa, tentu saja, di sini, pilih apakah Anda ingin menjadi semata-mata
iPhone, iPad di, atau keduanya -
aplikasi universal.
Jadi, untuk saat ini, mari kita lakukan universal, hanya untuk melihat kedua sisi platform.
>> Mari kita lihat.
Jadi, sekarang, aku akan menyimpan dalam semacam folder.
Tidak peduli di mana - Anda dapat selalu bergerak nanti.
Dan, sekarang, kita dibawa untuk proyek Xcode kami.
Saya tidak akan khawatir tentang semua ini.
Saya akan menyarankan tidak menyentuh apapun ini, kecuali Anda tahu persis apa
Anda lakukan.
Jadi, semua ini, hanya mengabaikan untuk sebagian besar.
Anda tidak perlu menyentuhnya, dan jika Anda melakukan Anda mengacaukan beberapa hal di sini,
menjadi sedikit rumit.
>> Jadi, kenapa tidak kita melihat ke dalam file pada
sisi kiri di navigator kami.
Di sini, kita memiliki AppDelegate.h.
Kami memiliki AppDelegate.m Jadi, seperti yang Anda akan pemberitahuan, kami telah file header, yang
berakhir di titik jam, dan kami memiliki implementasi -
sebenarnya, biarkan aku zoom in
OK.
Mari saya zoom in
>> Benar, jadi Anda telah file header dan Anda memiliki file implementasi.
Sebenarnya -
OK.
Ini sedikit aneh, tapi beruang dengan saya.
Kemudian, karena kita telah memilih tampilan tunggal aplikasi, kita akan menjadi
bekerja dengan storyboard.
>> Jadi, storyboard adalah sesuatu bahwa Apple telah datang dengan untuk benar-benar membantu
pengembang cepat prototipe aplikasi mereka.
Jadi, ini adalah di mana Anda dapat membuat sebuah aplikasi tanpa menulis
baris kode.
Namun, dalam pandangan aplikasi kita satu, yang kita lakukan, tentu saja, memiliki
mengajukan pandangan kami, yang adalah controller tampilan.
Jadi, kita memiliki header dan file implementasi, di sini.
>> Dan, aku akan memperkecil sekarang karena kita harus bekerja dalam storyboard.
Jadi, inilah pandangan kami.
Jika kita, sederhana, menjalankan aplikasi sekarang, ada tidak banyak menarik terjadi.
Jadi, Anda akan melihat layar putih ini.
OK?
>> Dan, di daerah utilitas, kita dapat menambahkan banyak hal yang berbeda untuk itu.
Jadi, ketika Anda sedang berhadapan dengan layar di iOS, pengendali tampilan adalah
benda-benda yang merangkum, semacam, pandangan Anda.
Jadi, pandangan kontroler selalu telah properti yang disebut pandangan.
Dan pandangan itu, biasanya, berisi, Anda tahu, apa yang Anda
ingin melihat pada layar.
>> Jadi, baik, mari kita mulai dengan menempatkan, mungkin, mungkin label.
Jadi, mari kita menaruh label di sana -
menempelkannya di tengah.
Jadi, sekarang aku sudah mengklik label, saya bisa masuk ke properti inspektur
dan mulai mengubah nilainya.
Sebut saja CS50 Colours.
>> Dan, saya juga dapat mengubah font.
Jadi, bukannya melakukan sistem, yaitu default, kita bisa melakukan satu kustom.
Kita dapat mengubah -
Anda tahu, ultralight, membuatnya 32.
Dan kemudian, kita bisa membuat kotak kami lebih besar.
>> AUDIENCE: Apakah Anda pikir Anda dapat memperbesar hanya sedikit lebih, mungkin?
>> RHED SHI: Ya?
OK.
>> AUDIENCE: Hanya tekan itu?
>> RHED SHI: Mari kita lihat.
Apakah pekerjaan ini?
>> AUDIENCE: Just lulus Xcode?
>> RHED SHI: Tentu.
OK.
Mengagumkan.
>> AUDIENCE: Label di bawah?
Label?
>> RHED SHI: Apa itu?
>> AUDIENCE: Apa drop-down adalah label di bawah?
>> RHED SHI: Jadi, pertanyaannya adalah, apa drop-down adalah label di bawah?
Seharusnya, sederhana, berada di bawah sini.
Saya kira itu hal kubus.
Tapi biasanya, ini adalah default -
Aku hanya akan turun di sini sampai aku menemukan label.
Ya.
>> Jadi sekarang, kami memiliki label kami.
Mari pusat itu.
Dan Xcode memberi kita pedoman untuk centering objek.
Jadi, sekarang mari kita menjalankan kode kami lagi.
>> Di sana kami pergi.
Jadi, kita memiliki CS50 Colours.
Dan sekarang, mari kita meletakkan tombol di sana, kan?
Karena kita ingin membuat ini interaktif.
Jadi, mari kita menempatkan sebuah tombol di sini.
Dan kita akan menyebutnya tombol ini "tekan di sini untuk melanjutkan. "Kami akan pusat itu, juga
Sebenarnya, itu sudah terpusat.
Ya.
>> Jadi, sekarang kita memiliki sebuah tombol.
Dan jika kita menjalankan ini lagi, kita akan memiliki tombol kecil yang bagus di sini.
Dan saya bisa klik, tapi tidak melakukan apa-apa, karena kita tidak melakukan
apa-apa dengan tombol belum.
>> Jadi, mari kita membuat pandangan lain, kan?
Jadi, katakanlah saya ingin memanfaatkan bahwa tombol dan saya ingin
pergi ke halaman lain -
pandangan lain.
Apa yang akan saya lakukan adalah, saya dapat membuat pandangan controller, kan?
Sekarang saya akan klik pada tombol, dan kemudian, yang penting adalah, aku akan
klik - atau -
ya, tekan kontrol pada keyboard.
Control.
Klik pada tombol, dan kemudian tarik.
>> Jadi, ingatlah untuk menahan tombol kontrol.
Mari kita lakukan itu lagi.
Jadi, memegang kendali, klik, dan tarik apa yang ingin Anda lakukan.
OK.
>> Dan sekarang, saya memiliki beberapa pilihan di sini.
Saya dapat baik mendorong, atau aku bisa melakukan moda angkutan, atau aku bisa melakukan custom.
Push hanya jika Anda memiliki pengontrol navigasi.
Saat ini, pandangan pertama kami kontroler tidak dalam setiap
pengontrol navigasi.
Jadi, controller navigasi adalah salah satu yang memberikan tombol kembali pada
aplikasi iOS di mana Anda miliki, Anda tahu, bahwa atas, semacam, bar tebal -
di mana Anda bisa kembali, atau maju, dan sebagainya.
Saat ini, saya tidak memiliki itu.
Jadi, itu sebabnya aku tidak bisa melakukan push.
>> Jadi, saya mengklik mendorong sengaja, di sini.
Dan sebenarnya, mari kita menjalankan kode, dan harus crash pada saya.
Hanya jika saya menekan tombol meskipun, jadi -
benar.
Jadi, ini buruk.
>> Dan, seperti yang Anda lihat, di sini, kami memiliki pesan kesalahan.
Jadi, "Dorong segues hanya dapat digunakan ketika Sumber kontroler dikelola oleh
contoh UI navigasi pengendali. " Jadi, karena ini bukan dalam sebuah
navigasi controller, Aku tidak bisa melakukan itu.
>> Jadi, sekarang, aku akan kembali ke folder, akan kembali ke storyboard.
>> AUDIENCE: Apa navigasi controller, lagi?
>> RHED SHI: Jadi, sekarang saya akan menunjukkan kepada Anda.
Mari kita lihat.
Jadi, aku akan klik pada tampilan ini controller, dan kemudian aku akan pergi
sampai dengan produk -
sebenarnya, tidak, maaf - Editor.
Dan aku akan pergi ke -
sebenarnya, aku klik di atasnya?
Tidak.
Di sana kami pergi.
Aku akan pergi ke editor, turun untuk menanamkan dalam, dan kemudian navigasi
kontroler.
>> OK.
Dan, ruang kerja saya terlihat sangat berantakan, jadi mari kita membersihkan ini.
Jadi, semua ini adalah storyboard.
Dan dengan cara ini -
OK, berhenti -
Saya dapat dengan cepat membangun sesuatu seperti ini.
Dan kemudian, sekarang aku bisa kembali, kau tahu?
>> Tapi ini adalah jenis membosankan, kan?
Jadi, apa yang ingin saya lakukan adalah, saya tidak ingin untuk membuat, hanya cukup, pandangan
kontroler.
Katakanlah saya ingin benar-benar membuat tampilan tabel controller, jadi saya bisa dimasukkan ke dalam
beberapa warna yang bagus, ke dalam tabel.
>> Jadi, sekarang aku sudah dimasukkan ke dalam tampilan tabel saya controller, saya perlu untuk menghubungkan kembali
dari tombol ini untuk controller tampilan.
Jadi saya perlu melakukan kontrol saya, klik, tarik hal lagi.
Dan sekarang aku bisa melakukan push, karena saya menanamkan itu dalam controller navigasi.
>> AUDIENCE: Navigasi kontrol hanya memungkinkan Anda untuk pergi dari satu tempat ke tempat?
>> RHED SHI: Ya.
Jadi, lebih teknis, itu sebuah objek di mana -
jadi, dalam navigasi objek controller, itu
melacak array.
Dan array memegang semua berikutnya melihat kontroler.
Itu sebabnya ketika Anda menekan kembali, itu kembali ke halaman sebelumnya.
Karena controller navigasi objek, atau kode yang menangani
obyek ini, memiliki sebuah array yang membuat melacak ini pengendali tampilan, dan
kemudian, Anda tahu, dq pandangan controller dan memberikan Anda kembali
sebelumnya.
>> Jadi, ini adalah hal-hal teknis, tapi -
dan saya tunjukkan nanti di kode, jika kita punya waktu.
Aku agak kehabisan waktu, tapi -
>> Jadi, dengan tampilan tabel, apa yang bisa kita lakukan adalah -
Ini biasanya diatur secara otomatis ke Dynamic Prototype -
kita akan membuatnya Sel statis, kalau tidak kita akan
mengalami beberapa masalah.
>> Dan kemudian, katakanlah aku akan untuk memiliki satu bagian.
Jadi, bagian seperti -
jika Anda pernah melihat aplikasi musik, ketika Anda memiliki seniman, bagian akan
menjadi A melalui Z's -
huruf -
dan kemudian, Anda tahu, individu baris akan menjadi nama artis.
Jadi, apa yang keren di sini, adalah bahwa saya bisa mengakses semua benda di dalam
dari storyboard saya melalui ini menu drop-down, juga.
>> Jadi, aku akan klik pada bagian saya, dan aku ingin, kau tahu, mungkin lima baris.
Dan kemudian, dalam setiap baris, Saya ingin menempatkan label.
Dan aku akan menelepon Biru ini.
Dan kemudian, saya ingin menempatkan pandangan UI, Anda tahu, mungkin untuk, seperti, sebuah kotak kecil.
>> Sehingga saya bisa menunjukkan orang preview warna.
Dan aku akan kembali ke properti dan mengubah warna itu untuk, oh, aku tidak
tahu, yang satu ini.
>> Dan kemudian, perhatikan juga, di sini, ketika saya memiliki aksesoris, saya dapat memiliki banyak
aksesori yang berbeda bahwa Anda biasanya melihat.
Indikator pengungkapan, detail, atau tanda centang, atau hanya sekedar detail.
Jadi, mungkin kita bisa lakukan, seperti, pengungkapan indikator, misalnya.
>> Dan kemudian, mengapa kita tidak mengambil ini, copy paste, dan menempatkan mereka ke dalam
berikutnya baris tabel.
Jadi, kita dapat memanggil Kuning ini.
Dan saya mungkin harus memperpanjang ini.
Mari kita membuatnya kuning.
Dan dengan cara ini, kita dapat menyalin tempel perjalanan ke bawah.
Apa itu?
Purple.
>> Jadi, ini semua CS50 khas warna yang telah Anda lihat di kelas -
sebenarnya, maaf -
atau di website.
Mudah-mudahan kalian bisa melihat apa yang saya lakukan di sini.
OK.
Yang terakhir.
>> AUDIENCE: Bagaimana Anda menambahkan baris awalnya?
>> RHED SHI: Jadi, pertanyaannya adalah, bagaimana aku menambahkan baris awalnya?
Aku pergi ke bagian tabel ini - atau namun saya bisa
pilih bagian tabel -
dan kemudian, di sini, saya Diperbaharui jumlah baris.
>> Dan, biarkan aku berharap bahwa ini bekerja.
OK.
Mari kita lihat apakah ini bekerja.
Oh, sempurna, mengagumkan.
OK.
Sementara aku membangun demo saya, beberapa hal-hal yang tidak selaras, jadi, terima kasih untuk
tepuk tangan.
>> Ya.
Jadi, mari kita lihat.
Kami akan membuat sembilan ini hanya untuk membuat segala sesuatu - atau sebenarnya, mari kita
mengubah semua ini menjadi pengungkapan indikator.
Lalu, apa yang saya ingin menunjukkan kepada Anda, juga, adalah bagaimana saya dapat mengambil masing-masing
baris tabel dan mereka berinteraksi -
oh.
Tidak.
>> Oh.
Juga, saya ingin menunjukkan kepada Anda -
di sini, saya dapat menempatkan judul saya navigasi controller, kan?
Jadi sebenarnya, Anda akan melihat, segera setelah saya tertanam controller pandangan ini dalam
dari controller navigasi, kita melihat ini bar navigasi di bagian atas kami
representasi storyboard dari controller tampilan.
Jadi, ini memberikan kita, seperti, visual, semacam, membimbing ke layar terlihat kami.
Hal ini jelas akan menjadi bar navigasi.
>> Dan apa yang ingin saya lakukan dengan cepat, sekarang, yang dimasukkan ke dalam lain -
jadi ini tampilan tabel kontroler yang saya lakukan dengan mengambil salah satu dari ini dan menyeretnya
di sini, dan itulah yang memungkinkan saya untuk cepat, benar-benar, membuat tampilan tabel
kontroler.
Jika kita memiliki waktu meskipun, Anda akan melihat bahwa, pemrograman, itu adalah
sedikit lebih sulit untuk membuat tabel controller pandangan, karena ada
adalah beberapa metode yang diperlukan bagi Anda untuk, semacam, menulis
dalam rangka untuk tampilan tabel controller untuk ditampilkan dengan benar.
>> Namun, saya hanya ingin menunjukkan, sekarang, contoh di mana, jika aku mengambil ini,
misalnya -
Aku sudah dimasukkan ke dalam tampilan controller lain.
Dan sekarang, katakanlah saya ingin mengontrol alt biru pertama saya
baris tabel ke sini.
Dan aku ingin menelepon Biru ini.
Dan kemudian -
mari kita lihat.
Aku ada di tampilan sekarang, dan saya dapat mengubah latar belakang biru.
>> Jadi, pemberitahuan, di sini, ini drop-down menu juga memberikan Anda sebuah hirarki semua
benda-benda.
Jadi suatu hal yang penting untuk dicatat, di sini, adalah bahwa semua hal ini, di sini -
ini tampilan tabel controller, meja tampilan, tampilan tabel bagian, tampilan tabel
sel - semua ini adalah objek, dalam kode.
Jadi, Anda tahu, label sekarang berada di bawah tampilan konten, dan sebagainya.
Seterusnya dan sebagainya.
>> Jadi, jika kita menjalankan kode ini, kami akan melihat sesuatu -
mari kita lihat apakah ini - ya.
Jadi, di sana kita pergi.
Tapi, jika kita tidak melakukan itu, tidak ada dari hal-hal lain bekerja.
Benar?
Jadi hanya satu ini bekerja.
Dan, demi waktu, saya tidak akan masuk ke dalam, Anda tahu, menempatkan
bawah yang lain.
Dan ini adalah akhir, semacam, storyboard -
apa yang saya ingin menunjukkan Anda untuk storyboard.
>> Dan, saya punya bekerja contoh, sebenarnya, di sini.
Jadi, ini adalah storyboard yang saya buat sebelumnya.
Jadi, seperti yang Anda lihat, ini adalah kontroler navigasi saya.
Kemudian saya memiliki pandangan pertama saya controller, maka saya punya saya tampilan tabel controller,
dan kemudian aku memiliki semua ini -
jadi sebelumnya, aku melakukan sesuatu yang sangat berbeda.
Jadi, alasan-hal.
Saya mungkin akan membersihkannya nanti sebelum Saya mengirimnya ke produksi.
>> Tapi, jika kita menjalankan ini, kita akan melihat bahwa semua opsi
tersedia bagi kita.
Kecuali saya tidak membuat latar belakang warna-warna.
Jadi, aplikasi sederhana yang bagus.
>> Sekarang, mari kita mencoba untuk mengatasi pemrograman ini.
OK.
Jadi, untuk melakukan itu, kita hanya akan untuk memulai sebuah proyek Xcode baru.
Kita akan membuat sebuah aplikasi kosong sekarang, karena kita tidak ingin memiliki
storyboard.
Jadi, saya hanya membatasi diri untuk tidak menggunakan salah satu storyboard, dan
aplikasi kosong tidak akan memberi saya storyboard.
Ini hanya untuk mencegah diri dari kecurangan.
Mari kita lihat.
Tunggu.
Apakah saya -
ya.
OK.
>> Benar.
Jadi, di sini, kita dibiarkan dengan tidak lain kode.
Jadi, biarkan aku memindahkan jendela ini sedikit di atas.
Benar.
Seperti yang dapat Anda lihat di sini, hanya file kita diberikan adalah AppDelegate.h dan dot
m, dan kita tidak memiliki storyboard lagi.
>> Jadi jika kita menjalankan ini, kita masih akan sampai ke layar putih, terima kasih Tuhan.
OK - layar putih, tapi tidak ada yang lain.
Dan, di sini adalah bagian penting.
Ini adalah di mana tindakan terjadi.
Pada versi sebelumnya, ada biasanya tidak ada kode di sini, tapi
storyboard pada dasarnya memberikan kode untuk bagian ini.
Aku tidak akan masuk ke rincian tentang bagaimana.
>> Dan apa yang ingin kita lakukan sekarang adalah, kami ingin untuk masuk ke sini, dan ruang kecil ini
mulai menciptakan aplikasi kami lagi.
Jadi -
ya?
>> AUDIENCE: Zoom?
>> RHED SHI: Zoom.
Ya, tentu.
OK.
Aku akan mengetik, jadi ini seharusnya tidak terlalu banyak masalah.
OK.
>> Jadi, pertama, ingat kita ingin menciptakan controller navigasi, kan?
Dan juga, seperti yang Anda lihat di sini, Xcode melakukan pekerjaan yang benar-benar hebat
self-mengisi.
Jadi, seperti yang Anda akan melihat, nama-nama segala sesuatu yang jauh lebih lama dari
biasa, tapi Xcode mengisinya untuk Anda.
Jadi aku hanya bisa tekan Enter.
>> Jadi, saya ingin membuat navigasi UI pengontrol pointer, dan saya dapat menyebutnya
navigationController.
Sekarang, apa yang harus saya lakukan sekarang?
Setelah tanda sama ini, saya harus, pertama, menciptakannya di dalam memori.
Jadi, aku akan melakukan NavigationController alokasi -
jadi, ini mirip dengan malloc, bahwa kalian digunakan dalam C -
dan kemudian, aku akan init itu.
>> Jadi, itu benar-benar penting bahwa setiap objek yang Anda buat, Anda ingin
alokasi dan init itu.
Itu akan membuat dan instantialize di dalam memori, dan
sekarang Anda dapat menggunakannya.
Baiklah?
Jika Anda tidak melakukannya, objek tidak tidak ada, dan Anda akan mengalami a bunch
masalah.
>> Dan kemudian, saya ingin membuat pandangan controller, kan?
Jadi, saya ingin membuat sebuah UIViewController Bintang -
jadi, semuanya adalah pointer di Objective-C, dan aku akan melakukan
sesuatu yang mirip, di sini -
alloc, init.
OK.
>> Lalu apa yang akan saya lakukan adalah, saya akan - jadi, ingat ketika kita melakukan
yang menanamkan dalam navigasi controller?
Ini adalah bagaimana Anda melakukannya dalam kode.
Anda akan melakukan navigationController
pushViewController -
>> AUDIENCE: [Tak terdengar].
Ini akan terjadi bagi kita, atau -?
>> RHED SHI: Oh, yeah.
Tidak.
Ini menyukaiku lebih baik.
Tidak, itu akan bekerja untuk Anda juga.
Jadi, ini semua metode.
Jadi pushViewController adalah sebuah metode, dan juga, lebih khusus lagi, ini merupakan
metode contoh dari UI pengontrol navigasi.
Karena aku harus membuat navigasi UI saya star controller, dan kemudian saya
dapat memanggil pushViewController ini pada saya contoh spesifik dari navigasi UI
kontroler.
>> AUDIENCE: Apakah kita harus melakukan hal yang tepat kata, atau apakah itu sudah ada untuk itu?
>> RHED SHI: Ya, karena itu metode.
Ini seperti fungsi.
Ini seperti printf.
Ini seperti scanf.
Ini seperti strcompare.
Kecuali ia tahu apa yang Anda mungkin ingin mengetik, dan melihat bahwa itu akan selalu
datang dengan hal-hal yang hukum diperbolehkan untuk Anda.
Jadi, jika tidak ada yang muncul di sini, maka ada sesuatu yang salah.
>> Jadi, pushViewController.
Jadi, sekarang, saya ingin mendorong saya baru dibuat
UIViewController, dan kemudian, animasi -
mungkin tidak.
Karena ini akan menjadi Pandangan pertama controller.
Maksudku, bahkan jika saya membuat animasi, mungkin tidak akan muncul, karena
itu adalah layar pertama.
>> Dan ingat kurung.
Jadi, ingat bagaimana kami menggunakan kurung?
Dan di dalam kurung, yang object panggilan pada metode -
jadi objek kita adalah navigasi controller, dan metode ini adalah push
controller tampilan animasi.
Dan melihat bagaimana dibutuhkan dalam dua argumen, dan mereka dipisahkan oleh, semacam,
kata-kata, dan titik dua.
Jadi, Objective-C mencoba untuk membuatnya bagus dan mudah bagi Anda untuk membaca keras-keras -
kode Anda - dan memilikinya setengah, semacam, masuk akal.
>> Namun, melakukan hal ini tidak cukup.
Biarkan aku tampilannya keluar sekarang.
Melakukan ini saja tidak cukup untuk mendapatkan apa yang kita punya untuk sebelumnya.
Jadi di sini, Anda akan melihat bahwa ada sebenarnya tidak akan menjadi apapun
bar, di sini, kan?
Tidak ada navigasi bar, yang berarti bahwa kita masih belum mendapatkan itu.
>> Dan kita dapat menguji hal itu, juga, oleh, mungkin, mengubah latar belakang
ViewController, kan?
ViewController.background--
ah.
Jadi, melihat bagaimana ViewController tidak memiliki warna latar belakang, meskipun saya
ingin mengaksesnya?
Dan itu karena ViewController merupakan wadah untuk pandangan.
Jadi, ia memiliki properti tampilan, yang kemudian memiliki warna latar belakang.
>> Dan, aku bisa mengaturnya, semacam perlahan, dengan memanggil warna
pada objek UIColor.
Jadi, perhatikan di sini, redColor adalah metode.
Ini adalah metode kelas UIColor.
Karena saya tidak harus membuat contoh aktual dari UIColor dalam rangka
untuk memanggil metode di atasnya.
Aku hanya, hanya, menyebutnya pada nama jenis-seperti.
Aku, seperti yang disebut di int, int jika memiliki, seperti, metode untuk itu, misalnya.
>> Jadi, jika kita menjalankan kode ini, kita akan melihat bahwa latar belakang
sebenarnya tidak merah.
Ini masih putih.
Dan bagaimana kita bisa mendapatkan sekitar itu, perhatikan bagaimana ada self.window tersebut.
Artinya, seperti, wadah utama untuk aplikasi Anda.
Ini adalah hal yang utama yang berisi segala sesuatu di layar, untuk
iPhone atau aplikasi iPad.
>> Dan, mudah, self.window memiliki properti ini disebut
RootViewController.
Dan itu akan menjadi pointer ke pandangan pertama controller dalam
dari aplikasi Anda.
Jadi, apa yang ingin kita lakukan di sini, sekarang, adalah untuk mengatur yang sama dengan navigasi kami
kontroler.
Benar?
Karena, secara teknis, navigasi controller adalah pandangan yang sangat pertama kami
kontroler.
Ini melacak berbagai tampilan lain controller, dan kami mendorong ini
controller pandangan ke dalam array yang di controller navigasi.
>> Jadi, Anda tidak ingin melakukan ini.
Itu tidak benar-benar membantu Anda.
Anda ingin melakukan hal ini, jika Anda ingin melakukan controller navigasi, yang sebagian besar
Anda mungkin akan karena Anda akan ingin untuk, semacam, memiliki semacam,
seperti, menu untuk kembali ke atau homepage untuk kembali ke, daripada
layar kosong.
Ya?
>> AUDIENCE: Apakah tidak nyaman bagi Anda untuk memperbesar pada -
>> RHED SHI: Ya.
Jadi, ya.
Ini adalah kode, dan sekarang mari kita menguji itu.
>> Jadi, di sana kita pergi.
Sihir.
Jadi, OK.
Terima kasih.
OK.
Jadi sekarang, apa yang ingin kita lakukan adalah - jadi, kita agak terbatas, di sini, kan?
Kami berpotensi menulis segala sesuatu dalam fungsi yang satu ini.
Tapi, itu belum seberapa pengembangan iOS biasanya bekerja.
>> Jadi, apa yang akan kita lakukan adalah, kita akan membuat beberapa file baru.
Tapi, lebih khusus lagi, kita akan membuat kelas Objective-C yang lain, atau
obyek lain -
kelas dan objek yang dipertukarkan di sini.
Dan, inilah cara saya bisa, berpotensi, membuat kelas lain dari U kontroler.
>> Jadi, itu adalah sub-kelas, karena Anda akan melihat, di sini, itu adalah sub-kelas dari
Tampilan UI controller, tapi aku bisa menyebutnya nama lain di sini.
Aku bisa menelepon CS50 ini, saya bisa menelepon controller pandangan ini, saya bisa menelepon
Pemandangan bla ini kontroler -
apapun yang saya inginkan.
Ini hanyalah nama untuk kelas.
Namun, itu akan menjadi penting karena, pada dasarnya, apa yang saya lakukan
di sini adalah, aku menciptakan nama kelas lain.
Jadi, itu akan menjadi, seperti, beberapa semacam jenis atau objek.
Jadi, harus sedikit generik.
Ini tidak akan menjadi sangat spesifik.
>> Dan juga, saya ingin menunjukkan dua pilihan ini.
Karena kita melakukan segala sesuatu dalam kode, kadang-kadang jauh lebih mudah
untuk membawa file antarmuka, sehingga Aku benar-benar dapat drag dan drop, seperti
yang kita lakukan sebelumnya dengan storyboard -
Anda tahu, label, atau tombol, atau apapun yang lain.
Jadi, xibs adalah file yang memungkinkan Anda untuk melakukan itu, dan Anda harus hook it up
pandangan ini berkas kontroler.
>> Jadi, aku akan sengaja tidak memeriksa ini.
Biasanya aku akan memeriksa ini, dan jika saya hanya melakukan ini untuk iPhone atau iPad, saya
akan memeriksa ini dan hanya memiliki satu untuk, Anda tahu, iPhone atau iPad.
Tapi karena aku melakukan universal, aku akan untuk membuat dua dari mereka kemudian.
Jadi, aku akan sengaja hapus centang ini.
>> Hal ini juga sangat penting.
Banyak kali, aku sudah bug di mana ini tidak diperiksa.
Jadi, jelas, file ini tidak, semacam, seperti, disertakan atau diimpor
dalam folder tes ini.
Jadi, kode saya sama sekali tidak tahu keberadaan file ini, dan
yang menyebabkan banyak rasa sakit dan jam debugging.
Tapi, pastikan ini dicentang sehingga itu, Anda tahu, target ini
file untuk aplikasi ini.
>> OK.
Jadi, sekarang kita telah membuat dua file baru.
Dan file-file ini terlihat cukup kosong.
Dan, sebenarnya, mari kita juga terus on dengan menciptakan file xib.
Jadi, sebelumnya, aku berada di Kakao Touch drop-down.
Sekarang, aku akan pergi ke Pengguna Antarmuka sentuh, dan seperti yang Anda lihat, saya
dapat membuat storyboard.
>> Jadi, bahkan saya mulai dengan kosong aplikasi, saya masih dapat menggunakan
storyboard.
Meskipun, hal itu akan sulit dalam hal bagaimana Anda ingin menghubungkan
bahwa untuk kode Anda.
Jadi, saya tidak akan pergi ke sana.
>> Tapi, apa yang ingin kita lakukan sekarang adalah membuat tampilan.
Dan Anda dapat memilih untuk iPhone atau iPad.
Dan biasanya, untuk menunjukkan Perbedaan - jika Anda melakukan
aplikasi universal -
Anda juga memasang iPhone garis bawah, atau Anda dapat melakukan Twiddly.
Itu tidak terlalu penting.
Ini hanya bagi Anda untuk membedakan pandangan mana adalah untuk perangkat yang.
>> Jadi, sekarang lihat.
Saya memiliki layar yang saya dapat bekerja dengan.
Jadi, misalnya, saya bisa menempatkan label di sini, Anda tahu, dan saya juga dapat menempatkan
tombol lain di sini.
Aku tidak akan repot-repot mengubah nilai-nilai di sini.
>> Tapi, apa yang penting di sini adalah bahwa pemilik file -
jadi, aku dalam iPhone pandangan, xib file iPhone.
Dan turun di daerah navigasi ini atau menu drop-down, saya ingin pergi ke
pemilik file.
Dan ini adalah benar-benar Langkah penting di sini.
Saya ingin membuat tampilan kelas controller, sehingga file xib ini
akan terkait dengan my view kontroler.
Dan apa pun yang saya lakukan dalam pandangan saya kontroler pemrograman adalah
akan tercermin di sini.
>> Jadi, bagaimanapun, perhatikan bahwa -
sebenarnya, mari kita membuat pandangan ini latar belakang biru, misalnya.
Atau hijau.
Dan kemudian, jadi jika Anda akan melihat, kembali kode ini, ini adalah di mana kita harus kita
pengontrol navigasi.
>> Meskipun kami melakukan langkah itu, itu masih akan menjadi merah, bukan hijau.
Dan ada alasan mengapa.
Itu karena, ketika kita inited controller pandangan kami, di sini -
Maaf, itu sedikit gila -
ketika kita inited controller pandangan kami di sini, kami inited itu dari jenis umum
UIViewController.
OK?
Jadi kita bahkan tidak melakukan dengan kelas ini.
>> Jadi ingat, ini seperti kelas sekarang.
Hal ini dapat dianggap sebagai tipe, hanya sebagai UIViewController adalah tipe.
Dan untuk menggunakannya, apa yang perlu kita lakukan adalah impor -
impor ViewController -
dan, seperti yang Anda lihat, itu AutoFills untuk saya.
Jadi, ViewController -
dan sekarang, di sini, saya dapat mengubah ini UIViewController ke ViewController.
Dan sekarang, di sini, saya dapat mengubah ini untuk ViewController.
>> Mari kita jalankan ini lagi.
Ini masih merah.
Dan alasan mengapa hal itu masih merah karena -
woah, apa yang terjadi di sana?
Kami ingin mengasosiasikan xib ini file dengan controller tampilan.
Namun, dalam rangka untuk benar-benar melakukan itu, kita perlu untuk pergi ke dalam ini.
Dan ketika kita melakukan init, kita ingin melakukan initWithNibName, dan kemudian kita ingin
lakukan di tali View_iPhone, misalnya.
Anda dapat mengabaikan bundel sini.
>> Dan ini akan memungkinkan kita, sebenarnya -
uh oh, ada masalah.
Benar.
>> Jadi, ada masalah karena, dalam File tampilan xib kami, kami memiliki label dan
kita memiliki sebuah tombol.
Namun, meskipun kami telah terhubung kedua, tidak ada dalam
ViewController.h atau ViewController.m yang mencerminkan
tombol atau label-label.
Jadi, kita perlu menulis mereka sebagai sifat controller tampilan.
>> Jadi, ini adalah bagaimana Anda mendeklarasikan properti.
Dibutuhkan dalam, biasanya, dua pilihan tersebut.
Untuk tujuan kita dan seminar ini, Saya akan mengatakan bahwa, secara umum,
kebanyakan properti yang nonatomic dan mempertahankan.
Anda dapat membaca oleh Google mencari, Anda tahu, perbedaan antara
nonatomic dan mempertahankan, Anda tahu, Google atau sesuatu.
Dan aku akan membawa Anda ke, seperti, Stack Overflow, di mana orang akan memiliki
jawaban untuk perbedaan antara mereka.
Tapi untuk saat ini, itulah yang kita ingin peduli dengan.
>> Dan kami ingin membuat label UI, bintang, dan kita bisa menyebutnya apa pun yang kita inginkan.
Kita bisa menyebutnya, Anda tahu, label.
Dan, kita akan membuat yang lain satu untuk tombol.
Dan ingat untuk menyertakan tanda bintang, karena kita berhadapan dengan pointer
cukup banyak di mana-mana di dalam Objective-C.
>> Namun, itu tetap tidak akan memecahkan masalah, seperti yang Anda lihat di sini.
Dan alasannya adalah karena, setiap kali kita ingin menghubungkan label xib file atau
tombol untuk program, atau header dan file implementasi, kita ingin
tambahkan potongan kode ini -
stopkontak.
Perhatikan bahwa itu adalah kata kuncinya.
>> Dan, segera setelah saya selesai mengetik itu keluar, harus memiliki ini
dua lingkaran, di sini.
Biasanya, mereka tidak terisi
Saya tidak yakin mengapa mereka.
Tapi biasanya, Anda akan harus secara manual menghubungkan mereka dengan pergi ke sisi
daerah utilitas.
>> Jadi, sekarang, aku punya label saya dipilih, dan saya ingin menyeret baru ini
referensi outlet ke pemilik file saya, dan kemudian klik pada Label.
Jadi sekarang, akhirnya, label ini terhubung ke label ini.
Dan label ini adalah apa yang akan kita menggunakan pemrograman untuk mengubah nya
teks, font, latar belakang warna, dan sebagainya.
>> Jadi, kenapa tidak kita lakukan sama untuk tombol?
Dan seperti yang Anda akan melihat, untuk tombol, itu sedikit lebih rumit.
Karena, maksudku, Anda seharusnya pers pada tombol, sehingga punya banyak
pilihan untuk bagaimana pengguna dapat menekan tombol.
Dan kemudian, kita akan lihat nanti bahwa kita dapat menghubungkan hal ini kepada kami
kode untuk membuatnya bekerja.
>> Jadi, untuk saat ini meskipun, kita ingin terhubung ke tombol yang sebenarnya
dalam kode kita.
Jadi kami pergi ke outlet referensi baru, dan kemudian melakukan tombol.
Sekarang, mari kita jalankan ini lagi.
Uh oh.
OK.
Aku tidak tahu apa yang terjadi di sini sekarang.
Whoa.
Hanya satu saat, di sini.
>> Sebenarnya, mengapa kita tidak mengambil lihat contoh lain di
kepentingan waktu.
OK.
Jadi, inilah yang lebih mudah disiapkan contoh ViewController.
Seperti yang dapat Anda lihat di sini, saya mencantumkan properti untuk
label dan tombol.
Dan kemudian, potongan kode ini di sini -
IBAction ini -
adalah koneksi ke tombol ini di sini.
Jadi seperti yang Anda lihat di sini, Sentuh Inside terhubung ke pemilih
disebut Tombol Ditekan.
>> Jadi, kita benar-benar bisa pergi melalui gerak lagi, di sini, dengan mengambil Sentuh Up
Di dalam dan menyeretnya ke Pemilik file, dan kemudian
klik pada Tombol Ditekan.
Sekarang, mari kita menjalankan kode kita.
Jadi sekarang, tombol ini sekarang bekerja dan akan membawa kita ke halaman berikutnya.
>> Dan, dari segi tampilan controller kita, ini adalah bagian dari kode yang mengambil
peduli Tombol ditekan.
Dan penting untuk dicatat di sini, bahwa Saya telah membuat jenis lain dari pandangan
pengontrol disebut meja controller tampilan.
Jadi, ini mirip dengan kembali di storyboard, ketika saya menyeret salah satu
ini tampilan tabel pengendali ke dalam storyboard.
Aku menciptakan lain
>> Pointer ke tampilan tabel controller, alokasi dan init-ing, dan kemudian melakukan
diri dot navigasi controller, mendorong ViewController, ini baru
viewController.
Dan Aku telah menetapkan animasi untuk ya, karena sekarang dalam aplikasi saya, dan saya
ingin benar-benar melihat animasi akan dari halaman rumah ke meja
controller tampilan.
>> AUDIENCE: Apakah Anda masih khawatir tentang pengumpulan sampah?
>> RHED SHI: Apa itu?
Tidak.
Jadi, pertanyaannya adalah, apakah Anda memiliki untuk bekerja dengan pengumpulan sampah?
Jadi, Xcode 4 memiliki seperti ARC, yang menghitung referensi otomatis.
Dan, biasanya ketika Anda mulai baru proyek, Anda akan memeriksa itu, karena
tidak ada yang benar-benar ingin berurusan dengan membebaskan memori dan hal-hal.
Tapi saya pikir di Xcode 5, bahkan tidak ada bahwa opsi pada proyek baru.
Jadi, secara otomatis melakukan itu untuk Anda.
Ya?
>> AUDIENCE: Dapatkah Anda mengekspor PDF dalam storyboard Anda?
>> RHED SHI: Ya, pasti.
Jadi, semua ini akan dimasukkan dalam kode sumber, sehingga kalian dapat memeriksa
proyek Xcode sebenarnya untuk itu.
Ya?
>> AUDIENCE: Tapi, maksudku, seperti, bisa saya mencetak PDF dengan storyboard saya?
Jika saya hanya ingin mengekspor gambar untuk menunjukkan seseorang.
>> RHED SHI: Oh yeah.
Saya pikir, mungkin, Anda hanya dapat mengambil screen shot.
Ya, dan mengirim mereka layar tembakan atau sesuatu.
Ya.
>> Jadi, mari kita lihat.
Dalam kepentingan waktu, saya pikir itu semua aku bisa menutupi hari ini.
Tapi, aku tahu itu, sebenarnya, hanya hampir tidak menyentuh permukaan iOS
pembangunan.
Jadi, jangan ragu untuk menghubungi saya jika Anda memiliki pertanyaan tentang iOS
pembangunan.
Dan, mudah-mudahan, saya akan mampu membersihkan up beberapa kode sumbernya
file kode, sehingga Anda akan memiliki beberapa contoh benar-benar baik untuk bekerja dengan.
>> Selain itu, jika kalian akan ke CS50 Hackathon, saya mungkin atau mungkin
tidak berada di sana, dan saya dapat membantu dengan beberapa pengembangan iOS, juga.
Jadi, terima kasih banyak, guys.