7 days of WordPress plugins, themes & templates - for free!* Unlimited asset downloads! Start 7-Day Free Trial
Advertisement
  1. Code
  2. Swift

iOS dari awal dengan Swift: Swift dalam a Nutshell

Scroll to top
Read Time: 12 mins
This post is part of a series called iOS From Scratch With Swift.
iOS From Scratch With Swift: Creating Your First iOS Application
iOS From Scratch With Swift: More Swift in a Nutshell

Indonesian (Bahasa Indonesia) translation by Andy Nur (you can also view the original English article)

Apple memperkenalkan bahasa pemrograman Swift selama konferensi pengembang tahunan pada tahun 2014, banyak yang ia mengejutkan komunitas pengembang. Perusahaan serius tentang Swift, bukan percobaan. Tujuan untuk Swift adalah untuk kekuasaan generasi berikutnya aplikasi untuk Apple platform.

Prasyarat

Pemrograman

Tidak mungkin untuk menutupi dasar pemrograman dan belajar Swift dalam satu atau dua artikel. Saya karena itu mengasumsikan bahwa Anda sudah memiliki beberapa pengalaman pemrograman. Ruby, PHP, atau JavaScript yang baik mulai poin untuk belajar Swift. Jika Anda datang dari latar belakang pengembangan web, maka Anda seharusnya tidak memiliki masalah belajar dasar-dasar Swift dengan membaca dua artikel berikutnya.

Swift

Dalam dua artikel berikutnya, saya akan menunjukkan kekuatan bermain, sebuah fitur yang diperkenalkan di Xcode 6. Kami juga mencakup dasar-dasar bahasa pemrograman Swift, variabel, konstanta dan jenis data, termasuk set, array, dan kamus.

Anda juga belajar dasar-dasar kelas dan struktur. Dalam artikel berikutnya, kita zoom in pada penutupan, fungsi, protokol, dan kontrol akses. Itu akan memberikan Anda pemahaman yang cukup dari bahasa untuk menyelesaikan sisa seri ini.

Tujuan-C

Tegasnya, C dan tujuan-C tidak diperlukan jika Anda tertarik dalam pengembangan untuk iOS platform. Yang mengatakan, sebagian besar kerangka kerja yang kita akan gunakan untuk mengembangkan aplikasi iOS ditulis dalam C dan Objective-C. Ini berarti bahwa aku kadang-kadang akan berbicara tentang C dan Objective-C. Jangan khawatir, walaupun, saya akan memastikan bahwa Anda memahami apa pun sangat penting untuk tetap pada jalur untuk mencapai tujuan Anda, menjadi pengembang iOS.

Xcode dan Swift

Sepanjang seri ini, saya akan menggunakan Xcode 7,1 dan Swift 2.1. Jika Anda menggunakan versi lama dari Xcode, maka perlu diingat bahwa Anda tidak akan bekerja dengan Swift 2.1. Swift terus berubah dengan pesat dan sintaks yang berevolusi dengan setiap perulangan dari bahasa. Karena itu, saya sarankan menggunakan Xcode 7.1, yang mencakup Swift 2.1.

1. Taman Bermain

Pada tahun 2014, Apple memperkenalkan bermain sebagai bagian dari Xcode 6. Taman Bermain besar untuk belajar bahasa pemrograman yang cepat. Dengan bermain, Anda dapat fokus pada kode Anda menulis bukan main dengan Seting Proyek, file dan folder.

Mari kita membuat Taman Bermain untuk mulai belajar dasar-dasar Swift. Api up Xcode 7.1 dan pilih New > Playground... dari menu File Xcode's. Bermain mendukung OS X, iOS dan tvOS. Set Platform untuk iOS dan nama Taman Bermain Swift singkatnya.

Create a PlaygroundCreate a PlaygroundCreate a Playground

Memberitahu Xcode mana Anda ingin menyimpan Taman Bermain dan klik buat. Pada pandangan pertama, sebuah Taman Bermain tampaknya sederhana file dengan ekstensi .playground, tapi itu benar-benar folder dengan beberapa file. Untungnya, itu tidak sesuatu yang kita perlu khawatir. Taman Bermain lebih mudah untuk berurusan dengan daripada Xcode proyek dengan puluhan file dan folder.

