Ada dua atribut manajemen memori baru untuk properti yang diperkenalkan oleh ARC, strongdan weak.
Terlepas dari copy, yang jelas merupakan sesuatu yang sama sekali berbeda, apakah ada perbedaan antara strongvs retaindan weakvs assign?
Dari pemahaman saya, satu-satunya perbedaan di sini adalah yang weakakan menetapkan nilke pointer, sementara assigntidak akan, yang berarti program akan macet ketika saya mengirim pesan ke pointer setelah dirilis. Tetapi jika saya menggunakan weak, ini tidak akan pernah terjadi, karena mengirim pesan ke niltidak akan melakukan apa-apa.
Saya tidak tahu tentang perbedaan antara strongdan retain.
Apakah ada alasan mengapa saya harus menggunakan assigndan retaindalam proyek-proyek baru, atau jenis yang ditinggalkan?
weakdan strong) dan 4 kualifikasi seumur hidup variabel ( __strong, __weak, __unsafe_unretained, __autoreleasing). Lihat Catatan ARC di bawah ini.
assignsaat kompilasi dengan ARC adalah kesalahan. Ada banyak jawaban yang dihapus tentang ini. Sepertinya itu sudah berubah sebelum rilis final. unsafe_unretainedadalah atribut yang disukai banyak dari kita pengguna awal. Sebagai bukti, unsafe_unretainedini adalah atribut yang terlihat di Apple "Programming With Objective-C" di bawah bagian "Encapsulating Data" di bawah subjudul "Gunakan Referensi Tidak Terjamin untuk Beberapa Kelas". Yang mengatakan: "Untuk properti, ini berarti menggunakan atribut unsafe_unretained:"
strong,weakdanunsafe_unretained.