>> DANIEL ARMENDARIZ: Hello, semua orang, selamat datang ke iOS pembangunan aplikasi
dengan pantas.
Saya Dan Armendariz.
Saya precepter komputer sains di sini di Sekolah
Kejuruteraan dan Sains Gunaan.
Dan pantas sebenarnya jenis daripada bahasa benar-benar kemas.
Dan saya mempunyai beberapa rancangan untuk hari ini.
Jadi lebih jam berikutnya atau jadi kita akan untuk melihat pembangunan aplikasi iOS sendiri
menggunakan Xcode dan benar-benar mewujudkan beberapa sangat asas, permohonan yang sangat mudah.
Dan meninjau cara yang anda sebenarnya membawa aplikasi tersebut,
dan membina mereka, dan benar-benar meletakkan mereka pada peranti iOS.
Antara perkara-perkara yang kita tidak akan melihat
akan termasuk perkara-perkara seperti sebenarnya mengambil permohonan
dan meletakkannya di kedai app.
Ada banyak tutorial dalam talian yang akan membantu anda dengan itu aspeknya.
Tetapi juga kerana sebagai sebahagian daripada CS50, anda akan mendapat
untuk menyertai pembangunan Apple pasukan, pasukan pembangunan aplikasi CS50 ini.
Jika anda belum lagi dilakukan bahawa dan anda bergabung dengan CS50,
Saya menyarankan anda berbuat demikian kerana yang
adalah bagaimana anda dapat mewujudkan beberapa program di Xcode,
membina mereka, dan benar-benar meletakkan mereka pada beberapa peranti iOS anda
jika anda benar-benar mempunyai peranti iOS fizikal.
Jika anda tidak mempunyai iOS fizikal alat yang lebih daripada denda.
Anda sebenarnya boleh membangunkan untuk iOS.
Dan Xcode mempunyai simulator yang membolehkan anda
untuk melihat aplikasi anda dalam tindakan pada komputer anda.
Tetapi ia jenis adalah satu perkara yang kemas untuk benar-benar bermain dan berinteraksi
dengan permohonan anda pada peranti sebenar.
Jadi ada beberapa keperluan untuk sebenarnya melakukan semua perkembangan ini.
Salah seorang daripada mereka ialah anda perlu mempunyai Mac.
Ia perlu berjalan 10.9.4 atau kemudian untuk melakukan pembangunan dengan pantas.
>> Anda boleh menggunakan yang lebih awal versi untuk membangunkan
dengan Objektif C untuk iOS dan Mac.
Tetapi saya cadangkan, dan banyak yang contoh-contoh yang kita akan lihat pada hari ini,
menggunakan 10.10 Yosemite.
Oleh itu, jika anda belum dinaik taraf, ia adalah satu alasan yang baik untuk berbuat demikian.
Sekarang Xcode 6.1 adalah versi terbaru persekitaran pembangunan bersepadu
bahawa Apple menyediakan secara percuma yang anda boleh memuat turun dari kedai app.
Dan saya mengesyorkan anda juga menjalankan versi terkini.
>> Jika anda berlaku untuk berjalan lebih awal versi, Xcode 5 dan ke bawah sahaja
hanya tidak menyokong pantas jua.
Dan versi beta enam, yang telah dikeluarkan sepanjang musim panas,
melakukan menyokong pantas, tetapi ada merupakan satu jumlah yang sangat besar
perubahan bahasa, cukup supaya kod yang anda
akan melihat dan bahawa anda mungkin mencari di internet
tidak akan benar-benar menyusun dengan betul dalam versi terdahulu Xcode.
Jadi sekali lagi, jika anda tidak lagi mempunyai akaun pemaju,
Saya cadangkan anda pergi ke developer.apple.com.
Daftarlah, membuat akaun pemaju, dan menyertai pasukan CS50 pembangunan aplikasi.
Yang akan menyediakan kepada anda peluang untuk menyusun aplikasi anda
dan meletakkan mereka pada peranti anda.
OK, jadi mari kita bermula.
Perkara pertama kita akan lakukan adalah
untuk benar-benar membuat yang sangat projek mudah di Xcode
yang akan membolehkan anda untuk membuat permohonan.
>> Jadi, jika anda tidak lagi mempunyai Xcode terbuka, pergi ke depan dan membukanya
dan mewujudkan satu projek baru.
Skrin percikan khas akan dibuka dan akan memberikan anda
beberapa pilihan mengenai apa yang sahaja yang anda mahu lakukan.
Hanya mengatakan bahawa anda ingin membuat projek baru, permohonan baru.
Tetingkap ini akan timbul, dengan andaian anda menggunakan Xcode 6.1.
Pada masa ini, dan untuk tempoh seminar ini,
kita akan menggunakan aplikasi paparan tunggal, hanya
jenis aplikasi asas untuk mendapatkan kaki anda basah.
Dan anda boleh cawangan keluar sendiri dari sana.
>> Klik Seterusnya pada ketika ini.
Sekarang di sini ada beberapa perkara yang yang anda mungkin mahu untuk masuk.
Nama produk adalah menamakan projek anda.
Dalam kes ini, saya hanya akan memanggilnya Seminar1
kerana ia adalah contoh pertama kami.
Nama organisasi, dalam kes ini adalah hanya nama saya.
Anda boleh sudah tentu mengubahnya untuk nama anda sendiri, atau untuk CS50.
Pertubuhan pengecam, jika anda berlaku untuk mempunyai laman web yang hanya mengambil
nama domain dalam berbalik, com.yourname.
dan kemudian nama produk akan muncul secara automatik
selepas itu sebagai pengecam berkas.
>> Jelas sekali bahasa yang kami akan menggunakan untuk hari ini adalah pantas.
Anda boleh, sudah tentu, menggunakan Objektif C untuk itu, tetapi hari ini akan menjadi pantas.
Dan kami akan untuk dapat berkata peranti universal, jadi
bahawa ia berfungsi pada kedua-dua iPad dan iPhone.
Dan kita akan meninggalkan teras data tidak terkawal untuk menjaga
projek yang agak mudah buat masa ini.
Jadi mari kita pergi ke depan dan klik Seterusnya.
Dan ia akan bertanya kepada saya di mana saya mahu menyimpannya.
Saya akan menyimpannya untuk desktop saya buat masa ini.
>> Baiklah, jadi sekarang ini adalah apa yang akan berlaku apabila anda Xcode sebenarnya terbuka.
Dan perhatikan bahawa Perkara pertama yang anda lihat
adalah tanda seru ini yang berkata tidak ada identiti menandatangani dijumpai.
Saya sengaja berbuat demikian pada komputer saya dan saya
berharap bahawa saya akan dapat benar-benar menetapkan ia,
kerana saya mahu anda untuk melihat bagaimana ini sebenarnya akan bekerja pada mesin anda sendiri.
>> Teruskan dan klik isu tetap.
Ia akan meminta anda jika anda mempunyai akaun pemaju epal yang sedia ada.
Ini adalah di mana menyertai CS50 pasukan pembangunan aplikasi
adalah penting supaya anda tidak hanya mempunyai akaun aplikasi,
tetapi anda juga mempunyai keupayaan untuk menandatangani aplikasi
dan meletakkan mereka pada peranti iOS anda.
Ini adalah klik elok isu menetapkan tidak perlu
jika anda hanya akan membina dan membangunkan negara,
sepenuhnya dalam simulator iOS.
>> Tetapi buat masa ini saya akan untuk membangun dan meletakkan mereka
pada iPad saya, yang akan menjadi dapat disiarkan juga.
Jadi saya mahu untuk benar-benar menambah ini.
Dan ia akan bertanya saya untuk ID epal saya.
Jadi ia akan menjadi ini.
Dan saya perlu memanggil saya kata laluan, yang berakhir di sini.
Jadi saya hanya memberikan satu kedua untuk mendapati bahawa, dan menyalin itu, dan tampal di sini.
>> Klik Tambah.
Ia akan bertanya kepada saya pasukan mana yang saya mahu untuk menyertai.
Saya akan lakukan sekolah kejuruteraan.
Klik Sertai.
Alamak, itu satu yang salah.
Mari kita buat satu ini.
Mudah-mudahan satu yang akan bekerja.
Salah satu yang masih tidak berfungsi.
Kami kehabisan yang baik di sini.
OK, ini harus bekerja.
Sekarang yang menutup.
Sekarang mari kita buat sekolah kejuruteraan, klik pilih.
>> Dan kini diharapkan selepas beberapa saat anda can-- OK,
Saya akan membatalkan dan permintaan.
Oh lelaki, ini akan tidak berfungsi.
OK, saya akan cuba yang lain.
Mari kita buat satu ini di sini.
Demo Live gagal saya.
Kami mungkin perlu kembali kepada hanya membina sepenuhnya di dalam negara,
tetapi adakah itu ok dalam kes ini.
>> Jadi di sini, selama ini sebenarnya kerja, apa yang kita akan lakukan adalah hanya
membuat sangat mudah Hello permohonan Dunia.
Jadi ini adalah Xcode.
Dan jika anda tidak pernah melihat lagi, ia boleh sedikit menakutkan pada mulanya.
Ada banyak anak tetingkap, ada banyak doodads dalam pelbagai bidang.
Tetapi menyedari bahawa ada benar-benar beberapa komponen utama
kepada persekitaran pembangunan ini.
Di sebelah kiri ini adalah semua fail-fail yang berkaitan dengan program anda
atau projek tertentu anda.
Kami akan mengklik sekitar atas sebahagian daripada mereka dan kami akan
menunjukkan yang paling yang penting dari masa ke masa.
Jauh ke kanan, kita mempunyai satu set ciri-ciri.
Dan semua sifat-sifat ini, terdapat pelbagai anak tetingkap untuk sifat-sifat.
Anak tetingkap akan berubah bergantung kepada konteks kandungan utama, yang
kebetulan di tengah-tengah.
Sekarang tengah sebenarnya boleh menunjukkan anda pelbagai perkara, contohnya
kod anda sendiri.
Atau anda sebenarnya mungkin have-- apabila anda klik pada papan cerita yang
adalah, dengan cara itu, hanya kerja yang perwakilan pengguna anda
antara muka untuk application-- anda maka sifat-sifat anak tetingkap
di sangat paling kanan sebenarnya akan berubah.
Sekarang ada beberapa lain perkara yang saya mahu menuding.
Anda boleh semacam meneroka sekitar dalam persekitaran pada anda sendiri.
Tetapi salah satu perkara yang yang amat berguna
adalah butang ini di sini, kanan atas tetingkap.
Ada butang ini bahawa kelihatan seperti di hujung
meninggalkan ia mempunyai perenggan yang diikuti oleh dua bulatan dan jenis
dua anak panah menunjuk dari satu sama lain.
Jika anda menukar antara editor standard, yang
adalah salah satu yang paling kiri, yang yang yang dipilih secara lalai,
dan kedua-dua bulatan yang bertindih antara satu sama lain, apa yang anda benar-benar mendapatkan
adalah pane dua.
>> Dan ini sebenarnya akan menjadi berguna untuk kita
apabila kita perlu mengaitkan perkara dalam UI untuk kod.
Dan kita akan bercakap lebih lanjut mengenai bahawa dalam seketika.
Tetapi menyedari bahawa jika anda mendapatkan lebih anak tetingkap seperti ini,
anda boleh memudahkan pandangan anda hanya sedikit dengan mengklik kembali
pada editor tunggal anda.
Setakat ini begitu baik.
Jadi, pada asasnya kita mempunyai kod pada kiri, sifat di sebelah kanan,
dan apa sahaja yang kami bekerja di sini di tengah-tengah.
>> Jadi di sini saya telah diklik pada papan cerita utama.
Dan papan cerita, sekali lagi, adalah satu cara di Xcode
bahawa anda benar-benar boleh membuat pengguna anda antara muka menggunakan hanya seret dan lepas
teknik.
Dan sebagainya untuk sangat kami Permohonan pertama ini
adalah tepat apa yang kita akan lakukan.
Kami akan turun ke bahagian kanan sangat jauh lebih rendah
skrin, yang mengandungi pelbagai elemen pengguna
bahawa anda boleh klik dan seret untuk mewujudkan antara muka pengguna anda.
>> Sekarang semua ini elemen dipanggil pandangan
kerana mereka membekalkan beberapa jenis pandangan.
Ada satu imej paparan, untuk Sebagai contoh, untuk benar-benar menunjukkan
imej pada antara muka pengguna.
Ada paparan jadual untuk sebenarnya menunjukkan meja.
Sebagainya dan sebagainya.
Ada pelbagai jenis pandangan yang boleh anda pilih di sini.
Jadi, buat masa ini kita akan untuk mencari label.
Anda hanya boleh menatal melalui semua senarai yang ada di sana.
Tetapi ada carian bar di bahagian paling bawah
yang menjadikan ia lebih mudah untuk mengenal pasti pandangan tertentu yang anda sebenarnya
mahu seret ke dalam antara muka pengguna anda.
>> Found label saya.
Saya akan tarik di sini, secara langsung ke permohonan sampel saya.
Di sana di tengah-tengah kelihatan baik.
Dan saya akan menaip "Hello World!"
Tekan Enter.
Sekarang saya mempunyai label.
Ia tidak kelihatan seperti itu berpusat agak betul.
Jadi saya boleh cuba untuk mengetengahkan ia.
Nasib baik ia menawarkan ini panduan untuk membuat perkara yang lebih mudah.
Saya akan cuba untuk menyusun ia.
Mudah-mudahan ia sebenarnya akan bekerja di sini.
Dan jika tidak, dalam hanya seketika ia akan sebenarnya muncul pada iPad saya.
Ia adalah di sini.
Terdapat ia.
>> OK, jadi itu sahaja.
Kami selesai.
Kami telah membuat sangat kami permohonan pertama.
Sekarang jelas ini tidak berbuat apa-apa.
Ia hanya label.
Tidak ada hubungan antara antara muka pengguna dan kod.
Jadi, jika kita benar-benar mahu untuk membuat sambungan ini,
jika kita benar-benar mahu mempunyai beberapa jenis komunikasi antara unsur-unsur
yang wujud pada skrin dan kod yang
membolehkan kita untuk mengawal unsur-unsur, maka
kita sebenarnya perlu melihat kod itu sendiri.
>> Jadi ini adalah apa yang dipanggil ViewController.swift.
Dan untuk, terutama untuk beberapa program pertama anda,
ini akan menjadi jenis yang Sebahagian besar kod yang anda enter--
akan menjadi dalam dokumen ini di sini.
Ada banyak perkara yang ada di sini setakat ini, bukan?
Ada import UI kit kelas, mengatasi, [? funk,?] semua ini pelbagai.
Dan ia tidak jelas apa yang ia adalah bahawa semua ini bermakna.
Jadi mari kita mengambil langkah ke belakang lagi dari Xcode untuk sedikit
dan melihat bahasa itu sendiri, pantas.
>> Jadi dengan pantas, ia adalah dalam reka bentuk dan pembangunan
di Apple selama lebih kurang empat tahun untuk pemahaman saya.
Dan ada beberapa ciri-ciri mengenainya yang benar-benar kemas.
Pertama sekali, ia disusun bahasa, hanya suka C.
Jadi, anda perlu pertama menyusun dan kemudian menjalankannya
sebelum anda boleh sebenarnya melaksanakan kod yang terhasil.
Tetapi ada, tidak seperti C, interaktif meminta bahawa anda benar-benar boleh menjalankan
dan taip arahan sewenang-wenangnya ke dalam.
Dan sangat banyak seperti konsol JavaScript, yang anda mungkin biasa dengan sekarang,
ia sebenarnya akan menilai mereka arahan dan menyediakan untuk anda output.
Dan mereka telah pun diambil yang ke peringkat seterusnya
dan mereka telah membuat sesuatu dipanggil taman permainan di Xcode
yang membolehkan anda untuk visual bekerja dengan kod.
Dan kita sebenarnya akan melihat beberapa contoh itu hanya sedikit.
Ia berdasarkan kepada C. C mendasari itu, kerana semua penyusun
mewujudkan kod daripada C dan mewujudkan kod objek daripadanya.
Tetapi ia benar-benar saham agak sedikit sintaks.
Ia akan kelihatan agak berbeza.
Akan ada beberapa persamaan.
Tetapi ada akan menjadi cukup beberapa perbezaan
berbanding, katakan, JavaScript atau PHP.
Dan kami akan menunjukkan ini dalam hanya seketika.
>> Sekarang salah satu perkara yang paling besar kira-kira pantas yang bagus
ialah, terutamanya berbanding kepada C, ia bertujuan untuk menjadi selamat.
Segala-galanya dalam ia bertujuan untuk akan sangat kuat ditaip.
Malah ia hampir menjengkelkan pada mulanya, apabila anda pertama
mula bekerja dengan pantas, betapa banyak ia menguatkuasakan jenis mana-mana.
Apa-apa yang adalah rentetan mempunyai kekal rentetan.
Ia amat sukar untuk menyusun daripada mualaf atau memaksa ia ke dalam bentuk lain.
>> Dan sekali lagi, kami akan menunjukkan contoh-contoh ini.
Tetapi akhirnya menyedari bahawa ini adalah bertujuan untuk melindungi anda,
dan oleh yang saya maksudkan anda kod anda, dari terhempas dalam beberapa cara dahsyat apabila
anda mempunyai beberapa jenis jenis berpadanan.
Dan sekali lagi, bekerja dengannya.
Kerana ia akan mengecewakan pada mulanya seperti yang anda cuba untuk memahami mengapa tepat
anda mendapat ini luar biasa kesilapan berurusan dengan jenis.
Tetapi ia akan menjadi berbaloi akhirnya.
>> Ia menangani automatik pengurusan memori,
sehingga tidak ada lagi yang anda perlu berurusan dengan perkara-perkara
seperti malloc dan bebas dan semua ini macam perkara.
Dan ia juga direka untuk Secara Umum.
Oleh itu, sambil kita boleh menggunakan Xcode untuk mewujudkan IOS aplikasi dan aplikasi Mac,
kita juga boleh hanya menggunakannya sebagai bahasa skrip.
Dan supaya kita boleh menggunakannya semacam daripada bukan PHP atau sebaliknya
daripada Python untuk benar-benar cepat dan menghuraikan proses
beberapa data yang kita ada pada komputer kami.
>> Ia mempunyai pelbagai jenis moden ciri-ciri, optionals, hal berubah-ubah,
generik, penutupan, dan banyak ini bahan yang anda mungkin atau mungkin tidak menyedari.
Dan ia hanya jenis yang kurang baik sebahagian daripada bahasa yang sesetengah
semacam futuristik, unsur-unsur moden yang terkandung dalam elemen ini
jadi yang tertanam dalam kehidupan yang saya benar-benar akan perlu mengajar anda CS50.5 sedikit.
>> Kami perlu belajar sedikit lebih mengenai beberapa ciri-ciri bagi
untuk benar-benar memahami apa yang berlaku pada dan supaya anda boleh melihat kod
dan tidak merasa benar-benar hilang.
Dan anda akan melihat apa yang saya maksudkan oleh yang hanya dalam satu minit.
OK, jadi let's-- cukup ini jenis barangan teori.
Mari kita sebenarnya melihat kami program pantas yang pertama.
Ia satu baris kod.
Line 14 di sini, ia kata cetak l n hello CS50.
>> Jadi ada beberapa perkara itu yang berbeza terhadap topik ini berbanding
kepada perkara-perkara yang anda mungkin digunakan untuk dari C, sebagai contoh.
Salah seorang daripada mereka adalah bahawa tidak ada intmain, tidak ada termasuk seksyen,
ada tiada bahan tambahan ini.
Termasuk, seperti standard I / O, seperti perpustakaan
yang benar-benar memberi ciri-ciri standard bahasa,
secara automatik dimasukkan sebagai sebahagian daripada perpustakaan standard pantas ini
dan yang diimport secara automatik.
Anda tidak perlu melakukan import yang secara manual.
>> Intmain tidak wujud kerana pintu masuk utama untuk kod
sebenarnya di bermula dari kod.
Jadi apa-apa kod yang anda mempunyai bermula dari awal
sebenarnya akan dilaksanakan pada permulaan.
Jadi ini amat memudahkan.
Perhatikan juga, bahawa tidak ada koma bertitik.
Tidak ada koma bertitik dalam bahasa ini.
Anda meletakkan kenyataan di barisan individu
dan kemudian baris seterusnya mewakili kenyataan yang lain.
Jika anda ingin meletakkan penyata mulitiple talian,
maka anda perlu memisahkan ia oleh koma bertitik.
Tetapi bagi sebahagian besar, untuk gaya yang baik, kami
tidak pernah akan melihat koma bertitik untuk tujuan penyata memisahkan
dalam pantas.
Jadi bagaimana ini sebenarnya berfungsi?
Baik sangat seperti C kita sebenarnya perlu menyusun ini.
Dan supaya kita boleh berbuat demikian dengan menggunakan c pantas dan kemudian 1.swift.
Dan kemudian selepas pasangan minit ini akan menyusun
dan kemudian saya boleh menjalankan satu item.
Dan daripada ia hanya akan berkata "Hello CS50."
Awesome, jadi kita pergi.
Ada program dunia hello pertama kami.
Mari kita beralih ke nombor dua.
>> Sekarang dalam this-- ini telah berubah sedikit, kerana sedangkan biasanya anda
do-- sebenarnya sentiasa yang anda perlu menyusun aplikasi pantas sebelum anda
sebenarnya menjalankan satu it-- ciri-ciri yang hebat
yang telah saya katakan sebelum ini bahawa pantas sebenarnya boleh digunakan dalam jenis
daripada mod pseudo-tafsiran, terdapat sebenarnya seperti jurubahasa.
Tetapi apa yang akan dilakukan adalah terdapat adalah, sebenarnya, aplikasi pantas
bahawa anda boleh menjalankan.
>> Sebagai contoh, jika anda hanya menaip pantas di sini, apa yang akan berlaku
adalah bahawa anda akan mendapat satu segera.
Dan anda boleh menaip pantas anda kod, mencetak hello, dan menjalankannya.
Dan ia benar-benar akan print-- dengan baik, ia tidak mencetak dalam kes ini
kerana ia dicetak untuk berpusat keluar, yang tidak dapat dilihat di sini.
Tetapi ia adalah benar-benar dapat berfungsi.
Dan sebagainya dalam kes ini, saya hanya akan menggunakan ini sebagai skrip.
Dan saya benar-benar boleh menjalankan kod ini di sana.
Jadi cara yang saya benar-benar menjalankan ia akan menjadi sedikit berbeza,
tetapi anda akan melihat bahawa dalam seketika.
Sekarang, dalam kes ini apa yang kita akan lakukan adalah untuk pertama menentukan pembolehubah.
Jadi ini adalah bagaimana kita menentukan pembolehubah dalam pantas,
adalah kita menggunakan kata kunci yang disewakan, diikuti dengan nama pembolehubah,
dan kemudian kami menyediakan beberapa Memulakan data secara pilihan.
Jadi kes ini kami mendefinisikan tetap yang dipanggil nama,
dan kita akan menggunakan bahawa dalam output talian kami cetak
di bahagian bawah sangat, hello nama.
>> Sekarang perhatikan bahawa daripada menggunakan% s, kita boleh mengambilkira nama ini
pembolehubah dalam / () dan dapat menyatukan dalam kandungan ini
tali ke dalam rentetan ini.
Sekarang tidak seperti C, rentetan adalah Jenis sebenar sebenar dalam pantas.
Dan supaya ia duduk bersama ints dan bersama
beregu dengan mudah dan secara semula jadi berbanding
kepada sebahagian daripada yang lain bahasa yang kita lihat.
Jadi ini akan benar-benar berfungsi seperti yang anda inginkan.
>> Saya dapat berjalan 2.swift.
Dan kita melihat bahawa nama saya sebenarnya disambungkan dalam, "Hello Dan."
OK, hebat.
Beralih kepada nombor tiga.
Kini ia adalah sedikit daripada dusta putih yang saya
berkata bahawa cara kita mengisytiharkan pembolehubah adalah untuk menggunakan kata kunci yang disewakan.
Seberapa banyak kali yang anda mungkin boleh anda lakukan mahu menggunakan biarkan, kerana apa yang tidak
adalah ia mentakrifkan pemalar.
Dan yang memberitahu pantas bahawa ia boleh mengoptimumkan kelajuan permohonan anda
kerana ia tahu bahawa yang pembolehubah tidak akan berubah.
>> Jadi berhati-hati menilai apabila anda akan menggunakan
pembolehubah bagi maksud mengubahnya.
Dan apabila anda pergi ke mencipta pembolehubah yang adil
memegang beberapa data dan yang sebenarnya tidak akan berubah.
Jadi konsep ketetapan, ia tidak benar-benar akan berubah,
adalah satu yang penting-penting sebagai jauh ke bawah sebagai mentakrifkan pembolehubah.
Jadi di sini kita telah ditakrifkan nama, biarkan nama, dan dalam hal ini
ia yang tetap, iaitu jenis tali, dan ia adalah sama dengan Dan.
>> Jadi manakala dalam terlebih dahulu versi, ia infers-- dan oleh "ia"
Maksud saya pantas swift-- Kesimpulannya di sini, jenis data
bahawa kita telah dimasukkan ke dalam pembolehubah.
Dalam kes ini, kita boleh menjadi jelas.
Oleh itu, marilah kemudian nama ini pembolehubah adalah nama, maka noktah bertindih.
Dan selepas koma kita menentukan jenis data.
Maka tidak lagi ia adalah nama int atau Nama tali atau sesuatu seperti itu.
Tetapi sebaliknya membiarkan label, kami menentukan sama ada atau tidak
itu tetap atau berubah-ubah, diikuti dengan nama,
diikuti dengan pilihan jenis.
>> Jadi dalam kes ini kami mendefinisikan Nama ini adalah rentetan.
Kami katakan adalah Dan.
Dan sekarang saya mempunyai pembolehubah yang lain, dalam kes ini ia dipanggil label.
Tetapi perhatikan bahawa bermula dengan kata kunci yang var.
Cara var kata kunci yang berubah-ubah ini boleh
ditukar pada titik kemudian dalam masa, tempat turun dalam kod
boleh kita sebenarnya mengubahnya dan ia tidak akan memberikan apa-apa kesilapan tertentu.
>> Kita boleh melakukan concatenating standard operator di sini menggunakan simbol campur
untuk benar-benar menambah kami menamakan ke dalam rentetan ini.
Dan kemudian kita boleh mencetak seperti yang kita lihat hanya sebentar tadi.
Sekarang mari kita mengatakan bahawa anda mahu mencipta pembolehubah
tetapi anda tidak mahu untuk memulakan lagi.
Anda tidak lagi mahu meletakkan apa-apa data di dalamnya.
Baik anda perlu memberitahu pantas apa jenis data
akan menjadi sebelum anda boleh sebenarnya menentukan dengan betul.
>> Jadi dalam kes ini, apabila kita telah ditakrifkan pembolehubah dipanggil gred kita perlu
yang jelas mengenai jenis, kerana ia tidak boleh membuat kesimpulan hanya mencari
pada data yang dimulakan yang anda berikan kepadanya.
Ia akan memberikan suatu kesilapan jika anda Jenis hanya var gred, misalnya,
kerana ia tidak mempunyai jenis itu.
Jadi gred = 100.
Supaya 100 adalah integer, ia sesuai sangat baik ke dalam itu.
Ia akan terus berfungsi.
Kita boleh lihat bagaimana kita boleh menyatukan ini.
Sekarang anda mungkin tergoda, jika anda benar-benar
mahu menyatukan yang gred ke dalam rentetan teks lain,
ke tali yang lain, yang anda akan hanya menggunakan pengendali concatenating sama.
Dan yang biasanya akan menjadi benar.
Tetapi pantas tidak akan membolehkan anda untuk tersirat menukar jenis data.
Jadi dalam kes ini, ini talian, 25, akan gagal
kerana gred adalah integer dan tidak rentetan.
Dan jadi ada sesuatu yang tidak kena set jenis.
Jadi, anda perlu jelas apabila anda mahu menukar data ini,
apabila anda mahu untuk memaksa ini data ke dalam jenis yang berbeza
dan berkata, OK, saya ingin mengambil gred ini, yang adalah integer,
dan menukarkannya kepada rentetan.
>> Jadi saya mengambil String modal s semua jenis, anda akan perasan, dipermodalkan,
Int, Double, String, sebagainya dan sebagainya.
Kesemua mereka dipermodalkan hanya untuk membuat perkara yang lebih mudah.
Dan kami akan berkata kesempatan Rentetan itu masuk ke dalam kelas.
Dan ia akan mewujudkan satu rentetan daripada integer itu.
Dan kemudian kita boleh menyatukan kedua-dua sangat baik.
Sebarang pertanyaan mengenai perkara ini setakat ini?
Baiklah, mari kita membajak melalui nombor empat.
>> Sekarang mari kita bercakap tentang beberapa lebih maju struktur, seperti tatasusunan dan gelung.
Dan tidak seperti C, tatasusunan dalam pantas tidak diwakili oleh petunjuk.
Petunjuk dalam pantas, walaupun wujud, yang dipanggil
seperti petunjuk yang tidak selamat atau beberapa jenis yang sama seperti ini,
mereka tidak terdedah kepada anda biasanya.
Jadi ia menjadi sangat sukar untuk anda untuk memanipulasi
memori secara langsung dari komputer anda.
>> Jadi tatasusunan hanya jenis data.
Dan mereka yang dirujuk menggunakan jenis ini kini standard notasi kurungan persegi
yang anda telah lihat sebelum ini.
Tetapi apabila anda benar-benar mahu menentukan jenis pembolehubah
sebagai pelbagai beberapa jenis tertentu, maka anda
meletakkan jenis yang dalam kurungan persegi.
Jadi apa yang saya cakapkan di sini ialah Saya mencipta pembolehubah yang dipanggil
gred jenis int pelbagai.
Dan saya menetapkan yang sama dengan beberapa data dimulakan, yang dalam kes ini
adalah 100, 0, 90, 85, yang hanya koleksi gred sewenang-wenangnya di sini.
Sekarang dalam kes ini saya boleh, ingat, keluarkan jenis,
dan ia akan dapat membuat kesimpulan ia berdasarkan data dimulakan.
Tetapi jika saya dikeluarkan dan ini Saya perlu untuk menetapkan kemudian,
maka saya perlu memastikan bahawa saya mempunyai jenis yang ada.
Baiklah, mari kita bergerak bersama-sama.
Oleh itu, kita can-- tatasusunan berikan kepada kami pelbagai
melalui kaedah yang tatatanda dot pada anda mungkin sekarang tahu.
Jadi grades.count, sebagai contoh, memberitahu kita dengan tepat jumlah
unsur-unsur yang yang terkandung dalam pelbagai ini.
>> Jika saya ingin menambah additional-- kini melihat bahawa ini adalah satu var
dan ini elok dijadikan pemboleh ubah dan tidak tetap, yang
bermakna bahawa saya boleh menukar kandungan array ini, saya boleh menambah objek kepadanya.
Tetapi saya tidak boleh hanya berkata gred dan kemudian dalam kurungan persegi
empat, kerana yang akan menjadi kesesatan batas dalam hal ini.
Jika saya mahu sebenarnya perubahan saiz array ini,
Saya perlu menggunakan kaedah dot append untuk menambah sesuatu ke akhir sangat itu.
Saya boleh, bagaimanapun, perubahan indeks individu.
>> Jadi saya boleh menggunakan gred dan kemudian kurungan persegi
sifar untuk memanipulasi indeks pertama ini dan sebagainya, seperti yang biasa anda inginkan.
Dan saya boleh melakukan perkara yang sama untuk benar-benar menerima data dari itu juga.
Sekarang terdapat juga jenis kaedah mewah untuk berbuat demikian, gred ditambah setaraf
dan kemudian indeks lain, yang akan append--
atau tidak lain index-- tetapi senarai yang lain
akan menambah senarai yang ke belakang gred.
Dan gred akan kemudian mengandungi semua itu.
Tetapi itu semacam satu perkara tambahan bahawa saya hanya menunjukkan anda untuk bersenang-senang.
>> Sekarang ada untuk gelung.
Dan ini adalah permulaan di mana perkara mula berubah sedikit.
Perhatikan bagaimana ini untuk gelung adalah berbeza dari untuk gelung dalam C.
Sekarang saya akan ambil perhatian bahawa untuk gelung dalam Swift boleh
dibuat untuk kelihatan seperti untuk gelung dalam C, tetapi ada banyak membina lebih berguna
yang pada dasarnya menghapuskan keperluan untuk mempunyai untuk var i sama dengan 0 koma bertitik i
adalah kurang daripada beberapa panjang, sebagainya dan sebagainya, bukan?
Dan membina ini adalah salah satu daripada mereka.
>> Bagi indeks, indeks adalah baru pembolehubah, dalam kes ini, di dalam julat.
Dan apa yang saya katakan ialah ada pelbagai dari 0 sepanjang jalan sehingga ke
tetapi tidak termasuk grades.count.
Jadi ini dot dot kurang daripada tanda mewakili
julat nilai bermula dari sifar semua jalan sehingga grades.count tolak 1.
Ada yang berasingan Pengendali yang wujud,
yang dot dot dot, yang akan bermakna saya mahu julat sifar
untuk mengira gred inklusif.
>> Tetapi dalam kes ini, kerana ini tatasusunan adalah indeks sifar, kita sudah tentu
tidak mahu pergi ke Bilangan maksimum gred.
Saya boleh jumlah gred, seperti yang anda mungkin mengharapkan, dan output semua barangan ini.
OK, beralih.
Sekarang mari kita bercakap tentang fungsi.
Untuk menentukan fungsi anda menggunakan kata kunci funk.
Dan sekali lagi, di Swift anda perlu berhati-hati dengan jenis.
Anda memberikan kepadanya parameter dengan menentukan, contohnya,
nama parameter dan maka dalam Colin, jenis data
bahawa anda menjangkakan bahawa parameter untuk menerima.
>> Jadi dalam kes ini kita mempunyai fungsi dipanggil kiraan cetak gred.
Ia menerima pembolehubah yang dipanggil gradebook, atau lebih tepat parameter yang dipanggil gradebook.
Dan kami menjangkakan bahawa gradebook menjadi pelbagai integer.
Jika gradebook yang kosong, kami akan mencetak satu perkara.
Jika tidak, kita akan mencetak jumlah gred ini sebenarnya mempunyai.
>> Sekarang jika kita mahu kembali beberapa nilai, maka cara
bahawa kita mengubah definisi ini adalah untuk benar-benar menggunakan anak panah ini kata kunci,
atau untuk menggunakan ini arrow penanda.
Jadi di sini kita akan menentukan fungsi yang dipanggil purata.
Kami akan menerima senarai nombor.
Dan kami akan mengembalikan dua kali, yang akan diharapkan
menjadi purata array ini.
Dan untuk berbuat demikian, untuk untuk benar-benar mengira purata ini,
kami akan mengambil sejumlah wang dan kita kehendak kursus kesimpulan semua tujuan yang
dalam pelbagai ini.
>> Perhatikan bahawa ada yang baru gaya untuk gelung di sini.
Kami tidak mempunyai untuk menjadi jelas mengenai iterating atas setiap elemen tunggal,
tetapi kita bukannya boleh mengatakan gred dan gradebook, makna
bahawa bagi setiap satu barang yang kita ada dalam ini,
menyediakan item yang dalam ini ubah dikenali sebagai gred.
Dan saya mahu melakukan sesuatu dengan ia.
Jadi saya akan meringkaskan semua data ini dan benar-benar kembali bahagian dua.
>> Sekarang perhatikan sekali lagi di sini ada yang konsep pembahagian integer dalam Swift.
Jika anda ingin menggandakan bahagian kerana anda mahu perpuluhan,
maka anda perlu menjadi jelas, tidak hanya kira-kira satu sisi,
kerana ia tidak akan membenarkan anda untuk memaksa data sama ada di sebelah ini,
anda mempunyai untuk benar-benar kursus kedua-dua pihak ke beregu
supaya anda sangat jelas tentang memastikan
yang anda lakukan bahagian dua.
>> Mari kita bergerak.
Jadi jika saya benar-benar ingin accept-- jadi dalam contoh ini tertentu,
ini masih arahan aplikasi berasaskan talian.
Dan kami mula melihat beberapa batasan bahasa muda
dalam bahawa walaupun kita boleh mengakses hujah-hujah dengan menggunakan
process.arguments ini, ia masih tidak semestinya yang paling bersih
perkara yang kita pernah lihat.
Tetapi pada dasarnya saya menggalakkan anda untuk jenis melihat kod ini
dan cuba untuk memikirkan apa sebenarnya yang sedang berlaku.
>> Pada dasarnya apa yang berlaku ialah kami mengambil senarai hujah
dan telah memaksa mereka ke dalam integer, dan kemudian kami
akan menggunakannya sebagai satu cara untuk mencetak daripada purata semua gred kami.
Beralih.
Sekarang ada satu lagi jenis data-- data lain menaip daripada tatasusunan
dipanggil kamus, yang amat sama dengan hash jadual atau peta hash
dan sama juga untuk Tatasusunan PHP bersekutu itu.
Jadi mereka mempunyai tanggapan kunci dan nilai-nilai.
>> Dan mereka juga ditakrifkan dengan ini notasi kurungan persegi,
tetapi perbezaannya adalah yang mempunyai kamus
di dalam kurungan persegi dengan noktah bertindih.
Dan kolon memisahkan data menaip yang merupakan kunci dan nilai.
Jadi dalam kes ini, saya akan membuat kamus untuk menerima beberapa gred.
Dan ia akan menjadi jenis tali: int,
yang bermaksud bahawa semua kunci akan menjadi tali,
dan semua nilai-nilai mereka kunci akan menjadi integer.
>> Adakah ini bermakna bahawa saya boleh maka rujukan data yang tertentu
yang saya mahu menggunakan orang-orang bukan kunci daripada menggunakan indeks angka seperti saya
akan mempunyai untuk pelbagai standard.
Sekarang mari kita lihat, ada satu perkara penting
saya juga ingin menyebut tentang urutan ini tertentu kod.
Dan itulah yang ada satu lagi jenis data,
atau sebaliknya ada ini idea data yang
yang terkandung dalam Swift dipanggil optionals.
>> Dan apa optionals bermakna bahawa ia mengakui hakikat
yang kadang-kadang anda tidak akan mendapatkan data yang sebenarnya yang anda harapkan.
Dan jadi apa yang saya maksudkan dengan itu is-- mari kita kita lihat pada urutan ini kod
lelaran yang lebih semua hujah-hujah yang telah diluluskan untuk kod ini
dan cuba untuk menukar mereka, cuba untuk berpecah kepada pelbagai rentetan,
kerana ia menerima yang sangat jenis tertentu hujah.
Dan kemudian ia akan cuba untuk memaksa tali yang mewakili nombor
kepada integer yang gred, yang saya boleh mengira.
>> Jadi, pada asasnya saya akan menggunakan fungsi ini perpecahan yang
wujud dalam Perpustakaan standard Swift.
Saya akan masuk ke dalam ia yang rentetan yang saya mahu berpecah.
Dan kemudian dalam menggunakan ini semacam sintaks funky, yang
Saya tidak tahu jika kita akan dapat, tetapi mungkin, kita
sebenarnya akan menentukan tepat watak yang kita mahu berpecah di.
Jadi apakah ini benar-benar kelihatan seperti?
Mari kita lihat pada sebenarnya berjalan kod ini.
>> Sebagai contoh, katakan saya mempunyai kuiz dan saya mendapat 50 pada itu.
Dan saya mempunyai PSETs dan Saya mendapat seratus pada itu.
Dan saya got-- terdapat satu lagi kuiz dan saya mendapat 40 pada itu.
Saya tekan Enter, dan akhirnya apa yang yang akan berlaku ialah apa yang ia lakukan
mengambil parameter ini, membelah tali di titik dua ini,
mengiktiraf bahawa ada dua elemen dalam setiap satu,
dan ia pada asasnya menjejaki setiap.
>> Jadi saya mempunyai di dalam kamus saya kuiz, yang nilai diwakili dengan jumlah 50,
Saya mempunyai Serangga yang mempunyai nilai 100, dan satu kuiz yang mempunyai nilai 40.
Maka kemudian dalam kod yang saya sebenarnya purata semua nilai-nilai
dan senaraikan semua kunci bahawa kamus tertentu.
Tetapi ini adalah penting supaya anda boleh melihat
apa yang sedang berlaku, adalah bahawa apa yang kita mahu lakukan adalah untuk mengambil tali ini
dan ia berpecah pada watak ini, yang boleh kita lakukan lagi dengan perpecahan ini
fungsi menggunakan seperti ini sintaks menarik yang wujud di sini.
>> Hanya untuk sekarang menganggap bahawa tidak apa-apa.
Kami akan kelihatan lebih di ini hanya dalam masa yang sedikit.
Tetapi sekarang ada yang menarik aspek yang kita sebenarnya
ingin mencuba untuk menukar ini tali ke dalam integer.
Tetapi dalam bahasa lain apa yang mungkin berlaku adalah
bahawa kita mungkin akan cuba untuk melakukannya dan sama ada kembali
semacam sentinel nilai negatif seperti
atau mungkin batal atau sesuatu seperti itu.
Atau mungkin ia hanya akan menyebabkan ralat.
Dan kita perlu kemudian menangkap kesilapan yang
dan kemudian cuba untuk melakukan sesuatu yang berdasarkan fakta
bahawa penukaran ini kepada integer gagal.
Itulah di mana idea ini daripada optionals datang dalam.
Anda sebenarnya boleh membuat jenis data yang adalah soalan tanda int, sebagai contoh.
Ini bermakna bahawa integer ini adalah, sebenarnya, pilihan.
Dan apa yang akan berlaku ialah ia boleh mengandungi integer, atau mungkin tidak.
Ia boleh, sebenarnya, ini lain idea, sekali dipanggil nill.
Di mana itu bererti bahawa ada tidak mempunyai nilai apa-apa jua dalam ini.
Ia bukan sifar, ada hanya tiada nilai.
Sama sekali tidak ada nilai diwakili.
>> Dan itulah yang baris ini 71 melakukan.
Ialah ia mengatakan saya yang mahu cuba untuk menetapkan nilai,
pembolehubah yang dipanggil gred, sama dengan penukaran tali ini ke dalam int.
Jadi saya telah mengambil tali ini, ini komponen pertama,
atau bukan yang kedua komponen, kerana ini
adalah sifar diindeks, ini rentetan yang saya telah berpecah.
Dan saya mahu untuk menukar yang kepada integer.
Tetapi ia mungkin tidak sentiasa meneruskan biasanya, kerana bayangkan
apa yang akan berlaku jika, bukannya jenis nombor, saya menaip kursus seperti Lelaman.
>> Ia akan gagal.
Ia tidak benar-benar akan menjadi dapat untuk menukar bahawa untuk integer
seperti yang saya inginkan.
Jadi, daripada memulakan beberapa jenis ralat,
kita mempunyai idea ini sesuatu pilihan.
Dan ini bermakna yang menggunakan tanda tanya ini boleh saya katakan,
OK, adakah mungkin bahawa saya boleh mengambil ini, ditukar ke dalam int,
dan memasukkannya ke dalam pemboleh ubah, yang juga akan menjadi int.
Jika ya, maka yang cara bahawa ini adalah berjaya
dan bahagian ini pertama blok boleh terus.
>> Jika tidak, ia gagal.
Tidak ada nilai dalam grade-- atau bahawa tidak terdapat nilai dalam yang sedia ada,
dan saya benar-benar perlu cuba mengendalikan Keadaan ralat ini.
Anda akan melihat ini tanda soalan sepanjang masa
dalam Swift dan dalam contoh kod untuk Swift.
Dan sebenarnya pengendali nill, seperti ini daripada tanda tanya, sebahagian optionals itu,
akan menjadi mungkin salah satu perkara yang lebih sukar
untuk jenis balut kepala anda sekitar seperti yang anda benar-benar bekerja dengannya.
>> Ia mungkin masuk akal sekarang.
Dan sebenarnya, ketika saya menulis kod sampel untuk ini,
pasti saya memahami apa yang berlaku,
tetapi masih ditangkap saya oleh kejutan sering sekali
apabila saya mendapati bahawa beberapa data sebenarnya
versi sifar, versi pilihan data yang saya telah menjangkakan.
Jadi hanya menyedari bahawa jika anda mempunyai versi pilihan
anda perlu buka bungkusan yang data dari kotak ini.
>> Jadi ia adalah jenis seperti I-- bayangkan jika anda mempunyai kotak dan ia mengandungi sesuatu.
Dan apa yang perlu anda lakukan adalah untuk bertanya soalan,
adakah mungkin bahawa kotak ini sebenarnya mengandungi data yang saya cari?
Jika ya, maka tarik keluar bahawa data dan memasukkannya ke dalam pembolehubah ini yang sedia ada.
Jika tidak, maka saya hanya perlu tidak mengambil kira kandungan kotak ini
sama sekali kerana ia literal mengandungi apa-apa.
>> Sebarang pertanyaan mengenai perkara ini?
OK, mari kita beralih daripada ini perkara seperti baris arahan berasaskan
dan mula mencari di dengan teknologi
yang Xcode menyediakan kepada kami dalam bentuk taman permainan.
Jadi ada banyak keupayaan sini dengan Swift.
Dan jika anda membuka Xcode dan ia meminta anda apa yang anda mahu lakukan,
anda boleh membuka taman permainan dan hanya bermain-main
dengan banyak struktur yang berbeza dan aspek bahasa
sebelum anda mula menyentuh SDK iOS atau Mac SDK.
>> Jadi kes ini, mari kita mengatakan bahawa saya have-- Saya mempunyai contoh yang agak dibuat-buat
di sini, tetapi menanggung dengan saya seperti yang kita semacam daripada bekerja melalui contoh ini.
Mari kita mengatakan bahawa kita perlu melakukan banyak eksponen dengan nilai yang tetap,
seperti yang kita tahu bahawa kita akan perlu melakukan banyak kuasa persegi, sebagai contoh.
Jadi, kita akan mengambil beberapa nilai x, kita akan untuk persegi itu,
kita akan mengambil beberapa nilai y dan kita akan untuk persegi itu.
Sebagainya dan sebagainya.
>> Sekarang kita mungkin sebenarnya hanya mewujudkan kuasa 2 untuk fungsi ini, bukan?
Oleh itu, kita akan mewujudkan kuasa 2 fungsi.
Kami akan menerima dua.
Kami akan output-- atau kami akan kembali jenis double.
Kami akan mengambil keputusan ini dan kemudian untuk dua kali
apa yang kita benar-benar mengambil keputusan, yang telah yang dimulakan dengan nilai satu,
dan kalikan dengan x.
Jadi pada dasarnya kita mempunyai x masa x di sini.
>> Dan sebagainya maka saya boleh kemudian, seperti yang kita mungkin menjangka, mengambil ini, kuasa menjalankan 2,
memberikan kepadanya beberapa data, saya suka 2.0.
Dan kita dapat melihat keputusan di sini 4.0.
Kuasa 2 berjalan pada 3.2 dan kami dapat melihat hasil kami, 10.24.
Setakat ini begitu baik, bukan?
Sekarang kita terfikir, baik, OK.
Sekarang saya benar-benar perlu melakukan banyak kuasa 3.
Jadi saya akan tulis semua kod ini, menukar nama fungsi dari
kuasa 2 untuk kuasa 3, dan segala-galanya akan sama kecuali untuk nilai ini
di sini, julat ini, 1 ... 2.
>> Jadi, daripada mengulangi gelung ini dua kali,
Saya mahu mengulangi gelung ini tiga kali.
Jadi saya hanya menukar nilai yang dari 1 untuk 3-- atau sebaliknya 2-3.
Jadi sekali lagi, kod yang sama, itulah satu-satunya perubahan.
Sekarang ini juga bekerja.
Kuasa 3 disediakan dalam beberapa nilai 2.
Kami mendapat 8.
Jadi 2 cubed.
Dan 3.2 cubed adalah 32,768.
Dan setakat ini begitu baik, bukan?
Tetapi mudah-mudahan ini adalah sedikit sedikit bendera merah untuk anda
dalam bahawa kita kini mempunyai beberapa pertindihan kod
kecuali untuk beberapa sangat kecil berubah dari satu ke yang berikutnya.
Jadi ada beberapa cara yang kita mungkin dapat memudahkan
masalah ini, di mana kita boleh sebenarnya, pada masa jangka, memikirkan beberapa,
berikan kepada kami beberapa fungsi yang mempunyai tepat kuasa yang kita mahu.
>> Dan ada idea ini penutupan, yang benar-benar, benar-benar
penting dalam konteks Swift, dan dalam pelbagai bahasa yang lain.
Tetapi mungkin anda akan melihat ia digunakan lebih-lebih lagi dalam Swift
kerana ia tertanam dalam bahasa
daripada anda akan di lain juga bahasa-bahasa moden.
Jadi idea penutupan yang adalah ini, ialah kita
boleh mempunyai satu fungsi yang bertujuan untuk menjadi fungsi generik, kuasa generik
fungsi.
>> Dan fungsi ini akan menerima eksponen ini bahawa kita sebenarnya
ingin membuat.
Jadi, sebagai contoh, yang pertama Contohnya, kita mahukan kuasa 2.
Oleh itu, kita akan memberi kuasa dan kemudian dalam kurungan 2.
Dan kini melihat apa yang ini sebenarnya kembali.
Ini mengambil input daripada buku asas yang dipanggil y iaitu integer,
dan ia mengembalikan ini gila cari perkara dalam kurungan parentheses--
dua kali dan kemudian arrow dua.
>> Adakah ini bermakna bahawa saya akan kembali fungsi.
Saya tidak kembali satu lagi jenis data, saya
sebenarnya kembali fungsi yang mempunyai parameter ini, yang
menerima dua sebagai input dan output yang berganda sebagai nilai pulangan.
Dan hasilnya, kerana sekarang saya telah dipanggil kuasa, lulus dalam beberapa nilai untuk y,
dan saya membuat ini lain notis function-- yang ada
lain fungsi yang yang sedang dicipta bahagian dalam this-- apa yang saya lakukan
yang saya boleh menukar nilai itu, salah satu yang
nilai yang saya telah berubah 2-3, saya kini menjadikannya y.
>> Dan ini berterusan.
Jadi setiap kali aku menyeru kuasa daripada, pada dasarnya apa yang berlaku
adalah bahawa saya akan kembali fungsi.
Perhatikan di sini saya telah ditakrifkan pembolehubah baru yang dipanggil persegi.
Saya telah menetapkan ia sama dengan kuasa, dengan syarat nilai 2 untuk kuasa.
Dan apa ini kembali adalah fungsi.
Jadi persegi, pembolehubah persegi, kini fungsi jenis
yang mempunyai this-- oops, tatal ke atas yang sedikit bit-- yang mempunyai tandatangan ini,
menerima dua dan output double.
>> Jadi sekarang apa yang saya lakukan adalah saya telah pada dasarnya
mencipta persegi fungsi yang dipanggil menerima apa-apa nilai dan akan persegi itu.
Kita boleh lihat apa yang berlaku ke bawah di sini.
Square 3 contohnya, bermakna saya akan mengambil nilai 3 dan kuasa dua itu.
Jadi bagaimana sebenarnya ini berfungsi?
Apabila saya lulus kuasa 2-- apabila saya lulus 2 ke dalam kuasa ini fungsi,
pembolehubah ini y adalah penduduk dengan nilai yang 2.
Dan yang semacam diadakan dalam ingatan.
Itu jenis suka diadakan di negeri di suatu tempat di dalam komputer,
kita tidak benar-benar peduli bagaimana atau di mana pada ketika ini.
>> Tetapi saya kembali fungsi ini dipanggil exponentiate.
Dan sekali lagi, ia tidak benar-benar perkara apa fungsi ini dipanggil,
kita benar-benar boleh memanggilnya apa-apa, yang menerima dua dan mengembalikan dua kali,
tetapi menggunakan nilai ini y di dalamnya.
Jadi, walaupun ia adalah fungsi ini, fungsi exponentiater ini itulah
telah dikembalikan semula kepada saya pembolehubah yang saya dipanggil persegi,
ia terkandung di dalamnya Tanggapan ini adalah apa y.
Dan ingat bahawa.
>> Jadi setiap kali saya memanggil fungsi yang yang kini dikenali sebagai persegi, ia menggunakan itu.
Tetapi ini juga bermakna bahawa saya boleh mencipta pembolehubah yang lain dengan menggunakan
kuasa yang berbeza.
Jadi saya boleh membuat ubah kiub, untuk Contohnya, memberikan kepadanya kuasa 3.
Sekarang kiub sebenarnya akan mengambil nilai dan kiub itu dan mengembalikannya.
Oleh itu, kita dapat melihat bahawa saya mendapat nilai 8 daripada itu.
>> Tetapi itu nilai y tidak mempunyai berubah kerana mereka
diadakan dalam bentuk pembolehubah bebas.
Mereka semacam diadakan di ruang bebas dalam ingatan.
Jadi kiub akan sentiasa mempunyai x kepada kuasa 3.
Dan persegi akan sentiasa mempunyai x kepada kuasa 2, yang
ertinya persegi yang akan sentiasa nombor persegi, seperti yang saya harapkan.
Dan kiub akan sentiasa cubed nombor, seperti yang saya harapkan.
Ini juga bermakna bahawa kadang-kadang anda boleh mendapatkan semacam sintaks jumpa
di mana anda mempunyai kuasa sekurang- bawah skrin sini, kuasa 5.
Dan anda masuk ke dalam keputusan.
Anda memanggil fungsi itu telah dikembalikan dengan jumlah 4.
Dan jadi apa dasarnya ini 4 hingga kuasa kelima,
kita boleh melihat hasil di sana.
Dengan saya setakat ini?
>> Jadi idea ini dipanggil penutupan satu, kerana apa yang kita lakukan pada dasarnya
adalah kami yang merangkumi beberapa jenis data into--
daripada melampirkan data ini ke dalam satu majlis dan kami
dapat menggunakan semula fungsi ini.
Sekarang sintaks ini walaupun boleh sebenarnya dipermudahkan jumlah yang besar.
Dan ada banyak kemungkinan dalam Swift untuk memudahkan ini.
Dan itulah yang semacam itu yang berikutnya sebenarnya melihat.
Jadi dalam 7b sebagai contoh, kita mengambil kod ini sama.
>> Tetapi sekarang dan bukan sebenarnya menentukan fungsi
dalam kuasa ini berfungsi dan memberikan nama,
dan kemudian kembali nama fungsi berkenaan, yang
kemudian digunakan sebagai sebahagian daripada penutupan ini, bukan kami
hanya akan memudahkan ia.
Kita tidak memerlukan fungsi ini untuk dinamakan.
Jadi ini adalah konsep yang fungsi tanpa nama di mana kita boleh kemudian
menerima sebagai input, dalam kurungan di sini, x pembolehubah yang jenis double.
>> Kami akan kembali dua jenis.
Dan kemudian kata kunci, n, adalah permulaan fungsi ini.
Jadi melihat bahawa semua ini adalah dalam kurungan kerinting
dan kami mendefinisikan sebuah tanpa nama berfungsi di sini.
Hanya cara yang lebih mudah daripada menentukan perkara yang sama.
OK?
Tetapi berpegang, Swift sebenarnya membolehkan kita untuk pergi lebih jauh dan memudahkan yang lebih,
kerana benar-benar kita tidak peduli bahawa parameter ini adalah
bernama apa-apa benda tertentu.
Ia benar-benar boleh dipanggil apa-apa dan kita masih boleh menggunakan parameter yang pertama.
>> Jadi sebenarnya ada ini khas jenis data dalam fungsi tanpa nama,
ada nama ini khas pembolehubah dalam fungsi tanpa nama
yang permulaan dengan tanda dolar dan mewakili
nombor parameter, sifar diindeks, untuk fungsi ini.
Jadi ada beberapa perkara yang berlaku.
Di sini saya akan kembali, dan kemudian pendakap kerinting mewakili fungsi,
hak?
>> Notis bahawa saya tidak telah ditakrifkan jenis parameter atau jenis pulangan.
Ia benar-benar dapat disimpulkan kerana tandatangan
fungsi asal ini.
Oleh itu, kita boleh menghapuskan bahawa sebagai satu kemungkinan.
Tetapi juga saya boleh menggunakan tanda dolar sifar untuk mewakili parameter pertama ini itulah
diluluskan ke dalam fungsi tanpa nama ini.
Jadi memudahkan bahkan lebih.
OK?
Setakat ini, begitu baik?
>> Sekarang ia type-- ini adakah anda ingat ini tanda sifar dolar
yang kita lihat dalam pendakap kerinting ini yang kita lihat sebentar sahaja
lalu di enam contoh Swift ini?
Ia adalah di sini.
Perhatikan betul-betul apa yang kita cari pada,
adalah bahawa kita telah berlalu ke dalam fungsi perpecahan ini
fungsi tanpa nama yang memeriksa parameter pertama
untuk melihat jika ia sama dengan simbol kolon.
Dan itulah apa yang berlaku, adalah bahawa semua
kami doing-- pulangan kata kunci yang tersirat
dalam case-- ini kita kembali nilai ini di mana kita membandingkan
parameter pertama terhadap ini kolon watak.
Dan supaya semacam merungkai ini.
Dan anda akan melihat konstruk ini banyak dalam sintaks Swift, begitu juga yang menyimpan
dalam fikiran apabila anda mengambil lihat ini.
Sekarang kita boleh turun rel sedikit
dan pergi benar-benar mewah yang menunjukkan walaupun lebih banyak kuasa Swift ini.
Anda mungkin melihat beberapa ini dalam Kod sampel.
Jadi itulah sebabnya saya akan menunjukkan ini kepada anda.
>> Pada asasnya apa yang kita boleh lakukan ialah, pertama sekali, ia adalah jenis yang sia-sia untuk saya
untuk melaksanakan semua itu kuasa kod kerana jika anda mengimport Darwin
perpustakaan, ia sebenarnya termasuk fungsi dipanggil pow yang melakukan ini untuk anda.
Oleh itu, kita boleh memudahkan ia lebih dan mempunyai fungsi kuasa sehingga kami kini hanya
menjadi indah satu liner di mana kita hanya kembali fungsi tanpa nama ini yang
menerima tanda dolar 0 dalam jawatan asas dan y sebagai eksponen yang.
>> Tetapi kita boleh mendapatkan benar-benar, benar-benar mewah apabila kita
menyedari bahawa Swift mempunyai banyak kuasa di bawah hood.
Banyak pengusaha yang kami telah berurusan dengan,
ditambah dengan tanda-tanda dan simbol-simbol dan bahagian semua yang anda biasanya
beroperasi dengan dengan jenis data dalam bahasa pengaturcaraan,
sebenarnya boleh perluas dalam Swift.
Jadi apa yang bermakna dalam kita yang boleh menentukan pengendali kami sendiri.
>> Jadi sekarang saya sudah serik dengan menaip dalam semua ini pow dan kemudian kurungan dan kemudian
asas.
Saya tidak mahu berbuat demikian.
Saya benar-benar ingin mempunyai Pengendali yang membolehkan saya untuk melakukan itu.
Jadi saya boleh memberitahu Swift yang saya mahu untuk mewujudkan pengendali, bintang
star-- dengan cara itu saya tidak boleh menggunakan karat kerana karat adalah pengendali yang
melakukan sesuatu yang lain sama sekali.
Jadi, saya tidak mahu untuk menyusun daripada berlanggar dengan itu.
Dan jadi apa yang anda lihat dalam pelbagai bahasa, termasuk Python,
adalah seperti pengendali bintang bintang untuk mewakili atlet.
>> Jadi itulah satu-satunya sebab mengapa saya lakukan itu.
Dan ia akan menjadi pengendali Jenis memasang di antara.
Dan saya perlu menyediakan kepadanya beberapa maklumat
tentang keutamaan ini Pengendali jadi ia bersekutu kiri.
Ia seperti agak keutamaan yang tinggi berbanding
kepada penjumlahan atau pendaraban.
Ia adalah keutamaan yang lebih tinggi daripada semua orang-orang.
Sebagainya dan sebagainya.
Dan kemudian saya menentukan fungsi yang benar-benar
menentukan apa yang pengendali ini tidak.
Jadi dengan andaian bahawa saya mempunyai satu kiri sebelah tangan dan sebelah tangan kanan,
yang mungkin akan menjadi satu nama pembolehubah yang lebih baik untuk ini.
Sebelah kiri dan sebelah kanan.
Saya kemudian boleh mengambil kuasa ini daripada sebelah kiri ke sebelah kanan
dan kembali nilai itu.
Jadi kini ia super manis.
Apa yang perlu kita lakukan ialah 2 bintang bintang 3 dan bahawa adalah 2 hingga kuasa ketiga,
dan kita akan mendapat nilai 8.
2 bintang bintang 10 adalah 2 kepada Kuasa ke-10, kita akan mendapat 1,024.
>> Jadi sekarang kita kuasa fungsi, yang sekali lagi adalah berbeza,
kerana idea di sebalik ini adalah bahawa kita mempunyai satu fungsi yang
sentiasa mengambil sedikit nilai dan menggandakan it-- atau sebaliknya
mengambil eksponen kepada kuasa yang sama.
Oleh sebab itu ia lebih mudah.
Oleh sebab itu ia hanya dolar menandatangani 0 bintang bintang y.
Kita tidak perlu menggunakan pow lagi.
>> OK, siapa yang hilang?
Adakah kita melakukan OK?
Sebarang pertanyaan mengenai perkara ini?
Yeah?
>> PENONTON: Apabila you-- [didengar] kuasa funk y berganda.
Oleh itu, apabila anda kembali fungsi.
DANIEL ARMENDARIZ: Kuasa Funk y berganda.
Oh yeah, saya tidak tahu apa nombor y adalah.
Harap maaf.
>> PENONTON: Mengapa kamu kembali fungsi [didengar] kepungan.
Bukankah dolar bintang sifar bintang y [didengar]
mendapati bahawa pengendali dengan yang kembali dua [didengar] dua kali ganda?
>> DANIEL ARMENDARIZ: Oleh itu, marilah saya menjawab soalan anda
bagaimana saya memahaminya dan anda boleh beritahu saya jika saya tidak memahami soalan anda.
Jadi konstruk ini, pendakap kerinting tanda dolar bintang sifar bintang y,
adalah fungsi.
Dan ia menerima satu parameter yang ini diwakili oleh tanda dolar sifar.
Kata kunci pulangan yang tersirat dalam ini sangat pendek, fungsi sintaksis tanpa nama.
>> Yang bermaksud bahawa pada dasarnya apa ini mengatakan
adalah bahawa saya mentakrifkan function-- dan kemudian saya akan
hanya memanggilnya something-- di mana saya mempunyai beberapa nilai y.
Saya mempunyai y, yang dua kali.
Dan saya kembali dua.
Dan saya mempunyai tempoh pulangan yang y-- maaf, Saya tidak sepatutnya memanggil x y-- ini.
Oh sayang, oh sayang, oh sayang.
X-- nope-- bintang bintang y.
>> Jadi ini adalah hanya versi mudah ini.
Dan sebagainya sebab yang saya ada dolar tanda sifar ialah menggunakan kepungan ini
bermakna bahawa saya tidak lagi perlu menaip pow, atau tidak lagi berbuat
Saya perlu melakukan sesuatu seperti bintang 3 bintang 2.
Saya hanya boleh mempunyai satu fungsi dipanggil persegi
yang akan sentiasa mengambil beberapa nilai sebagai input
dan benar-benar kembali kuasa dua itu.
>> Jadi matlamat utama penutupan adalah hanya semacam payung kepada hakikat
yang saya sentiasa mahu menggunakan y apabila Saya memanggil fungsi yang sebagai kuasa
apabila mengambil eksponen ini.
Jadi kembali kemudian, yang fungsi yang menerima
dua, iaitu asas, dan kembali hasil eksponen yang
adalah kunci di sini.
Dan itulah perbezaan utama.
Terdapat hanya sedikit yang berkembang.
>> Ini bukan apa-apa yang berbeza berbanding dengan contoh sebelumnya,
tetapi ia hanya sedikit yang berkembang kita boleh sebenarnya
mewujudkan pengendali di Swift dan benar-benar melakukan barangan dengannya,
yang jenis satu perkara yang sejuk.
Adakah saya menjawab soalan anda?
Sweet.
Apa-apa lagi sebelum kita bergerak?
OK.
>> Sekarang ini semacam menimbulkan yang soalan adalah bahawa- juga OK,
sekarang kita mempunyai keupayaan untuk fungsi yang akan dikembalikan.
Bolehkah kami juga lulus berfungsi sebagai data atau sebagai parameter kepada fungsi lain?
Dan sebenarnya kita boleh.
Jadi mari kita mengatakan bahawa kita mempunyai semua kod yang sama.
Kami mempunyai pembolehubah persegi yang akan mengambil ancang-kod ini.
Dan kita mempunyai pembolehubah kiub yang akan Cube beberapa data.
Dan kita benar-benar ingin memohon untuk pelbagai nombor.
>> Jadi apa yang kita mungkin akan terdorong untuk melakukan, sudah tentu, yang sudah pasti sah,
adalah untuk melelar lebih senarai ini nombor dan memohon fungsi saya persegi dan kiub
dan mendapatkan dua senarai baru sebagai hasil senarai yang asal ini kuasa dua
dan cubed, masing-masing.
Sempurna diterima.
Tetapi apa yang perkara yang kita lihat di sini adalah yang kita ada,
sekali lagi, pertindihan kod kami.
Dan ada mungkin peluang bagi kita untuk memudahkan ini sedikit.
Bagaimana jika ada cara untuk kita sebenarnya sentiasa melelar lebih senarai beberapa
dan melepaskan sahaja untuk ini ajaib berfungsi dengan pemboleh ubah yang
mewakili fungsi yang kita mahu untuk memohon
untuk setiap item tunggal dalam senarai ini.
Butang ini menampilkan konsep apa dipanggil fungsi aras tinggi.
Dan yang pada dasarnya apa ini adalah, adalah bahawa kita boleh membuat fungsi.
>> Dan dalam kes ini ia dikenali sebagai mapper, hanya untuk memberikan nama, hanya
pemetaan ke atas setiap item tunggal dalam senarai.
Tempat aku senarai dan saya mengambil fungsi.
Dan fungsi yang, sudah tentu, mempunyai tandatangan tertentu.
Ia menerima sebagai dua parameter dan ia akan keluar adalah dua kali ganda.
Dan hasil keseluruhan fungsi ini akan
menjadi satu senarai baru yang jenis double.
OK?
>> Dan apa yang saya akan lakukan adalah untuk memohon fungsi f ini
untuk setiap elemen dalam senarai saya.
Dan reply-- dan agak kembali ini baru senarai hasil, yang benar-benar sejuk.
Sekarang saya boleh lulus fungsi sekitar.
Dan idea ini perintah yang lebih tinggi fungsi adalah benar-benar penting.
Dan mapper ini adalah benar-benar hanya pelaksanaan bagi golongan miskin
daripada satu fungsi yang dibina ke dalam Swift dipanggil peta.
Dan ia tidak tepat ini, mungkin walaupun sedikit lebih baik.
>> Ini adalah jenis generik, versi sederhana yang
membolehkan kita melihat konsep yang terpakai di sini.
Sekarang melihat jalan yang aku sebenarnya boleh memohon persegi saya
dan fungsi kiub saya untuk senarai ini nombor.
Saya menjalankan mapper saya.
Saya memberikan kepadanya senarai saya nombor.
Saya memberikan kepadanya yang yang fungsi yang berlaku
memohon kepada setiap orang indeks.
Dan ia akan menjadi output akibat.
Dan saya akan dapat melihat bahawa saya telah kuasa dua dan cubed nombor saya sebagai hasilnya.
>> Dan sudah tentu mapper akan mengambil apa-apa jenis fungsi tanpa nama.
Kita juga boleh melihat bahawa saya telah membuat fungsi tanpa nama baru yang
hanya mengambil masa beberapa parameter dan dibahagikan dengan 2.
Dan kita dapat melihat bahawa saya telah, sebenarnya, dibahagikan senarai saya sebanyak 2 sebaliknya.
Cool?
Setakat ini, begitu baik?
Baiklah, sekarang mari kita kembali kepada idea ini.
Mari kita kembali melaksanakan ini dalam konteks gradebook a.
>> Dan jika saya berbuat demikian, kita dapat melihat bahawa saya boleh memohon pelbagai options-- ini
atau pelbagai ini fungsi aras tinggi
untuk benar-benar memudahkan keupayaan saya untuk melakukan pelbagai perkara pada senarai nombor.
Sebagai contoh, jika saya mengambil senarai nombor,
salah satu fungsi aras tinggi yang wujud dipanggil mengurangkan.
Apa mengurangkan tidak lebih daripada peta, akan dikurangkan
mengambil dua elemen dalam senarai, akan mengambil beberapa fungsi yang
membandingkan dua unsur senarai, dan kemudian ia akan
semacam output-- yang output fungsi yang
akan menjadi elemen yang lain anda kemudian membandingkan kepada orang lain.
>> Jadi, anda boleh menggunakan ini untuk benar-benar Jumlah bagi nombor nombor di dalam senarai anda.
Sebagai contoh, jika anda mempunyai senarai 1, 2, 3, 4, 5,
anda mengambil unsur-unsur pertama, 1 dan 2.
Anda boleh memohon untuk itu tambahan, fungsi yang mengambil kedua-dua elemen
dan memuntahkannya keluar salah satu daripada unsur-unsur, yang akan menjadi nilai 3.
Kemudian kami mengambil nilai yang 3 dengan seterusnya unsur senarai, kesimpulan kedua-dua,
dan kemudian terus pergi ke bawah senarai.
>> Kami mengurangkan senarai untuk satu nilai.
Dan ia hanya kebetulan bahawa simbol campur
adalah pengendali, sama seperti kita hanya melihat.
Pengendali ini adalah sebenarnya fungsi yang
mempunyai tepat senarai ini bahawa kita mahu, bukan sifat-sifat ini
yang kita mahu.
Jadi saya menggalakkan anda untuk mengambil lihat ini.
Saya ingin menyusun daripada langkah daripada beberapa kod ini
supaya kita boleh melihat beberapa sebenar, sebenar, Swift benar dalam Xcode,
dalam pembangunan iOS.
Tetapi kita lihat pada ini dan lihat jika anda boleh
menghuraikan melalui apa yang berlaku dengan beberapa perintah ini lebih tinggi
fungsi termasuk penapis, mengurangkan, dan anda akan lebih
lihat di suatu tempat di sini map juga.
Ia adalah di sini.
Di mana ia akan mengambil urutan gred dan ia akan benar-benar
peta mereka menggunakan suis konstruk, yang anda mungkin mengenali dari C,
tetapi sebenarnya ia adalah lebih banyak berkuasa daripada suis konstruk
yang kita ada dalam C.
>> Dan kami akan memohon untuk yang setiap unsur dalam senarai
dan benar-benar memberikan gred surat bagi setiap
daripada gred menggunakan semua konsep-konsep ini bahawa kita baru sahaja bercakap tentang sebelum ini.
Sekarang mari kita meminggir hanya untuk minit dan bercakap tentang structs.
Dan sebagainya adalah structs tunggu dalam C yang kita dapat menentukan jenis baru data.
Structs wujud dalam Swift.
Dan begitu banyak konstruk lain dipanggil enums dan kelas, yang benar-benar
mengambil idea ini kepada tahap yang berbeza keseluruhannya.
>> Dan pada dasarnya ia hanya cara yang mentakrifkan jenis baru data.
Jadi jika anda get-- jika anda datang seluruh kelas atau structs atau enums,
tidak keliru dengan ia.
Ia hanya jalan mentakrifkan beberapa jenis tertentu baru data.
Dan ini adalah benar-benar penting apabila kita berbicara mengenai pembangunan aplikasi iOS
kerana segala sesuatu yang wujud dalam aplikasi iOS yang
pada dasarnya adalah satu objek yang pelbagai jenis.
Dan objek pada dasarnya ialah kelas atau enum atau struct a.
>> Jadi dalam kes ini saya menentukan jenis baru data
bahawa saya memanggil penilaian itulah beberapa ciri-ciri, termasuk
nama dan urutan gred.
Jadi satu jenis taksiran supaya aku ada di dalam fikiran
akan menjadi kuiz, sebagai contoh.
Saya ingin mempunyai penilaian yang kuiz
dan yang mempunyai pelbagai gred yang berkaitan dengan itu, untuk satu kuiz,
kuiz dua, sebagainya dan sebagainya.
>> Atau saya mungkin mempunyai jenis yang berbeza taksiran untuk set masalah.
Dan saya boleh melakukan sesuatu.
Saya benar-benar boleh mempunyai fungsi dalam jenis ini
data, yang kini dipanggil kaedah.
Jadi, jika anda pernah melihat kaedah perkataan, ia benar-benar
hanya satu fungsi yang terpakai untuk kelas yang sangat khusus,
atau jenis yang sangat khusus data.
Ia membolehkan kita untuk mengubah suai data dalam.
>> Jadi dalam erti kata lain, jika saya mahu menambah gred untuk penilaian saya,
maka semua saya lakukan adalah untuk menambah nilai yang merupakan input
untuk fungsi ini untuk harta dalaman saya.
Ada konstruk lain kemas di sini dalam Swift, yang ini dot dot dot
pengendali, yang bermaksud bahawa markah boleh sekarang menerima apa-apa bilangan integer.
Dan markah akan menjadi pelbagai integer yang
telah diserahkan kepada fungsi saya, yang bermakna bahawa saya boleh melakukan hal-hal seperti ini.
>> Saya boleh jangan menambah gred dan hanya memberikan nombor sewenang-wenangnya integer ke dalamnya
dan sebenarnya disediakan array daripada nilai-nilai dalam fungsi saya
atau dalam kaedah saya, seperti yang berlaku.
Sekarang ini adalah penting kerana segala-galanya dalam Xcode, segala-galanya dalam iOS,
sebenarnya objek.
Oleh itu ingatlah bahawa dalam fikiran apabila kita menerobos Xcode terbuka
dan langkau ke depan di luar iOS versi dua dan tiga
dan benar-benar pergi ke versi empat.
>> Dan sekali lagi, semua ini akan dipaparkan di halaman seminar itu.
iOS empat adalah semacam penuh sesak nafas pelaksanaan aplikasi yang sangat asas.
Dan apa yang aplikasi ini tidak adalah ia memuatkan UI, yang kelihatan seperti ini.
Sekali lagi, jika kita klik pada papan cerita kita boleh melihat bahawa ini adalah apa yang ia kelihatan seperti.
Ini adalah UI.
Ia mempunyai tajuk di bahagian paling atas.
Saya memanggilnya Galeri web.
>> Di tengah-tengah ada unsur dipanggil imej paparan UI.
Dan di bahagian bawah ada toolbar dengan butang tunggal yang
mempunyai ruang elastik yang membolehkan ia untuk pusat di tengah-tengah bar alat ini.
Dan apa yang berlaku ialah apabila ini beban ia memuat turun fail JSON itulah
terkandung pada pelayan di tempat lain, mem-parsing bahawa fail JSON,
dan fail JSON kelihatan sedikit seperti ini.
Fail JSON kelihatan seperti ini.
Terdapat ia.
>> Ia mempunyai nama album dan ia mempunyai pelbagai gambar.
Setiap satu daripada orang-orang gambar mempunyai nama dan juga
URL diri mereka yang mewakili versi jpeg daripada individu foto.
Jadi apa yang berlaku ialah apabila program ini beban, ia memuat turun fail JSON,
mem-parsing itu, meletakkan semua ini ke dalam sama dengan pelbagai dalam iOS
pembangunan aplikasi, yang nsarray satu.
Dan kemudian saya boleh memuatkan data ini ke dalam permohonan
dan beban pada skrin saya.
>> Terdapat imej yang telah dimuat dengan butang di bahagian paling bawah.
Jika saya klik Dapatkan Imej akan datang, ia kemudian menarik imej yang dari internet
dan menggantikan imej yang dalam imej paparan UI.
Jadi anda boleh muat turun ini dan sebenarnya mengambil lihat pada komputer anda.
Dan membinanya dan sebenarnya menyusun ia ke peranti anda.
Tetapi pada dasarnya proses itu ini, mewujudkan storyboard-- yang
atau lebih tepat tidak create-- tetapi memilih papan cerita.
Dan sebenarnya we'll-- jika anda tidak mind-- kami akan mengambil hanya beberapa saat
untuk benar-benar menunjukkan bagaimana ini dilakukan.
>> Hanya supaya bagaimana kita boleh sebenarnya mencapai ini dibuat sedikit lebih
jelas.
Permohonan paparan tunggal, saya akan memanggil seminar ini
empat yang mewakili ini jumlah tertentu.
Simpan ia pada desktop.
OK, akan klik pada papan cerita.
Dan apa yang saya akan lakukan adalah untuk mencari imej paparan saya,
seretnya ke pengguna saya antara muka dan pusat itu.
Kini hanya tertumpu ia malangnya tidak akan melakukan banyak keseluruhan,
kecuali skrin iaitu saiz ini tepat.
>> Oleh itu, kita boleh meyakinkan kita bahawa dengan klik pada perkara bulatan dua ini,
menurunkan pop ini Menu di sini dan berubah sehingga
untuk pratonton, di mana kami akan benar-benar mendapat peluang untuk melihat bagaimana
ini akan benar-benar melihat pada peranti lain.
Seperti yang kita lihat, kita tidak walaupun melihatnya dalam kes ini.
Jadi saya akan menutup ini buat masa ini.
>> Dan saya akan pilih ikon ini turun sekurang-
bahagian bawah skrin.
Ia berkata Menyelesaikan Isu Layout Auto.
Maaf, ia memotong di bahagian bawah.
Tetapi jika saya klik pada itu, apa yang saya perolehi adalah pop ini up-- pergi.
Apa yang saya dapat adalah pop ini sehingga yang membolehkan saya menambah kekangan yang hilang.
Dan dengan demikian ia akan kemudian semacam menguncinya
ke bahagian tengah daripada skrin seperti yang saya jangkakan.
>> Sekarang untuk mendapatkan butang ini pada atas, saya perlu pergi ke Editor.
Pergi ke Benamkan Dalam dan klik Pengawal navigasi.
Apa yang akan dilakukan adalah yang akan menambah ini komponen keseluruhan lain kepadanya,
tetapi ia sebenarnya akan menghubungkan kembali ke UI asal saya.
Dan butir-butir, sekali lagi, kita tidak benar-benar perlu mengambil berat tentang sekarang.
Tetapi saya ingin mempunyai bar alat di bahagian paling bawah.
Jadi saya akan semak Toolbar Rancangan.
>> Dan ini menyediakan dalam pandangan saya, yang kini di tempat lain,
kita dapat melihat ia dikaitkan di sini.
Kini, ia menyediakan satu bar alat di bahagian bawah UI saya.
Jadi sekarang, daripada memilih satu imej paparan, saya boleh mencari label,
atau lebih tepat toolbar-- yang mari kita lihat, di manakah itu?
Apakah ia dipanggil?
Satu perkara button-- bar-- item-- bar sorry-- butang item.
Mencebur yang ada dan memohon pasangan ruang yang fleksibel di sebelah sama ada
untuk benar-benar tertumpu itu.
Jadi sekarang saya telah membuat UI saya, pada asasnya.
Dan saya boleh memberikan nama dengan klik dua kali di bahagian paling atas
di sini dan berkata galeri web dan sebagainya.
Sekarang sekali lagi, ini adalah unsur-unsur yang wujud dengan sendirinya.
Dan saya perlu menyambung mereka kepada saya kod yang
Boleh saya lakukan lagi dengan membawa sehingga icon bulatan dua ini,
berubah dari pratonton.
Yang, dengan cara itu, sekarang kita boleh lihat adalah baik berpusat dan akan kelihatan baik
pada pelbagai peranti.
>> Tukar kepada automatik, yang akan membawa kod ViewController itu.
Dan kini bahagian ini adalah penting.
Untuk membolehkan anda untuk menyambung ini dua unsur, kod anda kepada UI,
anda pilih item yang anda hendak sambungkan.
Jadi dalam kes ini, kita sebenarnya mahu mengekod
menukar imej yang yang terkandung dalam imej paparan UI ini.
Jadi, jika anda klik mengawal daripada pandangan imej dan seret,
anda akan melihat bahawa anda mendapatkan bar kecil, apabila anda melepaskan semua pop ini
sehingga akan berlaku.
>> Dan ia mengatakan bahawa kita akan mewujudkan sambungan.
Dan dari sini saya ingin memberikan nama, sesuatu seperti Galeri.
Tekan Enter.
Dan ini sebenarnya memberikan galeri ubah dikenali sebagai
bahawa saya boleh rujukan dalam kod saya untuk menukar imej, sebagai contoh.
Jadi bagaimana kod yang benar-benar melihat?
Baik lagi, saya tidak mahu menghabiskan terlalu banyak masa di atasnya.
Dan saya menggalakkan anda untuk memuat turun dan membaca.
Tetapi salah satu yang paling aspek penting adalah kod
yang benar-benar mencapai harga imej.
>> Jadi dalam kes ini saya ingin untuk mendapatkan dalam gambar saya
pelbagai, yang terkandung dalam kelas saya.
Saya ingin menentukan nama dan URL yang sudah dihuraikan daripada JSON ini.
Sebenarnya meminta peranti untuk mendapatkan URL, mengambil URL daripada ini,
dan kemudian mengambil data daripada kandungan URL yang.
Kemudian menukar data itu ke dalam imej dengan melepaskan ia ke dalam imej UI.
Jadi sekali lagi, ini adalah jenis semua berbeza objek, jenis kelas.
>> Dan kemudian saya kemudian boleh menetapkan saya gallery.image sama dengan data yang.
Dan itulah jenis daging itu yang sebenarnya adalah kemudian
dapat mengubah perubahan data from-- gambar dari satu ke yang berikutnya.
Jadi sekali lagi, mudah-mudahan sekarang banyak yang membina
akan masuk akal sedikit lebih.
Perhatikan bahawa ada beberapa tanda seru di sini.
Mata seru adalah pada dasarnya berkaitan dengan optionals.
>> Apa yang saya katakan ialah pada dasarnya bahawa tanpa memeriksa
untuk melihat jika ada data dalam ini pilihan,
Saya akan pergi ke depan dan menganggap yang ada dan announced ia.
Ingatlah bahawa kita menggunakan analogi jenis pakej untuk optionals
dan kita perlu announced yang pakej dan tarik keluar data.
Titik seru kuasa-kuasa yang benar-benar berlaku.
>> Tetapi saya tahu bahawa ini adalah selamat kerana saya diperiksa
untuk melihat jika data imej adalah sama kepada sifar, saya telah benar-benar semak
untuk melihat jika itu pilihan adalah, sebenarnya, gagal.
Jika yang mempunyai, sebenarnya, sudah gagal.
Oleh itu, saya yakin bahawa sekali saya dapat ini titik Saya boleh announced data itu.
Anda juga mungkin melihat ia dalam bentuk tanda tanya.
Jadi, jika kita tatal ke bawah di mana saya perlu untuk benar-benar menghuraikan data.
>> Jadi jangan menunda oleh semacam ini nama-nama yang panjang.
Anda boleh mencari dalam Apple tapak pemaju banyak
rujukan kepada semua objek dan semua proses
yang benar-benar membuat ini mungkin.
Tetapi perhatikan bahawa ini adalah pada dasarnya fungsi di mana saya lulus beberapa data.
Dan saya kembali beberapa jenis data.
Dan saya perlu menggunakan ini sebagai kata kunci untuk menukar ke nsdictionary ini?
Yang sekali lagi, satu nsdictionary pilihan.
Maka yang mana saya perlu memeriksa untuk melihat jika ia wujud.
>> Jadi saya boleh menggunakan bahawa jika membiarkan setaraf berjaya dihuraikan,
maka saya tahu bahawa bahawa pilihan sebenarnya mengandungi beberapa data.
Atau apa yang saya lakukan di sini adalah untuk hanya menganggap bahawa jika terdapat
sebarang kesilapan yang ia sebenarnya selamat.
Baiklah, saya ingin mengucapkan terima kasih kepada anda semua kerana sudi datang.
Saya tahu ini adalah banyak, tetapi ia hanya satu jam
untuk bercakap tentang beberapa barangan cukup maju.
Dan supaya mudah-mudahan anda akan mendapat peluang untuk memuat turun semua kod
dan mengambil yang lebih baik, lebih rupa menyeluruh di ia.
Semacam meyakinkan diri anda daripada semua barangan yang sedang berlaku.
Dan saya ingin mengucapkan terima kasih kepada anda semua, sekali lagi, untuk datang.
Dan semoga berjaya dengan projek akhir anda.
Mempunyai hari yang hebat.