Jika saya memutuskan untuk meningkatkan ke iOS 5, apakah saya perlu menghapus semua pernyataan [myObject mempertahankan] dan [rilis myObject] dari kode saya?
Ya, tetapi XCode 4.2 menyertakan alat "Migrate to Objective-C ARC" baru (di menu Edit-> Refactor), yang melakukannya untuk Anda. Menyebut dealloc adalah cerita yang berbeda. Seperti yang disebutkan dalam komentar, referensi clang menyatakan bahwa Anda harus tetap menggunakan metode dealloc:
Rasional: meskipun ARC menghancurkan variabel instance secara otomatis, masih ada alasan yang sah untuk menulis metode dealloc, seperti membebaskan sumber daya yang tidak dapat dipertahankan. Gagal memanggil [super dealloc] dengan metode seperti itu hampir selalu merupakan bug.
Anda mengaktifkan ARC menggunakan flag compiler -fobjc-arc baru. ARC didukung di Xcode 4.2 untuk Mac OS X v10.6 dan v10.7 (aplikasi 64-bit) dan untuk iOS 4 dan iOS 5. (Referensi yang lemah tidak didukung di Mac OS X v10.6 dan iOS 4). Tidak ada dukungan ARC di Xcode 4.1.
-
Jika saya mengembangkan aplikasi baru untuk iOS 5 menggunakan ARC, apakah saya perlu menerapkan semacam pemeriksaan "kompatibilitas retro"? Yaitu: apakah saya perlu memeriksa versi iOS dan memanggil mempertahankan dan merilis yang sesuai? Jadi, pada dasarnya, apakah ARC tersedia untuk semua versi iOS atau hanya untuk iOS 5?
Tidak, karena ARC melakukan keajaibannya pada waktu kompilasi dan bukan pada waktu berjalan.
Alih-alih Anda harus mengingat kapan harus menggunakan retensi, rilis, dan rilis otomatis, ARC mengevaluasi persyaratan umur objek Anda dan secara otomatis memasukkan panggilan metode yang sesuai untuk Anda pada waktu kompilasi. Kompilator juga menghasilkan metode dealloc yang sesuai untuk Anda.
Informasi Lebih Lanjut tentang ARC: http://clang.llvm.org/docs/AutomaticReferenceCounting.html