Saya telah mengunduh iOS 5 SDK dan menemukan bahwa ARC adalah fitur hebat dari kompiler Apple baru. Untuk saat ini, banyak kerangka kerja pihak ketiga tidak mendukung ARC. Bisakah saya menggunakan ARC untuk kode baru saya dan menjaga kode tetap / rilis saat ini tidak berubah? Konverter ARC tidak berfungsi di sini, karena beberapa kerangka kerja, seperti JSONKit, tidak dapat dikonversi ke ARC dengan menggunakan konverter.
Edit:
Jawabannya adalah menambahkan -fno-objc-arc
ke flag kompiler untuk file yang tidak Anda inginkan ARC. Dalam Xcode 4, Anda dapat melakukan ini di bawah target Anda -> Bangun Fase -> Kompilasi Sumber.
objective-c
ios5
automatic-ref-counting
tidak menarik
sumber
sumber
.m
file. Bukan.h
file.Jawaban:
Dokumen ARC publik , meskipun tidak secara langsung menjelaskan tentang hal ini, tampaknya menunjukkan bahwa selama setiap kelas adalah semua ARC atau semua dikelola secara manual, kelas-kelas tersebut dapat diintegrasikan ke dalam satu program tunggal.
Anda hanya tidak dapat mencampur ARC dan non-ARC dalam satu kelas; dokumen mengatakan bahwa mengirim
retain
,release
,autorelease
, atauretainCount
pesan dengan cara apapun (termasuk timer dan Melakukan tertunda, yang digunakan@selector
) dilarang dalam kode ARC. Jadi Anda tidak dapat melakukan non-ARC di kelas ARC (karena pesan yang diperlukan dilarang) dan Anda tidak dapat melakukan ARC di kelas non-ARC (karena ARC menambahkan elemen sintaks yang tidak valid tanpa ARC).Dokumen yang sama sedikit lebih jelas tentang apakah Anda dapat mengintegrasikan pustaka / kerangka kerja non-ARC ke dalam program ARC: Ya. Tidak disebutkan apakah Anda dapat menggunakan pustaka / kerangka kerja ARC dalam program di mana semua kode Anda non-ARC, tetapi mengingat semua hal di atas, implikasinya tampaknya ya.
sumber
#import
memasukkannya dari file modul. Pengaturan flag compiler adalah untuk setiap file modul (lebih tepatnya, setiap file dalam fase pembangunan "Sumber Kompilasi"). Kompiler tidak memiliki cara untuk mengetahui apakah ia harus menggunakan ARC atau tidak untuk file lain, kecuali dengan mewarisi pilihan yang diberikan untuk file modul yang dimulainya.Ini tidak terlalu intuitif cara menonaktifkan ARC pada file GANDA , untuk sementara waktu saya melakukannya satu per satu sampai menemukan cara untuk melakukannya.
sumber
Jika Anda ingin menonaktifkan Penghitungan Referensi Otomatis untuk beberapa File, maka itu sangat sederhana untuk dilakukan, ikuti saja langkah-langkahnya. Anda menambahkan flag kompiler di Target -> Build Phases -> Compile Sources.
Bendera yang digunakan adalah -fno-objc-arc tekan enter setelah menulisnya.! Anda harus mengklik dua kali pada kolom kanan baris di bawah Compiler Flags. Semoga ini membantu Terima kasih :)
sumber
-fobjc-arc
.Dimungkinkan untuk menonaktifkan ARC untuk file individual dengan menambahkan flag -fno-objc-arc compiler untuk file-file tersebut.
Bagaimana saya bisa menonaktifkan ARC untuk satu file dalam suatu proyek?
sumber