Di Swift 4.0, Private sekarang dapat diakses dalam ekstensi tetapi dalam file yang sama. Jika Anda mendeklarasikan / menetapkan ekstensi dalam file lain, maka variabel pribadi Anda tidak akan dapat diakses oleh ekstensi Anda **
File Privat
File akses privat membatasi penggunaan entitas untuk file sumber pendefinisiannya sendiri. Gunakan akses file-pribadi untuk menyembunyikan detail implementasi dari bagian fungsionalitas tertentu ketika detail tersebut digunakan dalam seluruh file.
Sintaks: fileprivate <var type> <variable name>
Contoh: fileprivate class SomeFilePrivateClass {}
Pribadi
Akses pribadi membatasi penggunaan suatu entitas pada deklarasi terlampir, dan pada ekstensi deklarasi yang berada dalam file yang sama . Gunakan akses pribadi untuk menyembunyikan detail implementasi dari bagian fungsionalitas tertentu ketika detail tersebut hanya digunakan dalam satu deklarasi.
Sintaks: private <var type> <variable name>
Contoh: private class SomePrivateClass {}
Berikut ini lebih detail tentang semua level akses: Swift - Level Akses
Lihat gambar ini:
File: ViewController.swift
Di sini, ekstensi dan pengontrol tampilan keduanya dalam file yang sama, maka variabel pribadi testPrivateAccessLevel
dapat diakses dalam ekstensi
File: TestFile.swift
Di sini ekstensi dan pengontrol tampilan keduanya dalam file yang berbeda, maka variabel pribadi testPrivateAccessLevel
tidak dapat diakses dalam ekstensi.
Kelas di sini ViewController2
adalah subkelas ViewController
dan keduanya berada dalam file yang sama. Di sini variabel pribadi testPrivateAccessLevel
tidak dapat diakses di Subclass tetapi fileprivate dapat diakses di subclass.
private
menjadifileprivate
. Namun, jika Anda memiliki kemewahan melakukannya dengan tangan, Anda sering dapat mengambil manfaat dari meninggalkanprivate
sebagaiprivate
... jika itu dikompilasi, semuanya baik.