Playground User InterfacePlayground User InterfacePlayground User Interface

User interface bermain bersih dan sederhana. Anda dapat melihat editor kode di sebelah kiri dan output di sebelah kanan. Xcode sudah telah diisi tempat bermain dengan tiga baris kode. Baris pertama harus tampak akrab jika Anda sudah membaca tutorial sebelumnya.

Baris dimulai dengan dua garis miring maju, / /, menunjukkan bahwa baris ini adalah komentar dan diabaikan oleh kompilator. Komentar yang menyertakan beberapa baris dimulai dengan / * dan berakhir dengan * /.

Xcode juga menambahkan pernyataan impor untuk kerangka UIKit. UIKit adalah kerangka yang paling penting untuk pengembangan iOS. Itu mendefinisikan blok bangunan iOS aplikasi dibangun dengan. Dalam Swift, mengimpor kerangka sebagai sederhana seperti menggunakan kata kunci impor yang diikuti dengan nama kerangka, UIKit.

Baris terakhir mungkin mengingatkan Anda beberapa JavaScript. Kami menggunakan var kata kunci untuk mendeklarasikan variabel, str, dan menetapkan nilai itu, "Halo, bermain anak". Contoh ini segera menunjukkan ciri utama dari Swift, jenis kesimpulan.

Contoh di atas agak menyesatkan. Anda mungkin berpikir bahwa Swift adalah bahasa diketik lemah, tapi tidak ada yang bisa lebih jauh dari kebenaran. Variabel str adalah jenis String. Swift cukup cerdas untuk menyimpulkan jenis str dengan melihat nilai yang kita tetapkan.

Contoh berikut setara. Dalam contoh ini, kita secara eksplisit menetapkan jenis variabel str. Usus besar berikut nama variabel dapat dibaca sebagai jenis.

2. variabel dan konstanta

Swift juga mendefinisikan biarkan kata kunci. Kata kunci ini digunakan untuk menyatakan konstan. Bahasa pemrograman Swift mendorong penggunaan konstanta sedapat mungkin. Jika nilai dari variabel tidak berubah selama hidup, harus konstan. Seperti namanya, setelah konstan diberikan nilai, ini tidak boleh diubah. Ini digambarkan dalam contoh berikut.

The value of a constant cannot be changedThe value of a constant cannot be changedThe value of a constant cannot be changed

Dalam contoh di atas, kami menyatakan pesan yang konstan dan menetapkan nilai. Beberapa garis bawah, kami menetapkan nilai baru untuk pesan yang terus-menerus. Karena kita mencoba untuk mengubah nilai pesan, kompilator melempar kesalahan. Untungnya, kompilator membuat saran untuk memperbaiki masalah, mengubah pesan konstan ke variabel.

3. data jenis

Swift mendefinisikan berbagai macam tipe data, tapi mari kita lihat beberapa jenis data yang paling umum yang Anda akan datang di.

Boolean

Mari kita mulai dengan sebuah tipe sederhana, Bool. Boolean di Swift hanya sebagai sederhana dan mudah digunakan karena mereka adalah dalam bahasa lain. Contoh berikut mungkin yang sederhana seperti mendapat di Swift.

Nomor

Angka yang diwakili oleh Int, Float, UInt, atau Double. Ada jenis data lain untuk menyimpan nilai-nilai angka, tapi ini adalah yang paling umum. Jenis data mirip dengan yang ditemukan dalam bahasa pemrograman lain.

Karena Swift adalah bahasa diketik kuat, Anda perlu berurusan dengan jenis konversi dari waktu ke waktu. Sebagai contoh, tidaklah mungkin untuk memperbanyak Int dan Float. Lihatlah contoh berikut untuk lebih memahami masalah.

Type ConversionType ConversionType Conversion

Pada awalnya, ini mungkin tampak seperti kekurangan utama bahasa Swift. Kebenaran adalah bahwa perilaku ini terkandung dalam bahasa diketik paling kuat. Untungnya, Solusinya sederhana seperti yang Anda lihat di bawah ini.

