0Pricing
Swift Academy · Pelajaran

Cara ARC Menghitung Referensi

Memahami tindakan ARC saat kompilasi, pemanggilan retain/release, dan masa hidup objek.

Cara ARC Menghitung Referensi 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

Automatic Reference Counting (ARC) mengelola memori instans kelas. Memahami cara ARC menghitung referensi membantu Anda menulis kode tanpa kebocoran memori.

Cara Kerja ARC

ARC melacak jumlah referensi kuat yang menunjuk ke setiap instans kelas. Ketika jumlahnya mencapai nol, ARC memanggil `deinit` dan membebaskan memori—secara otomatis.

Referensi Kuat

```swift var a: Dog? = Dog(name: "Rex") // count = 1 var b = a // count = 2 a = nil // count = 1 b = nil // count = 0 → deinit ```

ARC Berjalan pada Waktu Kompilasi

ARC menyisipkan panggilan penahanan dan pelepasan referensi pada waktu kompilasi—bukan saat program berjalan seperti pengumpul sampah. Artinya: • Tidak ada jeda pengumpulan sampah • Dealokasi deterministik • Sedikit tambahan ukuran kode akibat panggilan penahanan dan pelepasan referensi

Risiko Siklus Referensi Kuat

```swift class Node { var next: Node? } var n1: Node? = Node() var n2: Node? = Node() n1?.next = n2 n2?.next = n1 // cycle! n1 = nil; n2 = nil // both stuck at count=1 — leaked! ```

Menghitung dengan Beberapa Variabel

```swift class Engine {} var car1: Engine? = Engine() // count = 1 var car2 = car1 // count = 2 var car3 = car2 // count = 3 car1 = nil // count = 2 car2 = nil // count = 1 // Engine still alive — car3 holds it car3 = nil // count = 0 → deinit ```

ARC pada Koleksi

```swift var dogs: [Dog] = [] dogs.append(Dog(name:"A")) // count = 1 dogs.append(Dog(name:"B")) // count = 1 each dogs.removeAll() // both deinit called ```

ARC TIDAK Berlaku untuk Tipe Nilai

Struktur, enumerasi, dan tupel TIDAK dihitung berdasarkan referensi: ```swift struct Point { var x, y: Double } // no retain/release var p1 = Point(x:1,y:2) var p2 = p1 // copy — no ARC ```

Mengamati ARC dengan deinit

```swift class Cat { let name: String init(name: String) { self.name = name; print("\(name) born") } deinit { print("\(name) deallocated") } } var c: Cat? = Cat(name: "Luna") c = nil // "Luna deallocated" printed ```

Performa ARC dibandingkan GC

• GC: menghentikan eksekusi secara berkala untuk melakukan pengumpulan; ada pertukaran antara laju pemrosesan dan latensi • ARC: melakukan dealokasi segera ketika jumlah mencapai 0; tanpa jeda • Overhead ARC: setiap penugasan melalui referensi kuat memerlukan sepasang operasi penahanan dan pelepasan referensi

Pemeriksaan Singkat

Kapan ARC memanggil `deinit` dan membebaskan memori objek?

Ringkasan

Hal-hal penting: • ARC melacak referensi kuat ke instans kelas • Jumlah 0 → `deinit` dipanggil → memori dibebaskan • ARC berjalan pada waktu kompilasi—tanpa jeda pengumpulan sampah • Tipe nilai (struktur/enumerasi) tidak dikelola oleh ARC • Siklus mencegah jumlah mencapai 0 → gunakan referensi lemah/tidak dimiliki Berikutnya: siklus referensi.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Cara ARC Menghitung Referensi” gratis?

Ya — teks lengkap “Cara ARC Menghitung Referensi” 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 “Cara ARC Menghitung Referensi”?

Memahami tindakan ARC saat kompilasi, pemanggilan retain/release, dan masa hidup objek. 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 “Cara ARC Menghitung Referensi” 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. Cara ARC Menghitung Referensi
  2. Siklus Retain: Penyebab dan Deteksi
  3. Referensi weak dan unowned
  4. Daftar Capture Closure dan [weak self]
← Kembali ke Swift Academy