Sebagai pemrogram iPhone pemula, apa praktik terbaik untuk menulis aplikasi yang akan digunakan dengan iOS 5 atau versi yang lebih lama? Secara khusus, apakah saya harus terus menggunakan rilis / penyimpanan data, atau haruskah saya mengabaikannya? Apakah itu penting?
109
Jawaban:
Terserah kamu. Anda dapat menulis aplikasi menggunakan ARC (Penghitungan Referensi Otomatis), dan Xcode akan menulis "kode perekat" untuk memungkinkan aplikasi Anda yang mendukung ARC berjalan di iOS 4, tidak perlu modifikasi. Namun, hal-hal tertentu tidak akan berfungsi, dan yang paling mencolok banyak pustaka yang mungkin ingin Anda gunakan akan (kadang-kadang) memunculkan kesalahan yang tak terhitung banyaknya dan Anda tidak akan dapat menggunakannya sampai pengembang merilis pembaruan yang kompatibel dengan ARC.
Sunting : Baru-baru ini saya menemukan bahwa Anda dapat mematikan ARC untuk setiap file. Lihat jawaban pixelfreak . Jadi, saran saya masih berlaku, tetapi sekarang pustaka pihak ketiga tidak perlu diperbarui untuk bekerja dengan ARC.
Inilah yang dikatakan Apple tentang memilih keluar dari ARC untuk file tertentu:
Lihat panduan transisi lengkap di sini .
sumber
-fno-objc-arc
JSONKit
contoh. Coba jalankan melalui pemeriksaan ARC. Anda akan melihat apa yang saya maksud. ;)Bagi siapa pun yang masih penasaran tentang cara mematikan ARC pada file individual, inilah yang saya lakukan:
Build Phases > Compile Sources
Saya tidak tahu apakah ini cara yang disarankan, tetapi berhasil untuk saya.
PS: Saya mengumpulkan informasi ini dari clang.llvm.org di sini yang dapat diakses publik, jadi bukan di bawah NDA.
sumber
iOS 5 masih di bawah NDA, dan mungkin akan sampai mereka merilis versi publik. Jika Anda memiliki akun pengembang, kunjungi Forum Pengembang Apple dan tanyakan di sana.
Untuk versi sebelumnya, Anda harus menghitung referensi dan mempertahankan serta merilisnya. Lihat panduan Manajemen Memori .
Sunting: Berikut spesifikasi publik untuk Penghitungan Referensi Otomatis dan kutipan dari halaman publik iOS 5 :
sumber
Detailnya ringan / di bawah NDA saat ini, tetapi Apple telah menerapkan Penghitungan Referensi Otomatis (ARC) di iOS 5, seperti yang dijelaskan di sini: http://developer.apple.com/technologies/ios5/
Jika Anda mengembangkan aplikasi baru di Xcode 4 dengan iOS 5 SDK, Anda dapat dengan aman mengabaikan penghitungan retensi / rilis.
[edit] sudo rm -rf membuat poin yang bagus; lib pihak ketiga mungkin terpengaruh secara signifikan
sumber
Tidak ada yang menyebutkan SystemConfiguration.framework ? Harap jangan lupa untuk memasukkannya ke dalam Frameworks . Dengan sedih saya menghabiskan beberapa jam untuk menyadarinya.
sumber
Ini tentu menjadi pilihan developer atau tim. ARC (Penghitung Referensi Otomatis) telah membuat segalanya menjadi sedikit lebih mudah dengan mengelola memori secara otomatis untuk Anda. Ini akan melepaskan, menahan, dan membatalkan alokasi jika sesuai. Saya percaya bahwa Anda harus mendapatkan pengalaman mengelola memori sendiri lebih disukai dalam aplikasi pengujian, jika Anda belum melakukannya. Hal lain yang perlu dipertimbangkan adalah apakah aplikasi Anda bergantung pada pustaka pihak ketiga, yang jika tidak dikonversi ke ARC akan mencegah aplikasi Anda untuk dikompilasi. Pilihannya jelas tergantung pada situasi yang dihadapi.
sumber
setel flag sebagai -fno-objc-arc dalam pengaturan proyek> Fase Build> Compile Sources
sumber