Berikut adalah informasi yang saya ketahui tentang properti variabel
- atomic // default
- nonatomik
- kuat = mempertahankan // default
- lemah
- menahan
- menetapkan // default
- unsafe_unretained
- menyalin
- hanya baca
- baca tulis // default
jadi di bawah ini adalah tautan artikel terperinci di mana Anda dapat menemukan semua atribut yang disebutkan di atas, yang pasti akan membantu Anda. Terima kasih banyak untuk semua orang yang memberikan jawaban terbaik di sini !!
Atribut atau Pengubah properti variabel di iOS
01. strong (iOS4 = pertahankan)
- dikatakan "simpan ini di heap sampai saya tidak menunjuknya lagi" - dengan kata lain "Saya adalah pemiliknya, Anda tidak dapat membatalkan alokasi ini sebelum membidik dengan baik sama seperti mempertahankan "- Kamu menggunakan strong hanya jika kamu perlu mempertahankan objeknya. - Secara default, semua variabel instan dan variabel lokal adalah petunjuk yang kuat. - Kami umumnya menggunakan strong untuk UIViewControllers (orang tua item UI) - strong digunakan dengan ARC dan pada dasarnya membantu Anda, dengan tidak perlu khawatir tentang jumlah retensi objek. ARC secara otomatis melepaskannya untuk Anda setelah Anda selesai menggunakannya. Menggunakan kata kunci kuat berarti Anda memiliki objek tersebut.
Contoh:
@property (strong, nonatomic) ViewController *viewController;
@synthesize viewController;
02. weak (iOS4 = unsafe_unretained)
- dikatakan "simpan ini selama orang lain menunjukkannya dengan kuat" - hal yang sama seperti assign, no keep or release - Referensi "weak" adalah referensi yang tidak Anda simpan. - Kami biasanya menggunakan weak untuk IBOutlets (UIViewController's Childs). Ini berfungsi karena objek turunan hanya perlu ada selama objek induk memilikinya. - referensi lemah adalah referensi yang tidak melindungi objek yang direferensikan dari pengumpulan oleh pengumpul sampah. - Weak pada dasarnya adalah assign, sebuah properti yang tidak dipertahankan. Kecuali ketika objek dibatalkan alokasinya, pointer lemah secara otomatis disetel ke nol
Contoh:
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@synthesize myButton;
Jelaskan : Terima kasih kepada BJ Homer
Bayangkan objek kita adalah seekor anjing, dan anjing itu ingin melarikan diri (dicabut). Petunjuk yang kuat seperti tali pengikat pada anjing. Selama Anda memiliki tali pengikat yang terpasang pada anjing, anjing tidak akan lari. Jika lima orang memasang tali kekang pada satu anjing, (lima penunjuk kuat ke satu benda), maka anjing tidak akan lari sampai kelima tali dilepaskan. Petunjuk yang lemah, di sisi lain, seperti anak kecil yang menunjuk ke arah anjing dan berkata "Lihat! Seekor anjing!" Selama anjing masih terikat, anak-anak kecil masih bisa melihat anjing itu, dan mereka masih akan menunjuknya. Namun, segera setelah semua tali dilepaskan, anjing itu melarikan diri tidak peduli berapa banyak anak kecil yang menunjuknya. Segera setelah penunjuk kuat terakhir (tali) tidak lagi menunjuk ke suatu objek, objek tersebut akan dibatalkan alokasinya, dan semua penunjuk yang lemah akan dikosongkan. Kapan kita menggunakan weak? Satu-satunya saat Anda ingin menggunakan weak, adalah jika Anda ingin menghindari siklus penahanan (misalnya, orang tua mempertahankan anak dan anak mempertahankan orang tua sehingga tidak ada yang pernah dilepaskan).