0Pricing
Swift Academy · Pelajaran

Membuat Pembungkus Properti Kustom

Mengimplementasikan @propertyWrapper dengan wrappedValue untuk merangkum logika.

Membuat Pembungkus Properti Kustom adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Selamat Datang

Pembungkus properti merangkum logika penyimpanan properti, sehingga Anda dapat menggunakan ulang kode berulang seperti validasi, transformasi, atau persistensi.

Sintaks Dasar

```swift @propertyWrapper struct Clamped { var wrappedValue: Int { didSet { wrappedValue = min(max(0,wrappedValue),100) } } init(wrappedValue: Int) { self.wrappedValue = min(max(0,wrappedValue),100) } } struct Gauge { @Clamped var level = 50 } var g = Gauge() g.level = 150 // clamped to 100 ```

Persyaratan wrappedValue

Setiap pembungkus properti harus mendefinisikan `wrappedValue`. Inilah nilai yang dibaca dan ditulis oleh pengguna pembungkus tersebut.

Pembungkus Properti Generik

```swift @propertyWrapper struct Logged { private var value: T var wrappedValue: T { get { print("get"); return value } set { print("set to \(newValue)"); value = newValue } } init(wrappedValue: T) { value = wrappedValue } } ```

Menggunakan Pembungkus

```swift struct Model { @Logged var name: String = "Default" } var m = Model() let n = m.name // prints "get" m.name = "Alice" // prints "set to Alice" ```

Argumen Inisialisasi Khusus

```swift @propertyWrapper struct Default { var wrappedValue: T init(wrappedValue: T) { self.wrappedValue = wrappedValue } init(_ default: T) { wrappedValue = default } } @Default(42) var count: Int ```

Pembungkus pada Properti Tersimpan vs Terhitung

Pembungkus properti menambahkan penyimpanan tersembunyi (_wrappedValue). Properti beranotasi adalah gula sintaksis: ```swift @Clamped var level = 50 // Desugars to: var _level = Clamped(wrappedValue: 50) var level: Int { get { _level.wrappedValue } set { _level.wrappedValue = newValue } } ```

Pembungkus UserDefaults

```swift @propertyWrapper struct UserDefault { let key: String; let defaultValue: T var wrappedValue: T { get { UserDefaults.standard.object(forKey: key) as? T ?? defaultValue } set { UserDefaults.standard.set(newValue, forKey: key) } } } @UserDefault(key:"theme",defaultValue:"light") var theme: String ```

Pembungkus Aman untuk Utas

```swift @propertyWrapper final class Atomic { private var value: T; private let lock = NSLock() var wrappedValue: T { get { lock.lock(); defer { lock.unlock() }; return value } set { lock.lock(); defer { lock.unlock() }; value = newValue } } init(wrappedValue: T) { value = wrappedValue } } ```

Menggabungkan Pembungkus dalam Sebuah Tipe

```swift struct Settings { @Clamped var volume = 50 @UserDefault(key:"username",defaultValue:"") var username: String @Logged var debugMode = false } ```

Pemeriksaan Singkat

Apa properti yang wajib ada dalam setiap tipe `@propertyWrapper`?

Rangkuman

Hal-hal penting: • `@propertyWrapper` + `wrappedValue` = pembungkus properti minimal • Pembungkus menambahkan penyimpanan tersembunyi `_name` • Pembungkus generik berfungsi dengan tipe apa pun, termasuk T • Penggunaan umum: pembatasan nilai, pencatatan, UserDefaults, keamanan utas • Argumen inisialisasi khusus memungkinkan konfigurasi Berikutnya: nilai proyeksi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Membuat Pembungkus Properti Kustom” gratis?

Ya — teks lengkap “Membuat Pembungkus Properti Kustom” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Membuat Pembungkus Properti Kustom”?

Mengimplementasikan @propertyWrapper dengan wrappedValue untuk merangkum logika. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Membuat Pembungkus Properti Kustom” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat Pembungkus Properti Kustom
  2. Nilai Terproyeksi dengan $binding
  3. @Published dan Observasi dalam Combine
  4. Mengomposisikan Beberapa Pembungkus Properti
← Kembali ke Swift Academy