Converting a NumberConverting a NumberConverting a Number

Meskipun mungkin tampak seolah-olah kita yang pengecoran mengambang, itulah tidak apa yang terjadi. Kita menciptakan atau initializing pelampung menggunakan nilai yang disimpan dalam.

Ada dua cara untuk membuat variabel atau konstan, harfiah sintaks dan sintaks initializer. Konstanta dan b diciptakan menggunakan sintaks harfiah. Variabel str kita bahas sebelumnya adalah contoh lain dari sintaks harfiah.

Untuk membuat pelampung dari nilai yang disimpan dalam, kami menggunakan sintaks initializer. Kami membuat mengapung dengan menggunakan nama jenis, Float, diikuti oleh dua tanda kurung, melewati dalam sebagai parameter.

String

Kami sudah mengalami beberapa string dalam tutorial ini. String adalah tidak lebih daripada urutan karakter. Pada kenyataannya, dimungkinkan untuk mengakses koleksi karakter seperti ditunjukkan pada contoh di bawah.

Dalam contoh di atas, kita menggunakan string literal. Berikutnya contoh menggambarkan cara menggunakan initializer tipe String. Sintaks identik dengan apa yang kita lihat dalam salah satu contoh sebelumnya tentang jumlah dan jenis konversi.

Koleksi

Perpustakaan standar Swift mendefinisikan tiga umum jenis koleksi, Array, Kamus, dan Set. Jenis koleksi ini memerlukan penjelasan kecil jika Anda terbiasa dengan Objective-C atau bahasa pemrograman lain. Dalam beberapa bahasa, kamus yang dikenal sebagai hash dan array dikenal sebagai daftar. Ide, namun, adalah sama.

Array dan kamus diinisialisasi menggunakan sintaks harfiah. Karena jenis Set tidak memiliki sintaks yang literal, kita menggunakan sintaks initializer untuk membuat konstan mySet.

Saya sudah sebutkan bahwa Swift adalah bahasa diketik kuat dan ini juga memiliki konsekuensi untuk koleksi jenis. Contoh berikut menggambarkan hal ini. Kita mulai dengan membuat arr1 variabel jenis [Int]. Ini berarti bahwa arr1 hanya dapat berisi nilai-nilai tipe Int.

Collection TypesCollection TypesCollection Types

Pernyataan kedua dan ketiga mengkonfirmasi hal ini. Menambahkan integer bekerja baik-baik saja, tetapi menambahkan string mengakibatkan kesalahan kompilator. Kompilator mencoba untuk mengkonversi "Dua" ke Int, tetapi tidak mampu melakukannya. Hasilnya adalah sebuah kesalahan.

Contoh berikut akan membuat hal lebih membingungkan. Mengapa tidak kompilator mengeluh tentang array yang berisi nilai-nilai dari berbagai jenis? Alasan mungkin akan mengejutkan Anda. Konstan arr2 adalah jenis [AnyObject].

Apapun dan AnyObject

Perpustakaan standar Swift mendefinisikan dua jenis khusus, apapun dan AnyObject. Jenis dapat mewakili jenis sedangkan tipe AnyObject dapat mewakili setiap kelas atau struktur. Jika Anda bingung, maka itu hal yang normal. Swift dirancang untuk sangat diketik dan tampaknya sebagai jika ada dan AnyObject merusak Swift jenis keamanan.

Alasan untuk memperkenalkan apapun dan AnyObject terutama untuk alasan kompatibilitas. Saya sudah sebutkan bahwa sebagian besar kerangka kerja yang digunakan untuk pengembangan kakao ditulis dalam C dan Objective-C. Tujuan-C mendefinisikan jenis id, yang mewakili objek apapun. Untuk memastikan bahwa Swift dan kerangka kerja yang kakao dapat bekerja bersama-sama, Swift standar Perpustakaan diperkenalkan apapun dan jenis AnyObject. Kita akan mempelajari lebih lanjut tentang ini ketika kita mulai bekerja dengan kerangka kakao.

