DANIEL Armendariz: Halo, semua orang, Selamat datang di pengembangan aplikasi iOS dengan cepat. Aku Dan Armendariz. Aku precepter komputer ilmu di sini di Sekolah Teknik dan Ilmu Terapan. Dan cepat sebenarnya jenis bahasa benar-benar rapi. Dan saya memiliki beberapa rencana untuk hari ini. Jadi lebih satu jam berikutnya atau jadi kita akan untuk melihat pengembangan aplikasi iOS sendiri menggunakan Xcode dan benar-benar menciptakan beberapa sangat dasar, aplikasi yang sangat sederhana. Dan melihat cara yang Anda benar-benar mengambil aplikasi tersebut, dan membangun mereka, dan benar-benar menempatkan mereka pada perangkat iOS. Beberapa hal yang kita tidak akan melihat akan mencakup hal-hal seperti benar-benar mengambil aplikasi dan menaruhnya di app store. Ada banyak tutorial online yang akan membantu Anda dengan itu aspek itu. Tapi juga karena sebagai bagian dari CS50, Anda mendapatkan untuk bergabung dengan pengembangan Apple Tim, tim pengembangan aplikasi CS50 itu. Jika Anda belum melakukannya belum dan Anda berafiliasi dengan CS50, Saya sarankan Anda melakukan itu karena itu adalah bagaimana Anda dapat membuat beberapa program di Xcode, membangun mereka, dan benar-benar menempatkan mereka pada beberapa perangkat iOS Anda jika Anda benar-benar memiliki perangkat iOS fisik. Jika Anda tidak memiliki iOS fisik perangkat yang lebih dari baik-baik saja. Anda benar-benar dapat mengembangkan untuk iOS. Dan Xcode memiliki simulator yang memungkinkan Anda untuk melihat aplikasi Anda dalam tindakan pada komputer Anda. Tapi itu semacam adalah hal yang rapi untuk benar-benar bermain dan berinteraksi dengan aplikasi Anda pada perangkat yang sebenarnya. Jadi ada beberapa persyaratan untuk benar-benar melakukan semua perkembangan ini. Salah satunya adalah bahwa Anda harus memiliki Mac. Itu harus berjalan 10.9.4 atau yang lebih baru untuk melakukan pembangunan dengan cepat. Anda dapat menggunakan sebelumnya Versi untuk mengembangkan dengan Objective C untuk iOS dan Mac. Tapi saya sarankan, dan banyak contoh yang akan kita lihat hari ini, menggunakan 10.10 Yosemite. Jadi, jika Anda belum upgrade, itu adalah alasan yang baik untuk melakukannya. Sekarang Xcode 6.1 adalah versi terbaru dari lingkungan pengembangan terintegrasi bahwa Apple menyediakan secara gratis yang Anda dapat men-download dari app store. Dan saya sarankan Anda juga menjalankan versi terbaru. Jika Anda kebetulan menjalankan sebelumnya versi, Xcode 5 dan di bawah hanya hanya tidak mendukung cepat sekali. Dan versi beta dari enam, yang yang dirilis selama musim panas, melakukan dukungan cepat, tapi ada menjadi sejumlah besar perubahan bahasa, cukup sehingga kode yang Anda akan melihat dan bahwa Anda mungkin menemukan di internet tidak akan benar-benar mengkompilasi benar dalam versi sebelumnya dari Xcode. Jadi sekali lagi, jika Anda belum memiliki account pengembang, Saya sarankan Anda pergi ke developer.apple.com. Mendaftar, membuat account pengembang, dan bergabung dengan tim pengembangan aplikasi CS50. Yang akan memberikan kepada Anda kesempatan untuk mengkompilasi aplikasi Anda dan menempatkan mereka pada perangkat Anda. OK, jadi mari kita mulai. Hal pertama kita akan lakukan adalah untuk benar-benar membuat sangat proyek sederhana di Xcode yang akan memungkinkan Anda untuk membuat aplikasi. Jadi, jika Anda belum memiliki Xcode terbuka, maju dan membukanya dan membuat proyek baru. Sebuah splash screen khusus akan membuka dan akan memberi Anda beberapa pilihan tentang apa itu yang ingin Anda lakukan. Katakan saja bahwa Anda ingin membuat sebuah proyek baru, aplikasi baru. Jendela ini akan muncul, asumsi Anda menggunakan Xcode 6.1. Sekarang, dan untuk durasi seminar ini, kita akan menggunakan tunggal aplikasi tampilan, hanya semacam aplikasi dasar untuk mendapatkan kaki Anda basah. Dan Anda dapat cabang keluar Anda sendiri dari sana. Klik Next pada saat ini. Sekarang di sini ada beberapa hal Anda mungkin ingin masuk. Nama produk adalah nama proyek Anda. Dalam hal ini, aku hanya akan menyebutnya Seminar1 karena itu contoh pertama kami. Nama organisasi, di hal ini hanya nama saya. Anda tentu saja dapat mengubahnya untuk nama Anda sendiri, atau untuk CS50. Identifier organisasi, jika Anda kebetulan memiliki website hanya mengambil nama domain di mundur, com.yourname. dan kemudian nama produk akan muncul secara otomatis setelah itu sebagai identifier bundel. Jelas bahasa yang kita akan menggunakan untuk hari ini adalah cepat. Anda dapat, tentu saja, menggunakan Objective C untuk itu, tapi hari ini akan cepat. Dan kita akan untuk sekarang mengatakan perangkat universal, sehingga bahwa ia bekerja pada kedua iPad dan iPhone. Dan kita akan meninggalkan inti Data dicentang untuk menjaga proyek yang relatif sederhana untuk saat ini. Jadi mari kita pergi ke depan dan klik Next. Dan itu akan bertanya kepada saya di mana saya ingin menyimpannya. Aku hanya akan menyimpannya ke desktop saya untuk saat ini. Baiklah, jadi sekarang ini adalah apa yang akan terjadi ketika Anda benar-benar terbuka Xcode. Dan perhatikan bahwa Hal pertama yang Anda lihat adalah tanda seru ini yang mengatakan identitas penandatanganan ditemukan. Saya sengaja melakukan ini di komputer saya dan saya berharap bahwa aku akan dapat benar-benar memperbaikinya, karena saya ingin Anda melihat bagaimana ini benar-benar akan bekerja pada komputer Anda sendiri. Silakan klik isu memperbaiki. Ini akan meminta Anda jika Anda memiliki akun pengembang apel yang ada. Di sinilah bergabung dengan CS50 tim pengembangan aplikasi penting agar Anda tidak hanya memiliki account app, tetapi Anda juga memiliki kemampuan untuk menandatangani aplikasi dan menempatkan mereka pada perangkat iOS Anda. Ini adalah mengklik not-- Masalah memperbaiki tidak perlu jika Anda hanya akan membangun dan mengembangkan secara lokal, seluruhnya dalam simulator iOS. Tapi untuk sekarang aku akan untuk mengembangkan dan menempatkan mereka pada iPad saya, yang akan mampu untuk menyiarkan juga. Jadi saya ingin benar-benar menambahkan ini. Dan itu akan meminta saya untuk ID apple saya. Jadi itu akan menjadi ini. Dan saya harus mengambil saya password, yang di sini. Jadi beri aku hanya satu detik untuk menemukan bahwa, dan copy itu, dan paste di sini. Klik Add. Itu akan bertanya kepada saya Tim yang saya ingin bergabung. Aku akan melakukan sekolah teknik. Klik Gabung. Ups, itu yang salah. Mari kita lakukan satu ini. Mudah-mudahan satu yang akan bekerja. Salah satu yang masih tidak bekerja. Kami sudah kehabisan yang baik di sini. OK, yang satu ini harus bekerja. Sekarang tutup itu. Sekarang mari kita lakukan sekolah rekayasa, klik pilih. Dan sekarang mudah-mudahan setelah beberapa detik Anda can-- OK, Aku akan mencabut dan permintaan. Oh man, ini akan tidak bekerja. OK, saya akan mencoba yang berbeda. Mari kita lakukan ini di sini. Demo hidup gagal saya. Kita mungkin harus kembali ke hanya membangun seluruhnya lokal, tapi itu akan menjadi OK dalam kasus ini. Jadi di sini, sementara ini sebenarnya kerja, apa yang kita akan lakukan adalah hanya membuat sangat sederhana Hello aplikasi Dunia. Jadi ini adalah Xcode. Dan jika Anda belum melihatnya, itu dapat sedikit menakutkan pada awalnya. Ada banyak panel, ada Banyak barang-barang kecil di berbagai daerah. Tapi menyadari bahwa ada benar-benar beberapa komponen utama untuk lingkungan pengembangan ini. Pada bagian kiri jauh adalah semua file yang berlaku untuk program anda atau proyek tertentu. Kami akan mengklik sekitar pada beberapa dari mereka dan kami akan menunjukkan yang paling yang penting dari waktu ke waktu. Di paling kanan, kita memiliki satu set atribut. Dan semua atribut ini, ada berbagai panel untuk atribut. Panel akan berubah tergantung pada konteks konten utama, yang kebetulan berada di tengah. Sekarang tengah benar-benar dapat menunjukkan Anda berbagai hal, misalnya kode Anda sendiri. Atau Anda mungkin benar-benar have-- saat Anda klik pada storyboard yang adalah, dengan cara, hanya grafis yang representasi pengguna Anda antarmuka untuk application-- Anda maka atribut panel di bagian paling kanan akan benar-benar berubah. Sekarang ada beberapa lainnya hal yang saya ingin menunjukkan. Anda dapat semacam menjelajahi sekitar di lingkungan Anda sendiri. Tapi satu hal yang telah sangat berguna adalah tombol ini di sini, kanan atas jendela. Ada tombol ini yang Sepertinya di paling meninggalkannya memiliki sebuah paragraf diikuti oleh dua lingkaran dan semacam dua panah menunjuk dari satu sama lain. Jika Anda beralih di antara standar Editor, yang adalah salah satu paling kiri, satu yang dipilih secara default, dan dua lingkaran yang tumpang tindih satu sama lain, apa yang Anda dapatkan adalah pandangan panel ganda. Dan ini sebenarnya akan berguna bagi kita ketika kita perlu untuk menghubungkan item di UI untuk kode. Dan kita akan berbicara lebih banyak tentang bahwa hanya dalam beberapa saat. Tapi menyadari bahwa jika Anda mendapatkan bahkan lebih panel seperti ini, Anda dapat menyederhanakan pandangan Anda hanya yang sedikit dengan mengklik kembali pada Editor tunggal Anda. Sejauh ini cukup baik. Jadi pada dasarnya kita memiliki kode pada kiri, atribut di sebelah kanan, dan apa pun yang kita kerjakan di sini di pusat. Jadi di sini saya sudah diklik pada storyboard utama. Dan storyboard, lagi, adalah cara di Xcode bahwa Anda benar-benar dapat membuat pengguna Anda antarmuka hanya menggunakan drag dan drop teknik. Dan untuk waktu yang kami Aplikasi pertama ini Justru apa yang akan kita lakukan. Kita akan pergi ke bagian kanan sangat jauh lebih rendah layar, yang berisi berbagai elemen pengguna yang kemudian dapat klik dan drag untuk membuat antarmuka pengguna Anda. Sekarang semua ini elemen disebut pandangan karena mereka menyediakan semacam lihat. Ada pandangan image, untuk Misalnya, untuk benar-benar menunjukkan gambar pada user interface. Ada tampilan tabel untuk benar-benar menunjukkan meja. Seterusnya dan sebagainya. Ada berbagai macam pandangan yang dapat Anda pilih di sini. Jadi hanya untuk saat ini kita akan untuk mencari label. Anda hanya dapat menelusuri semua daftar yang ada. Tapi ada pencarian bar di bagian paling bawah yang membuatnya lebih mudah untuk mengidentifikasi pandangan tertentu yang Anda benar-benar ingin menyeret ke antarmuka pengguna Anda. Ditemukan label saya. Aku akan menyeret di sini, langsung ke contoh aplikasi saya. Tepat di tengah terlihat baik. Dan aku akan mengetik "Hello World!" Tekan Enter. Sekarang aku punya label. Ini tidak terlihat seperti itu berpusat cukup baik. Jadi saya dapat mencoba untuk kembali pusat itu. Untungnya ia menawarkan ini panduan untuk membuat segalanya lebih mudah. Aku akan mencoba untuk mengkompilasi itu. Mudah-mudahan itu benar-benar akan bekerja di sini. Dan jika tidak, hanya dalam beberapa saat justru akan muncul di iPad saya. Ada di sini. Itu ada. OK, jadi itu saja. Kami sudah selesai. Kami telah membuat sangat kami aplikasi pertama. Sekarang jelas ini tidak melakukan apa-apa. Ini hanya label. Tidak ada hubungan antara user interface dan kode. Jadi jika kita benar-benar ingin untuk membuat hubungan ini, jika kita benar-benar ingin memiliki semacam komunikasi antara unsur-unsur yang ada di layar dan kode yang memungkinkan kita untuk mengontrol unsur-unsur, maka kita benar-benar perlu melihat kode itu sendiri. Jadi ini adalah apa yang disebut ViewController.swift. Dan untuk, terutama untuk beberapa program pertama Anda, ini akan menjadi semacam dari sebagian besar kode yang Anda enter-- akan menjadi dalam dokumen ini di sini. Ada banyak hal yang ada di sini sejauh ini, kan? Ada impor UI kelas kit, menimpa, [? funk,?] semua ini berbagai hal. Dan itu tidak cukup jelas apa itu adalah bahwa semua ini berarti. Jadi mari kita mengambil langkah mundur dari Xcode untuk sedikit dan melihat bahasa itu sendiri, cepat. Jadi dengan cepat, itu di desain dan pengembangan di Apple selama sekitar empat tahun pemahaman saya. Dan ada beberapa fitur tentang hal yang benar-benar rapi. Pertama-tama, itu dikompilasi bahasa, sama seperti C. Jadi pertama Anda harus kompilasi dan kemudian menjalankannya sebelum Anda benar-benar bisa mengeksekusi kode yang dihasilkan. Tapi ada, tidak seperti C, interaktif meminta bahwa Anda benar-benar dapat menjalankan dan ketik perintah sewenang-wenang dalam. Dan sangat mirip konsol JavaScript, yang Anda mungkin akrab dengan sekarang, itu benar-benar akan mengevaluasi mereka perintah dan memberikan kepada Anda output. Dan mereka bahkan telah diambil bahwa ke tingkat berikutnya dan mereka telah menciptakan sesuatu disebut bermain di Xcode yang memungkinkan Anda untuk visual bekerja dengan kode. Dan kita benar-benar akan melihat beberapa contoh itu hanya sedikit. Ini didasarkan pada C. C mendasari itu, karena semua kompiler membuat kode dari C dan membuat kode objek dari itu. Tapi itu benar-benar saham relatif sedikit sintaks. Ini akan terlihat cukup berbeda. Akan ada beberapa kesamaan. Tapi ada akan menjadi beberapa perbedaan dibandingkan dengan, katakanlah, JavaScript atau PHP. Dan kami akan mengarahkan ini keluar hanya dalam beberapa saat. Sekarang salah satu hal terbesar tentang cepat itu bagus adalah bahwa, terutama dibandingkan ke C, itu dimaksudkan untuk menjadi aman. Segala sesuatu di dalamnya dimaksudkan untuk akan sangat sangat diketik dalam. Bahkan hampir menjengkelkan pada awalnya, ketika Anda pertama kali mulai bekerja dengan cepat, betapa banyak itu memberlakukan jenis di mana-mana. Apa pun itu string harus tetap string. Ini sangat sulit untuk memilah-convert atau memaksa ke bentuk lain. Dan lagi, kami akan menampilkan contoh ini. Tapi akhirnya menyadari bahwa ini dimaksudkan untuk melindungi Anda, dan oleh Anda maksud saya kode Anda, dari menerjang dalam beberapa cara yang mengerikan saat Anda memiliki semacam jenis serasi. Dan lagi, bekerja dengan itu. Karena akan membuat frustasi pada awalnya saat Anda mencoba untuk mencari tahu persis mengapa Anda mendapatkan ini tidak biasa kesalahan berurusan dengan jenis. Tapi itu akan sia-sia pada akhirnya. Itu menangani otomatis manajemen memori, sehingga tidak lagi melakukan Anda harus berurusan dengan hal-hal seperti malloc dan gratis dan semua dari hal-hal. Dan itu juga dirancang untuk generalisasi. Jadi sementara kita dapat menggunakan Xcode untuk membuat iOS apps dan aplikasi Mac, kami juga bisa hanya menggunakannya sebagai bahasa scripting. Dan jadi kita bisa menggunakannya semacam dari bukan PHP atau sebaliknya Python untuk benar-benar cepat mengurai dan proses beberapa data yang kita miliki di komputer kita. Ini memiliki berbagai macam modern fitur, optionals, berubah-ubah, generik, penutupan, dan banyak ini hal yang Anda mungkin atau mungkin tidak mengenali. Dan itu hanya semacam malang bagian dari bahasa yang beberapa di antaranya semacam futuristik, unsur-unsur modern yang yang terkandung dalam unsur-unsur yang begitu tertanam bahwa saya benar-benar akan harus mengajarkan Anda CS50.5 sedikit. Kita harus belajar sedikit lebih tentang beberapa fitur agar untuk benar-benar memahami apa yang terjadi dan sehingga Anda dapat melihat kode dan tidak merasa benar-benar hilang. Dan Anda akan melihat apa yang saya maksud dengan itu hanya dalam satu menit. OK, jadi let's-- cukup ini semacam hal teoritis. Mari kita benar-benar melihat kami Program cepat pertama. Itu salah satu baris kode. Baris 14 di sini, itu mengatakan cetak l n halo CS50. Jadi ada beberapa hal yang sangat berbeda tentang hal ini dibandingkan untuk hal-hal yang Anda mungkin digunakan untuk dari C, misalnya. Salah satunya adalah bahwa tidak ada intmain, tidak ada termasuk bagian, ada satu pun dari hal-hal ekstra ini. Ini termasuk seperti standar I / O, seperti perpustakaan yang benar-benar memberikan fitur standar bahasa, secara otomatis dimasukkan sebagai bagian dari perpustakaan standar cepat ini dan yang secara otomatis diimpor. Anda tidak perlu melakukan bahwa impor secara manual. Intmain tidak ada karena entry point utama untuk kode sebenarnya di mulai dari kode. Jadi kode yang Anda miliki mulai dari awal akan benar-benar dilaksanakan di awal. Jadi ini benar-benar sangat menyederhanakan. Perhatikan juga, bahwa tidak ada titik koma. Tidak ada titik koma dalam bahasa ini. Anda menempatkan pernyataan pada garis individu dan kemudian baris berikutnya merupakan pernyataan lainnya. Jika Anda ingin menempatkan pernyataan secara online mulitiple, maka Anda memiliki terpisah dengan titik koma. Tetapi untuk sebagian besar, untuk gaya yang baik, kami tidak akan pernah melihat titik koma untuk tujuan laporan memisahkan dalam cepat. Jadi bagaimana ini benar-benar bekerja? Nah sangat banyak seperti C kami benar-benar harus mengkompilasi ini. Dan kita bisa melakukannya dengan menggunakan c cepat dan kemudian 1.swift. Dan kemudian setelah beberapa menit ini akan mengkompilasi dan kemudian saya dapat menjalankan salah satu item. Dan daripada hanya akan mengatakan "Halo CS50." Mengagumkan, jadi ada kita pergi. Ada program hello world pertama kami. Mari kita lanjutkan ke nomor dua. Sekarang di this-- ini telah berubah sedikit, karena sementara biasanya Anda do-- sebenarnya selalu yang Anda harus mengkompilasi aplikasi cepat sebelum Anda benar-benar menjalankan itu-- satu fitur yang besar yang saya singgung sebelumnya adalah bahwa cepat sebenarnya dapat digunakan dalam jenis dari modus pseudo-interpretatif, ada sebenarnya seperti seorang penerjemah. Tapi apa ini akan lakukan adalah ada adalah, pada kenyataannya, aplikasi cepat bahwa Anda dapat menjalankan. Jadi misalnya jika Anda hanya mengetik cepat di sini, apa yang akan terjadi adalah bahwa Anda akan mendapatkan prompt. Dan Anda bisa mengetik cepat Anda kode, cetak halo, dan menjalankannya. Dan itu benar-benar akan print-- baik, itu tidak mencetak dalam hal ini karena dicetak berpusat out, yang tidak terlihat di sini. Tetapi sebenarnya bisa berfungsi. Dan dalam hal ini, aku hanya akan menggunakan ini sebagai sebuah naskah. Dan aku benar-benar dapat menjalankan kode ini di sana. Jadi cara yang saya benar-benar menjalankan itu akan sedikit berbeda, tetapi Anda akan melihat bahwa hanya dalam beberapa saat. Sekarang, dalam hal ini apa yang kita akan lakukan adalah untuk pertama mendefinisikan variabel. Jadi ini adalah bagaimana kita mendefinisikan variabel dalam cepat, adalah kita menggunakan membiarkan kata kunci, diikuti dengan nama variabel, dan kemudian kami menyediakan beberapa inisialisasi data yang opsional. Jadi hal ini kita mendefinisikan konstan disebut nama, dan kita akan menggunakan bahwa dalam output dari garis cetak kami di bagian paling bawah, halo nama. Sekarang perhatikan bahwa daripada menggunakan% s, kita bisa merangkum nama ini variabel dalam / () dan dapat menggabungkan dalam isi ini string ke dalam string ini. Sekarang tidak seperti C, tali adalah jenis nyata yang sebenarnya dalam cepat. Dan itu duduk bersama int dan bersama ganda sangat mudah dan alami dibandingkan untuk beberapa lainnya bahasa yang kita lihat. Jadi ini akan benar-benar berfungsi seperti yang Anda harapkan. Saya bisa menjalankan 2.swift. Dan kita melihat bahwa nama saya sebenarnya disambung di, "Hello Dan." OK, mengagumkan. Pindah ke nomor tiga. Sekarang itu sedikit dari kebohongan putih yang saya mengatakan bahwa cara yang kita mendeklarasikan variabel adalah untuk menggunakan membiarkan kata kunci. Sebagai sebanyak yang Anda mungkin dapat Anda lakukan ingin menggunakan membiarkan, karena apa yang tidak itu mendefinisikan konstan. Dan yang memberitahu cepat yang bisa mengoptimalkan kecepatan aplikasi Anda karena ia tahu bahwa variabel tidak akan berubah. Jadi hati-hati mengevaluasi ketika Anda akan menggunakan variabel untuk tujuan perubahan itu. Dan ketika Anda akan membuat variabel hanya untuk menyimpan beberapa data dan itu adalah tidak benar-benar akan berubah. Jadi konsep kekekalan, itu tidak benar-benar akan berubah, merupakan salah satu yang penting bahkan jauh di bawah mendefinisikan variabel. Jadi di sini kita telah mendefinisikan nama, biarkan nama, dan dalam hal ini itu konstan, yaitu tipe tali, dan itu sama dengan Dan. Jadi sedangkan di sebelumnya versi, infers-- dan dengan "itu" Maksudku cepat swift-- menyimpulkan jenis data bahwa kita telah masuk ke dalam variabel. Dalam hal ini, kita bisa eksplisit. Jadi biarkan maka nama ini variabel nama, maka titik dua. Dan setelah usus besar kita tentukan jenis data. Jadi tidak lagi apakah nama int atau Nama tali atau sesuatu seperti itu. Tapi bukannya membiarkan label, kami mendefinisikan apakah atau tidak itu konstan atau variabel, diikuti dengan nama, diikuti oleh jenis opsional. Jadi dalam hal ini kita mendefinisikan Nama ini adalah string. Kami katakan adalah Dan. Dan sekarang saya memiliki variabel lain, dalam hal ini disebut label. Tetapi perhatikan bahwa diawali dengan kata kunci var. Sarana var kata kunci bahwa variabel ini dapat diubah pada titik kemudian waktu, di suatu tempat di kode dapat kita benar-benar mengubahnya dan tidak akan memberi kami kesalahan tertentu. Kita bisa melakukan concatenating standar Operator disini menggunakan simbol ditambah untuk benar-benar menambahkan kami nama ke dalam string ini. Dan kemudian kita bisa mencetak seperti yang kita lihat hanya beberapa saat yang lalu. Sekarang mari kita mengatakan bahwa Anda ingin membuat variabel tetapi Anda tidak ingin menginisialisasi belum. Anda belum ingin menempatkan data apapun di dalamnya. Nah Anda harus memberitahu cepat apa jenis data akan menjadi sebelum Anda dapat sebenarnya mendefinisikannya dengan benar. Jadi dalam hal ini, ketika kita sudah didefinisikan variabel yang disebut kelas kita harus eksplisit tentang jenis, karena tidak bisa menyimpulkan hanya melihat di data diinisialisasi yang Anda berikan untuk itu. Ini akan memberi kita pesan kesalahan jika Anda hanya jenis var kelas, misalnya, karena tidak memiliki jenis karenanya. Jadi kelas = 100. Sehingga 100 adalah bilangan bulat, itu cocok dengan sangat baik ke dalam. Ini akan terus berfungsi. Kita bisa melihat bagaimana kemudian kita dapat menggabungkan ini. Sekarang Anda mungkin tergoda, jika Anda benar-benar ingin menggabungkan kelas ke dalam string teks lain, dalam string lain, bahwa Anda akan hanya menggunakan operator yang concatenating sama. Dan itu biasanya akan menjadi kenyataan. Tapi cepat tidak akan memungkinkan Anda untuk implisit mengubah tipe data. Jadi dalam hal ini, ini line, 25, akan gagal karena kelas adalah bilangan bulat dan bukan string. Dan jadi ada ketidakcocokan set jenis. Jadi, Anda harus eksplisit ketika Anda ingin mengubah data ini, bila Anda ingin memaksa ini data ke dalam jenis yang berbeda dan berkata, OK, saya ingin mengambil kelas ini, yang merupakan bilangan bulat, dan mengubahnya menjadi string. Jadi saya mengambil modal s String semua jenis, Anda akan melihat, dikapitalisasi, Int, Double, String, seterusnya dan sebagainya. Semua dari mereka dikapitalisasi hanya untuk membuat segalanya lebih mudah. Dan kita akan mengatakan memanfaatkan String lulus ke dalamnya kelas. Dan itu akan membuat String dari integer yang. Dan kemudian kita bisa menggabungkan dua sangat baik. Pertanyaan tentang hal ini sejauh ini? Baiklah, mari kita membajak melalui ke nomor empat. Sekarang mari kita bicara tentang beberapa lebih maju struktur, seperti array dan loop. Dan tidak seperti C, array di cepat tidak diwakili oleh pointer. Pointer di cepat, meskipun mereka ada, disebut seperti pointer tidak aman atau beberapa jenis yang sama seperti ini, mereka tidak terkena biasanya Anda. Sehingga menjadi sangat sulit bagi Anda untuk memanipulasi memori langsung dari komputer Anda. Jadi array hanya tipe data. Dan mereka direferensikan menggunakan semacam ini notasi braket sekarang standar persegi yang telah Anda lihat sebelumnya. Tetapi ketika Anda benar-benar ingin menentukan jenis variabel sebagai array dari beberapa jenis tertentu, maka Anda menempatkan bahwa jenis dalam kurung persegi. Jadi apa yang saya katakan di sini adalah bahwa Aku sedang membuat sebuah variabel yang disebut nilai bertipe int array yang. Dan aku menetapkan bahwa sama dengan beberapa Data diinisialisasi, yang dalam hal ini adalah 100, 0, 90, 85, yang hanya koleksi nilai sewenang-wenang di sini. Sekarang dalam hal ini saya bisa, ingat, menghapus jenis, dan itu akan bisa menyimpulkan itu berdasarkan data diinisialisasi. Tapi jika saya dihapus ini dan Saya perlu untuk mengatur nanti, maka saya akan harus memastikan bahwa saya memiliki tipe sana. Baiklah, mari kita bersama. Jadi kita can-- array berikan kepada kami varietas metode melalui itu notasi titik pada Anda mungkin sekarang akrab dengan. Jadi grades.count, misalnya, memberitahu kita justru nomor elemen yang terkandung dalam array ini. Jika saya ingin menambahkan additional-- sekarang melihat bahwa ini adalah var dan not-- ini adalah variabel dan tidak konstan, yang berarti bahwa saya bisa mengubah isi array ini, saya bisa menambahkan objek untuk itu. Tapi aku tidak bisa mengatakan nilai dan kemudian dalam tanda kurung siku empat, karena itu akan menjadi dari kesalahan batas dalam hal ini. Jika saya ingin benar-benar berubah ukuran array ini, Saya harus menggunakan metode dot append ke menambahkan sesuatu pada bagian paling akhir itu. Aku bisa, bagaimanapun, perubahan indeks individu. Jadi saya bisa menggunakan nilai dan kurung kemudian persegi nol untuk memanipulasi indeks pertama dan seterusnya, seperti biasanya Anda harapkan. Dan aku bisa melakukan hal yang sama untuk benar-benar menerima data dari itu juga. Sekarang ada juga semacam metode mewah untuk melakukan hal ini, nilai ditambah equals dan kemudian indeks lain, yang akan append-- atau tidak lagi index-- tapi daftar lain yang akan menambahkan daftar tersebut ke bagian belakang kelas. Dan nilai akan kemudian mengandung semua itu. Tapi itu semacam hal ekstra bahwa aku hanya menunjukkan Anda untuk bersenang-senang. Sekarang ada untuk loop. Dan ini adalah awal dari mana hal mulai berubah sedikit. Perhatikan bagaimana ini loop berbeda untuk loop di C. Sekarang saya akan mencatat bahwa untuk loop di Swift bisa dibuat agar terlihat seperti untuk loop di C, tapi ada banyak konstruksi yang lebih berguna yang pada dasarnya menghilangkan kebutuhan untuk memiliki untuk var i sama dengan 0 koma i kurang dari beberapa panjang, seterusnya dan sebagainya, kan? Dan membangun ini hanya salah satu dari mereka. Untuk indeks, indeks baru variabel, dalam hal ini, dalam jangkauan. Dan apa yang saya katakan adalah bahwa ada rentang dari 0 sepanjang jalan sampai ke tetapi tidak termasuk grades.count. Jadi dot dot ini kurang dari tanda mewakili rentang nilai mulai dari nol semua jalan sampai ke grades.count minus 1. Ada terpisah operator yang ada, yang dot dot dot, yang akan berarti bahwa saya ingin kisaran nol untuk nilai menghitung inklusif. Tapi dalam kasus ini, karena ini array indeks nol, kita tentu saja tidak ingin pergi ke jumlah maksimum nilai. Saya dapat menjumlahkan nilai, seperti yang mungkin Anda berharap, dan output semua hal ini. OK, bergerak. Sekarang mari kita bicara tentang fungsi. Dalam rangka untuk menentukan fungsi Anda menggunakan kata kunci funk. Dan lagi, di Swift Anda harus berhati-hati dengan jenis. Anda berikan untuk itu parameter dengan mendefinisikan, misalnya, nama parameter dan kemudian di colin, jenis data Anda berharap bahwa parameter untuk menerima. Jadi dalam hal ini kita memiliki fungsi yang disebut menghitung cetak kelas. Ia menerima sebuah variabel yang disebut gradebook, atau lebih tepatnya parameter yang disebut gradebook. Dan kita mengharapkan gradebook yang menjadi sebuah array bilangan bulat. Jika gradebook yang kosong, kami akan mencetak satu hal. Kalau tidak, kita akan mencetak angka dari nilai yang ini sebenarnya memiliki. Sekarang jika kita ingin kembali beberapa nilai, maka cara bahwa kita memodifikasi definisi ini untuk benar-benar menggunakan ini panah kata kunci, atau menggunakan panah penanda ini. Jadi di sini kita akan mendefinisikan Fungsi yang disebut rata-rata. Kita akan menerima daftar nomor. Dan kita akan mengembalikan ganda, yang akan diharapkan menjadi rata-rata array ini. Dan untuk melakukan itu, dalam rangka untuk benar-benar menghitung rata-rata ini, kami akan mengambil jumlah dan kami will Tentu saja meringkas semua benda dalam array ini. Perhatikan bahwa ada baru gaya untuk loop di sini. Kami tidak harus eksplisit tentang iterasi setiap elemen tunggal, tapi kita malah bisa mengatakan untuk kelas dan gradebook, makna bahwa untuk setiap satu item yang kita miliki dalam hal ini, menyediakan item yang dalam hal ini variabel yang disebut kelas. Dan saya ingin melakukan sesuatu dengan itu. Jadi aku akan jumlah semua data ini dan benar-benar kembali divisi ganda. Sekarang perhatikan lagi di sini ada konsep pembagian bilangan bulat di Swift. Jika Anda ingin menggandakan divisi karena Anda ingin desimal, maka Anda harus eksplisit, bukan hanya tentang satu sisi, karena itu tidak akan memungkinkan Anda untuk memaksa Data di kedua sisi ini, Anda harus benar-benar saja kedua belah pihak menjadi ganda sehingga Anda sangat eksplisit tentang memastikan bahwa Anda melakukan pembagian ganda. Mari kita lanjutkan. Jadi jika saya benar-benar ingin accept-- sehingga dalam contoh ini, ini masih perintah aplikasi berbasis baris. Dan kita mulai melihat beberapa keterbatasan bahasa muda bahwa meskipun kita bisa mengakses argumen dengan menggunakan process.arguments ini, itu masih belum tentu terbersih hal yang pernah kami lihat. Tapi pada dasarnya saya mendorong Anda untuk semacam melihat kode ini dan mencoba untuk mencari tahu apa sebenarnya yang sedang terjadi. Pada dasarnya apa yang terjadi adalah bahwa kami mengambil daftar argumen dan memaksa mereka ke dalam bilangan bulat, dan kemudian kita akan menggunakannya sebagai cara untuk mencetak keluar rata-rata semua nilai kami. Bergerak. Sekarang ada jenis lain dari data-- Data lain jenis bukan array disebut kamus, yang sangat mirip dengan hash tabel atau peta hash dan mirip juga dengan Array asosiatif PHP. Sehingga mereka memiliki gagasan kunci dan nilai-nilai. Dan mereka juga didefinisikan dengan notasi braket ini persegi, tetapi perbedaannya adalah bahwa kamus memiliki dalam braket persegi, titik dua. Dan usus besar memisahkan data ketik itu adalah kunci dan nilai. Jadi dalam hal ini, saya akan membuat kamus untuk menerima beberapa nilai. Dan itu akan menjadi tipe string: int, yang berarti bahwa semua kunci akan menjadi string, dan semua nilai-nilai mereka kunci akan menjadi bilangan bulat. Apakah ini berarti bahwa saya bisa kemudian referensi data spesifik yang ingin saya menggunakan kunci-kunci yang agak daripada menggunakan indeks numerik seperti saya akan memiliki untuk array standar. Sekarang mari kita lihat, ada satu hal penting bahwa saya juga ingin menyebutkan tentang urutan tertentu dari kode. Dan itu adalah bahwa ada jenis lain dari data, atau lebih tepatnya ada ini Ide data yang terkandung dalam Swift disebut optionals. Dan apa optionals berarti yang mengakui fakta bahwa kadang-kadang Anda tidak akan mendapatkan data yang benar-benar Anda harapkan. Dan apa yang saya maksud dengan itu is-- mari kita lihat ini urutan kode yang iterates atas semua argumen yang dilewatkan ke kode ini dan mencoba untuk mengubah mereka, mencoba untuk membagi menjadi berbagai string, karena menerima sangat jenis tertentu argumen. Dan kemudian akan mencoba untuk memaksa string yang mewakili angka menjadi bilangan bulat yang nilai, bahwa saya kemudian dapat menghitung. Jadi pada dasarnya aku akan menggunakan fungsi perpecahan ini yang ada dalam Swift perpustakaan standar. Aku akan masuk ke dalamnya string yang saya ingin membagi. Dan kemudian dalam menggunakan semacam sintaks funky, yang Saya tidak tahu apakah kita akan mendapatkan, tapi mungkin, kami benar-benar akan menentukan tepat Karakter yang ingin kita berpisah di. Jadi, apa ini benar-benar terlihat seperti? Mari kita lihat benar-benar menjalankan kode ini. Jadi misalnya, katakanlah saya memiliki kuis dan aku 50 itu. Dan aku punya PSETs dan Aku punya seratus itu. Dan saya got-- ada lagi kuis dan aku punya 40 itu. Saya tekan Enter, dan akhirnya apa yang akan terjadi adalah bahwa apa yang dilakukannya adalah mengambil parameter ini, pemisahan string pada titik dua ini, mengakui bahwa ada dua elemen di masing-masing, dan pada dasarnya melacak masing-masing. Jadi saya miliki dalam kamus saya kuis, yang Nilai diwakili dengan jumlah 50, Saya memiliki PSET yang memiliki nilai 100, dan kuis satu yang memiliki nilai 40. Lalu kemudian di dalam kode saya sebenarnya rata-rata semua nilai-nilai dan daftar semua kunci kamus khusus. Tapi ini penting sehingga Anda dapat melihat apa yang terjadi, adalah bahwa apa yang kita ingin lakukan adalah untuk mengambil string ini dan membaginya di karakter ini, yang bisa kita lakukan lagi dengan perpecahan ini fungsi menggunakan semacam ini sintaks yang menarik yang ada di sini. Hanya untuk saat ini menganggap bahwa itu OK. Kita akan melihat lebih ini hanya beberapa saat. Tapi sekarang ada yang menarik aspek yang kita benar-benar ingin mencoba untuk mengubahnya string ke integer. Namun dalam bahasa lain apa yang mungkin terjadi adalah bahwa kita mungkin akan mencoba melakukannya dan baik kembali semacam sentinel nilai seperti negatif atau mungkin nol atau sesuatu seperti itu. Atau mungkin itu hanya akan menyebabkan kesalahan. Dan kita harus kemudian menangkap kesalahan yang dan kemudian mencoba untuk melakukan sesuatu berdasarkan fakta bahwa konversi ini ke integer gagal. Di situlah ide ini dari optionals masuk. Anda benar-benar dapat membuat tipe data yang adalah tanda tanya int, misalnya. Itu berarti bahwa bilangan bulat ini adalah, pada kenyataannya, opsional. Dan apa yang akan terjadi adalah bahwa hal itu mungkin mengandung integer, atau mungkin tidak. Mungkin, pada kenyataannya, menjadi ini lain Ide, seluruhnya disebut nill. Di mana itu berarti bahwa ada nilai apapun dalam hal ini. Ini bahkan tidak nol, tidak hanya ada nilai. Sama sekali tidak ada nilai yang diwakili. Dan itulah yang baris ini 71 lakukan. Adalah bahwa hal itu mengatakan bahwa saya ingin mencoba untuk menetapkan nilai, variabel disebut kelas, sama dengan konversi string ini ke int. Jadi saya telah mengambil string ini, ini komponen pertama, atau lebih tepatnya kedua komponen, karena ini adalah nol diindeks, ini string yang saya sudah berpisah. Dan saya ingin mengkonversi yang ke integer. Tapi itu mungkin tidak selalu melanjutkan biasanya, karena bayangkan apa yang akan terjadi jika, bukan jenis nomor, saya ketik saja seperti asdf. Itu akan gagal. Ini tidak benar-benar akan menjadi mampu mengkonversikan ke integer seperti yang saya harapkan. Jadi daripada kick off semacam kesalahan, kami memiliki ide ini opsional. Dan itu berarti bahwa menggunakan pertanyaan ini tanda yang bisa saya katakan, OK, apakah mungkin bahwa saya dapat mengambil ini, dikonversi menjadi sebuah int, dan memasukkannya ke dalam sebuah variabel, yang juga akan menjadi int. Jika demikian, maka itu berarti bahwa ini adalah sukses dan ini bagian pertama dari blok dapat melanjutkan. Jika tidak, itu gagal. Tidak ada nilai di grade-- atau bukan tidak ada nilai di yang ada, dan saya benar-benar harus mencoba untuk menangani kondisi kesalahan ini. Anda akan melihat ini tanda tanya sepanjang waktu di Swift dan dalam contoh kode untuk Swift. Dan pada kenyataannya operator nill, semacam ini dari tanda tanya, bagian optionals, akan menjadi mungkin salah satu hal yang lebih sulit untuk jenis membungkus kepala Anda sekitar Anda benar-benar bekerja dengan itu. Mungkin masuk akal sekarang. Dan pada kenyataannya, ketika saya masih menulis kode contoh untuk ini, tentu aku mengerti apa yang sedang terjadi, tapi masih menangkap saya dengan Kejutan setiap begitu sering ketika saya akan menemukan bahwa beberapa data sebenarnya versi nihil, versi opsional data yang kuharapkan. Jadi hanya menyadari bahwa jika Anda memiliki versi opsional Anda harus membongkar bahwa Data dari kotak ini. Jadi itu semacam Aku-- bayangkan jika Anda memiliki kotak dan berisi sesuatu. Dan apa yang perlu Anda lakukan adalah untuk mengajukan pertanyaan, adalah mungkin bahwa kotak ini sebenarnya berisi data yang saya cari? Jika demikian, lalu tarik data dan memasukkannya ke dalam variabel ini sudah ada. Jika tidak, maka saya hanya harus mengabaikan isi kotak ini sama sekali karena harfiah mengandung apa-apa. Pertanyaan ini? OK, mari kita menjauh dari ini semacam baris perintah berbasis dan mulai melihat beberapa teknologi bahwa Xcode menyediakan bagi kita dalam bentuk bermain. Jadi ada banyak Kemampuan di sini dengan Swift. Dan jika Anda membuka Xcode dan meminta Anda apa yang ingin Anda lakukan, Anda dapat membuka taman bermain dan hanya bermain-main dengan banyak struktur yang berbeda dan aspek bahasa bahkan sebelum Anda mulai menyentuh iOS SDK atau Mac SDK. Jadi kasus ini, mari kita mengatakan bahwa saya have-- Saya punya contoh yang relatif dibikin di sini, tapi beruang dengan saya seperti yang kita semacam dari bekerja melalui contoh ini. Mari kita mengatakan bahwa kita harus melakukan banyak eksponen dengan nilai tetap, seperti kita tahu bahwa kita akan perlu melakukan banyak kekuatan persegi, misalnya. Jadi kita akan mengambil beberapa nilai x, kita akan persegi itu, kita akan mengambil beberapa nilai y dan kita akan persegi itu. Seterusnya dan sebagainya. Sekarang kita mungkin sebenarnya hanya membuat kekuatan 2 fungsi untuk ini, kan? Jadi kita akan membuat kekuatan 2 fungsi. Kami akan menerima ganda. Kami akan output-- atau kita akan kembali jenis ganda. Kami akan mengambil hasil ini dan kemudian untuk dua kali apa yang sebenarnya kita mengambil hasil yang adalah yang diinisialisasi ke nilai satu, dan kalikan dengan x. Jadi pada intinya kita memiliki x kali x sini. Dan kemudian saya kemudian bisa, karena kita mungkin mengharapkan, ambil ini, menjalankan kuasa 2, menyediakan untuk itu beberapa data, saya suka 2.0. Dan kita bisa melihat hasilnya di sini 4.0. Jalankan kekuatan 2 pada 3,2 dan kami bisa melihat hasil kami, 10,24. Sejauh ini cukup baik, kan? Sekarang kita berpikir, baik, OK. Sekarang aku benar-benar perlu melakukan banyak kekuatan 3. Jadi saya akan copy paste semua kode ini, mengubah nama fungsi dari kekuatan 2 kekuasaan dari 3, dan semuanya akan sama kecuali nilai ini di sini, kisaran ini, 1 ... 2. Jadi daripada mengulangi lingkaran ini dua kali, Saya ingin mengulangi lingkaran ini tiga kali. Jadi saya hanya mengubah nilai dari 1 3-- atau lebih tepatnya 2-3. Jadi sekali lagi, kode yang sama, itulah satu-satunya perubahan. Sekarang ini juga bekerja. Kekuatan 3 diberikan dalam beberapa nilai 2. Kami mendapatkan 8. Jadi 2 potong dadu. Dan 3,2 potong dadu adalah 32,768. Dan sejauh ini begitu baik, kan? Tapi mudah-mudahan ini sedikit sedikit bendera merah untuk Anda bahwa kita sekarang memiliki beberapa duplikasi kode kecuali untuk beberapa sangat kecil berubah dari satu ke yang berikutnya. Jadi ada beberapa cara yang kita mungkin bisa menyederhanakan masalah ini, di mana kita benar-benar dapat, pada waktu berjalan, mencari tahu beberapa, memberikan kepada kita beberapa fungsi yang memiliki justru kekuatan yang kita inginkan. Dan ada gagasan ini penutupan, yang benar-benar, benar-benar penting dalam konteks Swift, dan dalam banyak bahasa lain juga. Tapi mungkin Anda akan melihat digunakan lebih di Swift karena itu tertanam dalam bahasa daripada Anda akan di lain juga bahasa modern. Jadi ide penutupan adalah ini, adalah bahwa kita dapat memiliki fungsi yang dimaksudkan untuk menjadi fungsi generik, kekuatan generik fungsi. Dan fungsi ini akan menerima eksponen ini yang kita benar-benar ingin membuat. Jadi misalnya, pertama Misalnya, kami ingin kekuatan 2. Jadi kita akan memberikan kekuatan dan kemudian dalam kurung 2. Dan sekarang perhatikan apa ini benar-benar kembali. Ini membutuhkan masukan dari primer disebut y yang adalah bilangan bulat, dan mengembalikan ini gila mencari hal dalam kurung parentheses-- ganda dan kemudian panah ganda. Apakah ini berarti bahwa aku akan kembali fungsi. Aku tidak kembali jenis lain dari data, saya sebenarnya kembali fungsi yang memiliki parameter ini, bahwa menerima ganda sebagai masukan dan output ganda sebagai nilai kembali. Dan sebagai hasilnya, karena sekarang aku sudah menelepon kekuatan, lewat di beberapa nilai y, dan aku membuat ini lain pemberitahuan function-- bahwa ada fungsi lain yang sedang dibuat dalam this-- apa yang saya lakukan adalah saya kemudian dapat mengubah nilai tersebut, yang nilai yang saya telah berubah 2-3, sekarang saya membuatnya y. Dan ini terus berlanjut. Jadi setiap kali saya sebut kekuatan dari, pada dasarnya apa yang terjadi adalah bahwa saya mendapatkan kembali fungsi. Perhatikan bahwa di sini saya telah didefinisikan variabel baru bernama persegi. Aku sudah mengaturnya sama dengan kekuatan, memberikan nilai ini 2 sampai kekuatan. Dan apa ini kembali adalah fungsi. Jadi persegi, variabel persegi, kini tipe fungsi yang memiliki this-- oops, gulir ke atas sebuah sedikit bit-- yang memiliki tanda tangan ini, menerima ganda dan output ganda. Jadi sekarang apa yang telah kulakukan adalah saya sudah pada dasarnya menciptakan fungsi yang disebut persegi yang menerima nilai apapun dan akan persegi itu. Kita bisa melihat apa yang terjadi di sini. Persegi 3 misalnya, berarti aku akan untuk mengambil nilai 3 dan kuadrat itu. Jadi bagaimana tepatnya cara kerjanya? Ketika saya melewati kekuatan 2-- ketika saya lulus 2 ke dalam kekuasaan ini fungsi, variabel ini adalah y diisi dengan nilai yang 2. Dan yang semacam diadakan di memori. Itu semacam suka diadakan di negara di suatu tempat di komputer, kita tidak benar-benar peduli bagaimana atau di mana pada saat ini. Tapi saya kembali fungsi ini disebut exponentiate. Dan lagi, itu tidak terlalu penting apa fungsi ini dipanggil, kita benar-benar bisa menyebutnya apa saja, yang menerima ganda dan mengembalikan ganda, tetapi menggunakan nilai ini y di dalamnya. Jadi meskipun itu fungsi ini, Fungsi exponentiater ini yang telah kembali kembali ke saya variabel yang aku menelepon persegi, telah terkandung di dalamnya Gagasan ini apa y itu. Dan ingat bahwa. Jadi setiap kali saya memanggil fungsi yang sekarang disebut persegi, menggunakan itu. Tapi ini juga berarti bahwa saya bisa membuat variabel lain menggunakan kekuatan yang berbeda. Jadi saya bisa membuat variabel kubus, untuk Misalnya, berikan itu kekuatan 3. Sekarang kubus benar-benar akan mengambil beberapa nilai dan kubus itu dan mengembalikannya. Jadi kita bisa melihat bahwa saya mendapatkan nilai 8 dari itu. Tapi itu nilai y belum berubah karena mereka diadakan di semacam variabel independen. Mereka semacam diadakan di ruang independen dalam memori. Jadi kubus akan selalu memiliki x pangkat 3. Dan persegi akan selalu memiliki x pangkat 2, yang berarti persegi yang selalu akan nomor persegi, seperti yang saya harapkan. Dan kubus akan selalu potong dadu angka, seperti yang saya harapkan. Ini juga berarti bahwa kadang-kadang Anda bisa mendapatkan semacam funky mencari sintaks di mana Anda memiliki kekuatan di bagian paling bawah layar di sini, kekuatan 5. Dan Anda masuk ke hasilnya. Anda memanggil fungsi yang dikembalikan dengan nomor 4. Dan jadi apa dasarnya ini adalah 4 sampai kekuatan kelima, kita bisa melihat hasilnya di sana. Dengan saya sejauh ini? Jadi, ide ini disebut penutupan, karena apa yang kita lakukan pada dasarnya adalah kita encapsulating beberapa data into-- semacam melampirkan data ini ke fungsi dan kami mampu menggunakan kembali fungsi ini. Sekarang sintaks ini meskipun sebenarnya bisa disederhanakan jumlah besar. Dan ada banyak kemungkinan di Swift untuk penyederhanaan ini. Dan itulah yang semacam itu yang selanjutnya benar-benar melihat. Jadi 7b misalnya, kita mengambil kode yang sama persis. Tapi sekarang bukannya sebenarnya mendefinisikan fungsi dalam kekuasaan ini berfungsi dan memberikan nama, dan kemudian kembali nama fungsi itu, yang kemudian digunakan sebagai bagian dari penutupan ini, bukan kita hanya akan menyederhanakannya. Kita tidak perlu fungsi ini diberi nama. Jadi ini adalah konsep fungsi anonim di mana kita bisa kemudian menerima sebagai masukan, dalam kurung di sini, x variabel yang bertipe double. Kita akan mengembalikan tipe double. Dan kemudian kata kunci, n, adalah awal fungsi ini. Jadi melihat bahwa semua ini adalah dalam kurung keriting dan kita mendefinisikan anonim berfungsi di sini. Hanya cara sederhana mendefinisikan hal yang sama persis. OKE? Tapi tunggu, Swift sebenarnya memungkinkan kita untuk melangkah lebih jauh dan menyederhanakan bahkan lebih, karena benar-benar kita tidak peduli bahwa parameter ini bernama hal tertentu. Hal ini dapat benar-benar disebut apa-apa dan kita masih bisa menggunakan parameter pertama. Jadi sebenarnya ada ini khusus jenis data dalam fungsi anonim, ada nama ini khusus variabel dalam fungsi anonim yang mulai dengan tanda dolar dan mewakili nomor parameter, nol diindeks, untuk fungsi ini. Jadi ada beberapa hal yang terjadi. Di sini saya akan kembali, dan kemudian penjepit keriting yang mewakili fungsi, yang tepat? Perhatikan bahwa saya tidak telah menetapkan jenis parameter atau jenis kembali. Hal sebenarnya dapat disimpulkan karena tanda tangan fungsi asli ini. Jadi kita bisa menghilangkan bahwa sebagai suatu kemungkinan. Tapi juga saya dapat menggunakan tanda dolar nol sampai merupakan parameter pertama ini yang dilewatkan ke fungsi anonim ini. Jadi menyederhanakan bahkan lebih. OKE? Sejauh ini, begitu baik? Sekarang type-- ini kau ingat dollar ini tanda nol yang kita lihat dalam kurung kurawal ini yang kita lihat hanya sebentar lalu dalam Swift enam contoh? Itu di sini. Perhatikan itulah apa yang kita sedang melihat, adalah bahwa kita sudah berpindah ke dalam fungsi perpecahan ini fungsi anonim yang memeriksa parameter pertama untuk melihat apakah sama dengan simbol usus. Dan itulah apa yang terjadi, adalah bahwa semua kita doing-- pengembalian kata kunci yang tersirat di case-- ini kita kembali nilai ini di mana kita membandingkan parameter pertama melawan usus karakter ini. Dan sehingga semacam demystifies ini. Dan Anda akan melihat konstruksi ini banyak dalam sintaks Swift, jadi jangan ingat- dalam pikiran ketika Anda mengambil melihat ini. Sekarang kita bisa turun rel sedikit dan pergi benar-benar mewah yang menunjukkan bahkan beberapa lebih dari kekuatan Swift. Anda bahkan mungkin akan melihat beberapa ini dalam kode sampel. Jadi itu sebabnya aku akan untuk menunjukkan hal ini kepada Anda. Pada dasarnya apa yang bisa kita lakukan adalah, pertama dari semua, itu adalah semacam perlu bagi saya untuk melaksanakan semua itu kekuatan kode karena jika Anda mengimpor Darwin perpustakaan, itu benar-benar termasuk fungsi disebut pow yang melakukan ini untuk Anda. Jadi kita dapat menyederhanakan bahkan lebih dan memiliki kuasa atas fungsi kita sekarang hanya menjadi indah satu kapal di mana kita hanya kembali fungsi anonim ini yang menerima dollar tanda 0 sebagai yang dasar dan y sebagai eksponen. Tapi kita bisa benar-benar, benar-benar mewah ketika kita menyadari bahwa Swift memiliki banyak daya di bawah tenda. Banyak operator yang kita sudah berhadapan dengan, ditambah tanda-tanda dan simbol-simbol perpecahan dan semua hal yang Anda biasanya beroperasi dengan dengan tipe data dalam bahasa pemrograman, sebenarnya extensible di Swift. Jadi apa artinya dalam kita yang dapat menentukan operator kita sendiri. Jadi sekarang saya lelah mengetik dalam semua ini pow dan kemudian kurung dan kemudian dasar. Saya tidak ingin melakukan itu. Aku benar-benar ingin memiliki Operator yang memungkinkan saya untuk melakukan itu. Jadi saya bisa mengatakan bahwa saya ingin Swift untuk membuat operator, bintang star-- dengan cara saya tidak dapat menggunakan karat karena karat yang merupakan operator yang melakukan sesuatu yang lain sama sekali. Jadi saya tidak ingin menyortir dari bertabrakan dengan itu. Dan apa yang Anda lihat dalam varietas bahasa, termasuk Python, seperti Operator bintang bintang untuk mewakili eksponen. Jadi itulah satu-satunya alasan mengapa saya telah melakukan itu. Dan itu akan menjadi operator jenis infiks. Dan saya harus memberikan untuk itu beberapa informasi tentang diutamakan ini Operator jadi asosiatif kiri. Ini seperti yang relatif didahulukan tinggi dibandingkan untuk penjumlahan atau perkalian. Ini prioritas lebih tinggi dari semua orang. Seterusnya dan sebagainya. Dan kemudian saya menentukan fungsi yang sebenarnya menentukan apa Operator ini tidak. Jadi asumsi bahwa saya memiliki kiri sisi dan sisi kanan, yang akan mungkin nama variabel yang lebih baik untuk ini. Sisi kiri dan sisi kanan. Saya kemudian dapat mengambil kekuatan ini dari sisi kiri ke sisi kanan dan mengembalikan nilai itu. Jadi sekarang itu super manis. Yang harus kita lakukan adalah bintang 2 star 3 dan itu adalah 2 pangkat ketiga, dan kita mendapatkan nilai 8. Bintang 2 Bintang 10 adalah 2 ke Kekuatan-10, kita mendapatkan 1.024. Jadi sekarang kekuatan kita fungsi, yang lagi berbeda, karena seluruh ide di balik ini adalah bahwa kita memiliki satu fungsi yang selalu mengambil beberapa nilai dan mengalikan itu-- atau lebih tepatnya mengambil eksponen dengan kekuatan yang sama. Jadi sekarang ini lebih sederhana. Jadi sekarang itu hanya dolar menandatangani 0 bintang y bintang. Kami bahkan tidak harus menggunakan pow lagi. OK, siapa yang hilang? Apakah kita melakukan OK? Pertanyaan tentang hal ini? Ya? AUDIENCE: Ketika you-- [tidak terdengar] kekuatan funk y ganda. Jadi, ketika Anda kembali fungsi. DANIEL Armendariz: Funk kekuatan y ganda. Oh ya, saya tidak tahu apa nomor y. Maaf tentang itu. AUDIENCE: Mengapa Anda kembali fungsi [tidak terdengar] kandang. Bukankah dolar bintang nol Bintang y [tidak terdengar] menemukan bahwa operator dengan itu kembali double [tak terdengar] dua kali lipat? DANIEL Armendariz: Jadi mari saya menjawab pertanyaan Anda bagaimana saya memahaminya dan Anda dapat memberitahu saya jika saya tidak mengerti pertanyaan Anda. Jadi membangun ini, penjepit keriting tanda dolar y bintang bintang nol, adalah fungsi. Dan ia menerima parameter yang diwakili oleh tanda dolar ini nol. Kembalinya kata kunci tersirat dalam sangat singkat, sintaks fungsi anonim. Yang berarti bahwa pada dasarnya apa ini mengatakan adalah bahwa saya mendefinisikan function-- dan kemudian aku akan sebut saja something-- di mana saya memiliki beberapa nilai y. Saya memiliki y, yang dua kali lipat. Dan aku kembali ganda. Dan aku punya dalam pengembalian yang y-- maaf, Saya tidak harus disebut x y-- ini. Oh sayang, oh sayang, oh sayang. X-- nope-- bintang bintang y. Jadi ini hanya versi sederhana dari ini. Dan alasan bahwa saya punya dolar Tanda nol adalah bahwa menggunakan kandang ini berarti bahwa saya tidak lagi memiliki untuk mengetik pow, atau tidak lagi melakukan Saya harus melakukan sesuatu seperti bintang 3 bintang 2. Aku hanya bisa memiliki satu fungsi yang disebut persegi yang akan selalu mengambil beberapa nilai sebagai masukan dan benar-benar kembali alun-alun itu. Jadi seluruh tujuan penutupan tersebut hanya semacam merangkum fakta bahwa saya selalu ingin menggunakan y kapanpun Saya memanggil fungsi itu sebagai kekuatan saat mengambil eksponen ini. Jadi kembali kemudian, sebuah fungsi yang menerima ganda, yang merupakan dasar, dan mengembalikan hasil eksponen yang adalah kunci di sini. Dan itulah perbedaan utama. Hanya ada sedikit penuh gaya. Hal ini tidak berbeda dibandingkan dengan contoh sebelumnya, tapi itu hanya sedikit a berkembang kita bisa benar-benar membuat operator di Swift dan benar-benar melakukan hal-hal dengan itu, yang merupakan jenis hal yang keren. Apakah saya menjawab pertanyaan Anda? Manis. Ada lagi sebelum kita melanjutkan? OKE. Sekarang ini semacam menimbulkan yang dimaksud adalah itu-- juga OK, sekarang kami memiliki kemampuan untuk fungsi yang harus dikembalikan. Bisakah kita juga melewati fungsi sebagai data atau sebagai parameter untuk fungsi lain? Dan sebenarnya kita bisa. Jadi mari kita mengatakan bahwa kita memiliki semua kode yang sama. Kami memiliki variabel persegi yang akan persegi kode ini. Dan kami memiliki variabel kubus yang akan kubus beberapa data. Dan kita benar-benar ingin menerapkan untuk berbagai angka. Jadi apa yang kita mungkin tergoda untuk melakukan, Tentu saja, yang tentunya berlaku, adalah untuk iterate atas daftar ini nomor dan menerapkan fungsi saya persegi dan kubus dan mendapatkan dua daftar baru hasil yang daftar ini asli kuadrat dan potong dadu, masing-masing. Benar-benar diterima. Tapi apa hal yang kita lihat di sini adalah bahwa kita memiliki, lagi, duplikasi kode kita. Dan ada mungkin kesempatan bagi kita untuk menyederhanakan ini sedikit. Bagaimana jika ada cara bagi kita untuk sebenarnya selalu iterate atas beberapa daftar dan hanya lolos ke ajaib fungsi variabel yang merupakan fungsi bahwa kita ingin menerapkan untuk setiap produk dalam daftar ini. Ini membawa pada konsep apa disebut fungsi orde tinggi. Dan pada dasarnya itulah yang ini adalah, adalah bahwa kita dapat membuat fungsi. Dan dalam hal ini yang disebut mapper, hanya untuk memberikan nama, hanya pemetaan atas setiap item tunggal dalam daftar. Di mana saya mengambil daftar dan saya mengambil fungsi. Dan fungsi yang, tentu saja, memiliki tanda tangan tertentu. Ia menerima sebagai parameter ganda dan itu akan menampilkan adalah ganda. Dan seluruh hasil Fungsi ini akan menjadi daftar baru yang bertipe double. OKE? Dan apa yang akan saya lakukan adalah untuk menerapkan fungsi ini f untuk setiap elemen dalam daftar saya. Dan reply-- dan agak kembali ini baru daftar sebagai hasil, yang benar-benar keren. Sekarang saya bisa melewati fungsi sekitar. Dan ide ini tatanan yang lebih tinggi fungsi benar-benar penting. Dan mapper ini benar-benar hanya Pelaksanaan orang miskin dari fungsi yang dibangun ke Swift disebut peta. Dan itu justru ini, bahkan mungkin sedikit lebih baik. Ini hanya semacam generik, versi sederhana yang memungkinkan kita untuk melihat Konsep yang berlaku di sini. Sekarang melihat cara yang saya benar-benar dapat menerapkan persegi saya dan fungsi kubus untuk ini daftar nomor. Saya menjalankan mapper saya. Saya berikan itu saya daftar nomor. Saya berikan untuk itu yang fungsi yang akan berlaku untuk masing-masing indeks. Dan itu akan menjadi output hasilnya. Dan aku akan bisa melihat bahwa saya telah kuadrat dan potong dadu nomor saya sebagai hasilnya. Dan tentu saja mapper akan mengambil apapun fungsi anonim. Kita bahkan bisa melihat bahwa saya buat fungsi anonim baru yang hanya membutuhkan beberapa parameter dan membaginya dengan 2. Dan kita bisa melihat bahwa saya sudah, pada kenyataannya, dibagi daftar saya dengan 2 sebaliknya. Keren? Sejauh ini, begitu baik? Baiklah, sekarang mari kita kembali ke ide ini. Mari kita menerapkan ini kembali di konteks gradebook a. Dan jika saya melakukan itu, kita dapat melihat bahwa saya bisa menerapkan berbagai options-- ini atau berbagai ini fungsi orde tinggi untuk benar-benar menyederhanakan kemampuan saya untuk melakukan berbagai hal dalam daftar nomor. Jadi misalnya, jika saya mengambil daftar nomor, salah satu fungsi orde tinggi yang ada disebut mengurangi. Apa mengurangi tidak lebih dari peta, berkurang akan mengambil dua unsur dalam daftar, akan mengambil beberapa fungsi yang membandingkan dua elemen daftar, dan kemudian akan semacam output-- yang output fungsi yang akan unsur lain yang Anda kemudian dibandingkan dengan orang lain. Jadi, Anda bisa menggunakan ini untuk benar-benar jumlah angka dalam daftar Anda. Sebagai contoh, jika Anda memiliki daftar 1, 2, 3, 4, 5, Anda mengambil elemen pertama, 1 dan 2. Anda dapat mengajukan permohonan untuk itu tambahan fungsi yang mengambil dua elemen dan meludah keluar salah satu elemen, yang akan menjadi nilai 3. Kemudian kita mengambil nilai yang 3 dengan berikutnya unsur daftar, jumlah kedua, dan kemudian terus ke bawah daftar. Kami mengurangi daftar ke nilai tunggal. Dan kebetulan bahwa simbol ditambah adalah operator, seperti yang kita hanya melihat. Operator ini sebenarnya fungsi yang memiliki tepatnya daftar ini yang kita ingin, bukan sifat ini yang kita inginkan. Jadi saya mendorong Anda untuk lihatlah ini. Saya ingin menyortir bergerak pada dari beberapa kode ini sehingga kita benar-benar dapat melihat beberapa aktual, nyata, Swift benar di Xcode, dalam pengembangan iOS. Tapi lihatlah ini dan lihat apakah Anda bisa mengurai melalui apa yang terjadi dengan beberapa dari tatanan yang lebih tinggi fungsi termasuk filter, mengurangi, dan Anda akan lebih lihat di suatu tempat di sini peta juga. Ada di sini. Di mana ia akan mengambil urutan nilai dan itu akan benar-benar peta mereka menggunakan saklar membangun, yang mungkin Anda mengenali dari C, namun sebenarnya lebih banyak kuat dari saklar membangun yang kita miliki di C. Dan kita akan menerapkan bahwa untuk setiap elemen dalam daftar dan benar-benar memberikan huruf kelas masing-masing mereka nilai menggunakan semua konsep-konsep ini bahwa kita baru saja bicarakan sebelumnya. Sekarang mari kita menghindari untuk hanya menit dan berbicara tentang struct. Dan struct adalah menunggu di C yang kita mampu menentukan jenis baru data. Structs ada dalam Swift. Demikian banyak konstruksi lainnya disebut enum dan kelas, yang benar-benar mengambil ide ini ke Seluruh tingkat yang berbeda. Dan pada dasarnya itu hanya cara mendefinisikan tipe data baru. Jadi, jika Anda get-- jika Anda datang di kelas atau struct atau enum, jangan bingung olehnya. Ini hanya cara mendefinisikan beberapa jenis tertentu data baru. Dan ini benar-benar penting ketika kita berbicara tentang pengembangan aplikasi iOS karena segala sesuatu yang ada dalam aplikasi iOS pada dasarnya obyek dari beberapa jenis. Dan objek pada dasarnya adalah kelas atau enum atau struct. Jadi dalam hal ini saya mendefinisikan tipe data baru bahwa aku menelepon penilaian itu beberapa properti, termasuk nama dan urutan nilai. Jadi salah satu jenis penilaian bahwa aku mungkin ada dalam pikiran akan kuis, misalnya. Saya ingin memiliki Penilaian itu kuis dan yang memiliki berbagai nilai terkait dengan itu, untuk kuis satu, kuis dua, seterusnya dan sebagainya. Atau aku mungkin memiliki jenis yang berbeda penilaian untuk masalah set. Dan aku bisa melakukan hal-hal. Aku benar-benar dapat memiliki fungsi dalam jenis ini data, yang sekarang disebut metode. Jadi, jika Anda pernah melihat Metode kata, itu benar-benar hanya fungsi yang berlaku untuk kelas yang sangat spesifik, atau jenis yang sangat spesifik data. Hal ini memungkinkan kita untuk memodifikasi data dalam. Jadi dengan kata lain, jika saya ingin menambahkan kelas untuk penilaian saya, maka semua harus saya lakukan adalah untuk menambahkan nilai yang masukan untuk fungsi ini untuk Properti internal saya. Ada membangun lagi rapi di sini di Swift, yang merupakan titik ini dot dot operator, yang berarti bahwa nilai dapat sekarang menerima sejumlah bilangan bulat. Dan skor akan menjadi array bilangan bulat yang telah dilewatkan ke fungsi saya, yang berarti bahwa saya bisa melakukan hal-hal seperti ini. Aku bisa melakukan menambahkan nilai dan hanya menyediakan nomor sewenang-wenang bilangan bulat ke dalamnya dan benar-benar diberikan array dari nilai-nilai dalam fungsi saya atau dalam metode saya, seperti yang terjadi. Sekarang ini penting karena segala sesuatu di Xcode, segala sesuatu di iOS, sebenarnya obyek. Jadi ingat-ingat ketika kita bust Xcode terbuka dan langsung beralih melampaui iOS versi dua dan tiga dan benar-benar pergi ke versi empat. Dan lagi, semua ini akan diposting pada halaman seminar. iOS empat adalah semacam penuh sesak nafas pelaksanaan aplikasi yang sangat dasar. Dan apa aplikasi ini dilakukan adalah beban UI, yang terlihat seperti ini. Sekali lagi, jika kita klik pada storyboard kita bisa melihat bahwa ini adalah apa yang tampak seperti. Ini adalah UI. Memiliki gelar di bagian paling atas. Saya sudah menyebutnya galeri web. Di tengah ada unsur disebut tampilan gambar UI. Dan di bagian bawah ada toolbar dengan tombol yang memiliki ruang elastis yang memungkinkan untuk pusat di tengah toolbar ini. Dan apa yang terjadi adalah bahwa ketika ini beban mendownload file JSON yang yang terdapat pada server di tempat lain, mengurai file JSON, dan file JSON terlihat sedikit seperti ini. JSON file terlihat seperti ini. Itu ada. Ini memiliki nama album dan memiliki array foto. Masing-masing foto memiliki nama dan juga URL sendiri yang mewakili Versi jpeg itu foto pribadi. Jadi apa yang terjadi adalah bahwa ketika program ini beban, itu download file JSON, mem-parsing itu, menempatkan semua ini menjadi setara dengan sebuah array di iOS pengembangan aplikasi, yang merupakan NSArray. Dan kemudian saya kemudian dapat memuat Data ini menjadi sebuah aplikasi dan beban di layar saya. Ada gambar yang dimuat dengan tombol di bagian paling bawah. Jika saya klik Get Gambar Berikutnya, kemudian menarik gambar yang dari internet dan menggantikan gambar yang dalam tampilan gambar UI. Jadi Anda dapat men-download ini dan benar-benar kita lihat pada komputer Anda. Dan membangun dan benar-benar compile ke perangkat Anda. Tapi pada dasarnya proses itu ini, membuat storyboard-- yang atau lebih tepatnya tidak create-- tapi pilih storyboard. Dan sebenarnya we'll-- jika Anda tidak mind-- kita akan mengambil hanya beberapa detik untuk benar-benar menunjukkan cara ini dilakukan. Hanya sehingga bagaimana kita bisa benar-benar mencapai hal ini dibuat sedikit lebih jelas. Tunggal tampilan aplikasi, aku akan memanggil seminar ini empat mewakili ini nomor tertentu. Simpan di desktop. OK, akan klik pada storyboard. Dan apa yang akan saya lakukan adalah untuk menemukan tampilan gambar saya, drag ke pengguna saya interface dan pusat itu. Sekarang hanya berpusat sayangnya tidak akan melakukan banyak, kecuali untuk layar yaitu ukuran yang tepat ini. Jadi kita bisa meyakinkan diri kita bahwa dengan mengklik ini hal lingkaran ganda, menjatuhkan pop ini up menu di sini dan mengubah untuk melihat, di mana kita akan benar-benar mendapatkan kesempatan untuk melihat bagaimana ini akan benar-benar terlihat pada perangkat lain. Seperti yang kita lihat, kita bahkan tidak melihatnya di kasus ini. Jadi aku akan menutup ini untuk saat ini. Dan aku akan memilih icon ini turun di bagian paling Bagian bawah layar. Dikatakan Selesaikan Auto Tata Letak Isu. Maaf, itu dipotong di bagian bawah. Tapi kalau saya klik pada itu, apa yang saya dapatkan adalah pop ini up-- pergi. Apa yang saya dapatkan adalah pop up ini yang memungkinkan saya untuk menambahkan kendala yang hilang. Dan dengan melakukan itu kemudian semacam menguncinya ke bagian tengah layar seperti saya harapkan. Sekarang untuk mendapatkan tombol ini pada atasnya, saya harus pergi ke Editor. Pergi ke Embed Dalam dan klik Navigasi Controller. Apa yang akan Anda lakukan adalah yang akan menambah Seluruh komponen ini lain untuk itu, tapi itu benar-benar akan menghubungkan kembali ke UI asli saya. Dan rincian, sekali lagi, kita tidak benar-benar perlu peduli sekarang. Tapi aku ingin memiliki toolbar di bagian paling bawah. Jadi saya akan memeriksa Shows Toolbar. Dan ini memberikan dalam pandangan saya, yang sekarang di tempat lain, kita bisa melihat itu terkait di sini. Saat ini telah menyediakan toolbar di bagian bawah UI. Jadi sekarang, daripada memilih lihat gambar, saya dapat menemukan label, atau lebih tepatnya toolbar-- sebuah mari kita lihat, di mana itu? Apa itu namanya? Item button-- bar-- item-- sorry-- bar tombol item. Celepuk yang ada dan menerapkan beberapa ruang yang fleksibel di kedua sisi untuk benar-benar pusat itu. Jadi sekarang saya telah membuat UI saya, pada dasarnya. Dan saya bisa memberikan nama dengan mengklik ganda di bagian paling atas di sini dan mengatakan galeri web dan sebagainya. Sekarang lagi, ini adalah elemen yang ada dengan sendirinya. Dan saya harus menghubungkan mereka untuk kode saya yang Saya bisa lakukan dengan membawa lagi up ini ikon lingkaran ganda, berubah dari preview. Yang, by the way, sekarang kita bisa lihat adalah baik terpusat dan akan terlihat baik pada berbagai perangkat. Beralih ke otomatis, yang akan membuka kode ViewController. Dan sekarang bagian ini penting. Agar Anda untuk menghubungkan ini dua elemen, kode Anda ke UI, Anda memilih item yang Anda ingin menghubungkan. Jadi dalam hal ini, kita benar-benar ingin untuk mengkodekan mengubah gambar yang terkandung dalam hal ini tampilan gambar UI. Jadi jika Anda mengontrol klik dari tampilan gambar dan drag, Anda akan melihat bahwa Anda mendapatkan sebuah bar kecil, ketika Anda melepaskan semua pop ini up akan terjadi. Dan ia mengatakan bahwa kita akan membuat sambungan. Dan dari sini saya ingin memberikan nama, seperti galeri. Tekan Enter. Dan ini benar-benar menyediakan variabel yang disebut galeri bahwa saya kemudian dapat referensi dalam kode saya untuk mengubah gambar, misalnya. Jadi bagaimana kode yang benar-benar melihat? Nah lagi, saya tidak ingin menghabiskan terlalu banyak waktu di atasnya. Dan saya mendorong Anda untuk men-download dan melihat. Tapi salah satu yang paling Aspek penting adalah kode yang benar-benar menjemput gambar. Jadi dalam hal ini saya ingin untuk mendapatkan dalam foto saya array, yang terkandung dalam kelas saya. Saya ingin menentukan nama dan URL yang telah dipecah dari JSON ini. Benar-benar meminta perangkat untuk mendapatkan URL, untuk mengambil URL dari ini, dan kemudian mengambil data dari isi URL itu. Kemudian mengkonversi data menjadi gambar dengan melewatkan ke gambar UI. Jadi sekali lagi, ini adalah jenis semua berbeda benda, berbagai jenis kelas. Dan kemudian saya kemudian dapat mengatur saya gallery.image sama dengan data tersebut. Dan itu semacam daging itu yang benar-benar kemudian mampu mengubah data from-- perubahan gambar dari satu ke yang berikutnya. Jadi sekali lagi, mudah-mudahan sekarang banyak konstruksi akan membuat sedikit lebih masuk akal. Perhatikan bahwa ada beberapa tanda seru di sini. Poin seru yang dasarnya terkait dengan optionals. Apa yang saya katakan adalah pada dasarnya bahwa tanpa memeriksa untuk melihat apakah ada data yang dalam hal ini opsional, Aku akan pergi ke depan dan menganggap bahwa ada dan membukanya. Ingat bahwa kita menggunakan analogi semacam paket untuk optionals dan kita perlu membukanya dengan paket dan menarik data keluar. Tanda seru kekuatan yang benar-benar terjadi. Tapi aku tahu bahwa ini adalah aman karena saya diperiksa untuk melihat apakah data gambar sama nil, saya sudah benar-benar memeriksa untuk melihat apakah yang opsional adalah, pada kenyataannya, gagal. Jika itu telah, pada kenyataannya, gagal sudah. Dan aku yakin bahwa sekali saya mendapatkan ini titik aku bisa membuka bungkusan data tersebut. Anda juga bisa melihat dalam bentuk tanda tanya. Jadi jika kita gulir ke bawah ke tempat saya harus benar-benar mengurai data. Jadi jangan menunda oleh semacam ini nama-nama yang panjang. Anda dapat menemukan di Apple Situs pengembang banyak referensi untuk semua objek dan semua proses yang benar-benar membuat ini mungkin. Tapi perhatikan bahwa ini pada dasarnya fungsi di mana saya lulus beberapa data. Dan aku kembali beberapa jenis data. Dan saya harus menggunakan ini sebagai kata kunci untuk mengubahnya menjadi NSDictionary ini? Yang lagi, sebuah NSDictionary opsional. Yang kemudian perlu memeriksa untuk melihat apakah itu ada. Jadi saya bisa menggunakannya jika membiarkan equals sukses diurai, maka saya tahu bahwa itu opsional sebenarnya mengandung beberapa data. Atau apa yang saya lakukan di sini adalah untuk hanya berasumsi bahwa jika ada tidak ada kesalahan yang sebenarnya aman. Baiklah, saya ingin berterima kasih Anda semua sangat banyak untuk datang. Saya tahu ini adalah banyak, tapi itu hanya satu jam untuk berbicara tentang beberapa hal yang cukup canggih. Dan mudah-mudahan Anda akan mendapatkan kesempatan untuk men-download semua kode dan mengambil yang lebih baik, lebih melihat secara menyeluruh di dalamnya. Semacam meyakinkan diri sendiri dari semua dari hal-hal yang terjadi. Dan saya ingin mengucapkan terima kasih semua, sekali lagi, untuk datang. Dan semoga sukses dengan proyek akhir Anda. Semoga hari Anda menyenangkan.