Di Swift, apa cara konvensional untuk menentukan pola umum di mana properti menjadi hanya dapat dibaca secara eksternal, tetapi dapat dimodifikasi secara internal oleh kelas (dan subkelas) yang memilikinya.
Di Objective-C, ada opsi berikut:
- Deklarasikan properti sebagai hanya-baca di antarmuka dan gunakan ekstensi kelas untuk mengakses properti secara internal. Ini adalah akses berbasis pesan, oleh karena itu berfungsi dengan baik dengan KVO, atomicity, dll.
- Deklarasikan properti sebagai hanya-baca di antarmuka, tetapi akses backing ivar secara internal. Karena akses default untuk ivar dilindungi, ini berfungsi dengan baik dalam hierarki kelas, di mana subkelas juga dapat mengubah nilainya, tetapi bidang ini hanya dapat dibaca.
Di Java konvensi adalah:
- Deklarasikan bidang yang dilindungi, dan terapkan pengambil (metode) publik hanya-baca.
Apa idiom Swift?
var
kata kunci yang hilang untuk membuatnya dikompilasi.)