4. kelas dan struktur

Kelas

Jika Anda terbiasa dengan pemrograman berorientasi obyek, maka Anda sudah harus akrab dengan kelas. Kelas cukup biasa di Swift. Lihatlah contoh berikut di mana kita mendefinisikan kelas, perahu, dengan dua sifat, kecepatan dan sekoci, dan metode, deployLifeboats().

Inisialisasi dan memodifikasi instance kelas kapal sangat mudah seperti yang Anda lihat di bawah ini. Memanggil metode instance tidak magis baik. Dasar-dasar cepat kelas mudah untuk memahami. Kan?

Struktur

Mari kita sekarang membuat struktur yang terlihat sangat mirip dengan kelas perahu dan mencari tahu apa yang membedakan kelas dan struktur di Swift.

Contoh berikut menunjukkan perbedaan paling penting antara Swift kelas dan struktur.

Difference Between Classes and Structures in SwiftDifference Between Classes and Structures in SwiftDifference Between Classes and Structures in Swift

Contoh ini menggambarkan bahwa kelas yang disahkan oleh referensi sementara struktur yang melewati nilai. Apa maksudnya? Kami diinisialisasi contoh perahu, ditugaskan untuk boat1, dan mengatur properti kecepatan sampai dengan 11.0. Kami ditugaskan boat1 boat2. Ini berarti bahwa boat2 memiliki referensi ke boat1. Boat1 dan boat2 menunjukkan contoh perahu yang sama. Hasilnya adalah bahwa pengaturan kecepatan milik boat2 juga memodifikasi properti kecepatan boat1.

Hal ini tidak benar untuk struktur. Kami mengulangi langkah yang sama menggunakan struktur kapal. Hasil akhirnya berbeda though. Dengan menetapkan ship1 untuk ship2, nilai ship1 adalah disalin dan disimpan dalam ship2. Ini berarti ship1 dan ship2 titik untuk objek yang berbeda, contoh-contoh yang berbeda dari struktur kapal. Ini adalah konsep yang sangat penting untuk memahami jadi pastikan Anda mengerti hal ini sebelum melanjutkan.

Konsekuensi

Anda sudah telah diperkenalkan untuk jenis data yang umum didefinisikan oleh Swift Perpustakaan standar. Apa saya tidak menyebutkan bahwa diskusi adalah bahwa setiap tipe Swift data yang kita bahas sejauh ini adalah struktur.

Setiap jenis koleksi di Swift, misalnya, adalah struktur. Setiap jenis adalah struktur. Hal ini penting untuk mengetahui dan mengerti, terutama jika Anda berasal dari bahasa yang melewati beberapa jenis ini oleh referensi, seperti Ruby dan Objective-C.

Lebih banyak perbedaan

Ada beberapa perbedaan-perbedaan lain yang diasingkan kelas dan struktur di Swift. Kelas mendukung warisan sementara struktur tidak. Dalam contoh berikut, kita mendefinisikan kelas Speedboat yang mewarisi dari kelas perahu. Kelas kapal adalah induk kelas atau superclass Speedboat.

Karena kapal induk kelas Speedboat, Speedboat mewarisi properti dan metode yang didefinisikan di kelas perahu. Contoh menggambarkan hal ini. Meskipun pelaksanaan Speedboat kelas kosong, contoh Speedboat, myBoat, memiliki kecepatan dan sekoci properti serta metode deployLifeboats().

Perbedaan yang lebih halus yang membedakan kelas dan struktur adalah jenis memeriksa pada saat runtime. Anda dapat memeriksa jenis instance kelas pada saat runtime saat ini tidak mungkin untuk contoh struktur.

5. Optionals

Optionals adalah bagian integral dari bahasa pemrograman yang cepat. Mari kita Cari tahu apa optionals dan mengapa mereka begitu penting. Variabel harus diinisialisasi sebelum dapat digunakan. Lihatlah contoh berikut untuk memahami apa artinya.

Jika Anda terbiasa bekerja dengan senar di bahasa pemrograman lain, maka Anda mungkin akan terkejut bahwa kompilator melempar kesalahan. Mari kita lihat apa kesalahan itu memberitahu kita.

Variable Not InitializedVariable Not InitializedVariable Not Initialized

Dalam banyak bahasa pemrograman, variabel memiliki nilai default awal. Di Objective-C, misalnya, string dalam kode snippet berikut adalah sama dengan nol.

Apa adalah opsional?

Swift menggunakan optionals untuk merangkum sebuah konsep yang penting, sebuah variabel atau konstan memiliki nilai atau belum. Ini sederhana dalam Swift. Menyatakan variabel atau konstan sebagai opsional, kami menambahkan tanda tanya ke jenis variabel atau konstan.

Variabel str ini tidak lagi jenis String. Sekarang dari tipe String opsional. Hal ini penting untuk memahami. Konsekuensi adalah bahwa kita tidak lagi langsung bisa berinteraksi dengan nilai str. Nilai dengan aman disimpan dalam opsional dan kita perlu bertanya opsional untuk nilai Ia merangkum.

Dipaksa membuka bungkus

Salah satu cara untuk mengakses nilai opsional adalah dengan paksa membuka opsional bungkus. Kita dapat mengakses nilai str dengan menambahkan! untuk nama variabel.

Hal ini penting bahwa Anda yakin bahwa opsional berisi nilai saat Anda memaksa membuka itu. Jika Anda memaksa membuka opsional yang tidak memiliki nilai, Swift melempar error dan crash aplikasi Anda.

Forced Unwrapping an Optional Without a ValueForced Unwrapping an Optional Without a ValueForced Unwrapping an Optional Without a Value

Mengikat opsional

Ada cara yang lebih aman untuk mengakses nilai opsional. Contoh berikut ini menunjukkan bagaimana kita dapat mengakses nilai yang disimpan dalam str, yang merupakan jenis String aman?.

Kami pertama Periksa jika str adalah sama dengan nol sebelum kami mencetak isinya. Dalam contoh ini, str tidak memiliki nilai. Ini berarti itu tidak akan dipaksa membukanya oleh kecelakaan.

Ada pendekatan lebih elegan yang dikenal sebagai mengikat opsional. Dalam contoh berikut, kita menetapkan nilai yang disimpan dalam opsional untuk sementara konstan. Nilai str opsional terikat strConst konstan dan dibuat tersedia dalam jika klausul jika pernyataan. Pendekatan ini juga bekerja untuk sementara pernyataan.

Apa nol?

Jika Anda datang dari bahasa seperti Objective-C, maka Anda pasti tahu apa nil. Di Objective-C, nil adalah pointer ke objek yang tidak ada. Swift mendefinisikan nol yang sedikit berbeda dan itu penting bahwa Anda memahami perbedaan.

Swift, nol berarti tidak adanya nilai, nilai apapun. Sementara nol ini hanya berlaku untuk objek di Objective-C, dalam Swift nol dapat digunakan untuk setiap jenis.

Apakah Anda kehilangan koma?

Pernahkah Anda memperhatikan bahwa kita belum digunakan setiap titik koma dalam contoh dari tutorial ini? Di Swift, ada tidak perlu menggunakan tanda koma, karena kompilator cukup cerdas untuk memahami ketika satu pernyataan berakhir dan satu lagi dimulai. Jika Anda benar-benar melewatkan menggunakan tanda koma, maka itu baik untuk menambahkannya. Perlu diingat, meskipun, bahwa panduan bahasa merekomendasikan untuk menghilangkan tanda koma.

Kesimpulan

Meskipun kita hanya menggores permukaan dalam tutorial ini, Anda sekarang memiliki pemahaman dasar tentang bahasa pemrograman yang cepat. Dalam tutorial berikutnya, kita akan menjelajahi lain komponen kunci dari bahasa, penutupan dan fungsi. Kami juga akan membahas protokol dan kontrol akses.

Jika Anda memiliki pertanyaan atau komentar, Anda dapat meninggalkan mereka di komentar di bawah atau mengulurkan tangan kepada saya di Twitter.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.