Bagaimana saya bisa menonaktifkan ARC untuk satu file dalam suatu proyek?


1342

Saya berhasil menggunakan ARC dalam proyek saya. Namun, saya telah menjumpai beberapa file (misalnya, dalam tes unit dan objek tiruan) di mana aturan ARC sedikit lebih rapuh saat ini. Saya ingat pernah mendengar bahwa ada cara untuk menonaktifkan ARC pada basis per file, meskipun saya tidak dapat menemukan opsi ini.

Apakah ini mungkin? Bagaimana cara menonaktifkan ARC pada basis per file?


Jawaban:


2168

Dimungkinkan untuk menonaktifkan ARC untuk file individual dengan menambahkan -fno-objc-arcflag kompiler untuk file-file tersebut.

Anda menambahkan flag compiler di Target -> Build Phases -> Compile Sources. Anda harus mengklik dua kali pada kolom kanan baris di bawah Compiler Flags . Anda juga dapat menambahkannya ke beberapa file dengan menahan tombol cmd untuk memilih file dan kemudian menekan enter untuk membuka kotak edit bendera. (Perhatikan bahwa mengedit banyak file akan menimpa flag yang mungkin sudah ada.)

Saya membuat contoh proyek yang memiliki contoh: https://github.com/jaminguy/NoArc

xcode

Lihat jawaban ini untuk info lebih lanjut: Nonaktifkan Penghitungan Referensi Otomatis untuk Beberapa File


58
Jadi, tempat untuk menambahkan bendera ini tidak terlalu intuitif. Tapi, di Xcode 4, dalam fase build, dan kompilasi sumber, sebenarnya ada dua kolom. Satu untuk nama file, dan satu lagi untuk flag kompilasi untuk satu file. Di sinilah Anda memasukkan flag compiler khusus ini.
casademora

3
Bisakah Anda menentukan untuk direktori, yaitu untuk semua file dalam direktori? Bagaimana dengan Grup?
ma11hew28

4
Tidak ada direktori. Hanya satu file pada satu waktu dalam pengaturan build :(
casademora

13
@casademora, Anda tidak bisa mendapatkan cukup upvotes untuk informasi ini. Terima kasih.
theTRON

26
@casademora Anda dapat memilih banyak file sekaligus - tetapi jangan klik dua kali tapi tekan RETURN. kemudian tambahkan saja -fno-objc-arcdan itu akan ditambahkan ke semua file yang dipilih. sunting hanya melihat jawaban di bawah yang satu ini :(
pkyeck

460

Nonaktifkan ARC pada file MULTIPLE:

  1. Pilih file yang diinginkan di Target / Build Phases / Compile Sources di Xcode
  2. TEKAN ENTER
  3. Ketik -fno-objc-arc
  4. Tekan Enter atau Done

;)

masukkan deskripsi gambar di sini


2
Terima kasih! Sudah lama mencari fitur ini. Mengklik dua kali tidak berfungsi ketika beberapa baris dipilih, tetapi menekan enter tidak. Sangat aneh.
bobmoff

4
Oh wow. Saya akan menghabiskan semua karma saya untuk memperbaiki ini lagi. Terima kasih telah berbagi!
jemmons

ini sepertinya tidak berfungsi pada Xcode 4.3.3 lagi. klik dua kali atau tekan enter pada file yang dipilih tidak memunculkan dialog untuk menempatkan di -fno-ojbc-arc flag, ada yang punya solusi untuk ini?
tom

Saya memiliki 4.3.3 dan sekarang 4.4 DP7 dan masih berfungsi dengan baik. Coba mulai ulang Xcode, restart mesin dan perbaiki izin.
Tibidabo

44

Untuk Xcode 4.3 cara yang lebih mudah adalah: Edit / Refactor / Konversi ke objektif-C ARC, lalu centang file yang tidak ingin Anda konversi. Saya menemukan cara ini sama dengan menggunakan flag compiler di atas.


36

Ini adalah cara yang sangat sederhana untuk membuat file individual non-arc.

Ikuti langkah-langkah di bawah ini:

Nonaktifkan ARC pada file individual:

  1. Pilih file yang diinginkan di Target / Build Phases / Compile Sources di Xcode

  2. Pilih file .m yang Anda inginkan. NON-ARC PRESS ENTER Ketik -fno-objc-arc

File bukan ARC ke bendera proyek ARC: -fno-objc-arc

File ARC ke bendera proyek non ARC: -fobjc-arc


35

Catatan: jika Anda ingin menonaktifkan ARC untuk banyak file , Anda harus:

  1. buka "Bangun fase" -> "Kompilasi sumber"
  2. pilih file dengan "left_mouse" + "cmd" (untuk file yang terpisah) atau + "shift" (untuk file yang dikelompokkan - pilih pertama dan terakhir)
  3. tekan enter"
  4. tempel -fno-objc-arc
  5. tekan "enter" lagi
  6. keuntungan!


13
  1. Pilih proyek Xcode
  2. Pergi ke target
  3. Pilih bagian Bangun fase
  4. Di dalam bagian fase pembuatan pilih sumber kompilasi.
  5. Pilih file yang Anda tidak ingin menonaktifkan ARC dan tambahkan -fno-objc-arc

Nonaktifkan ARC untuk file tertentu


13

Dimungkinkan untuk menonaktifkan ARC (Penghitungan Referensi Otomatis) untuk file tertentu dalam Xcode.

Pilih Target -> Bangun Fase -> Kompilasi Sumber -> Pilih File (klik dua kali) -> Tambahkan "-fno-objc-arc" ke jendela pop-up.

Saya mengalami situasi ini dalam menggunakan file "Reachibility".

Ini ditunjukkan pada gambar di bawah ini:

masukkan deskripsi gambar di sini



11

Empat Langkah Wajib seperti yang dijelaskan dalam video ini

    //1. Select desired files
    //2. Target/Build Phases/Compile Sources
    //3. Type -fno-objc-arc
    //4. Done


6

Jika Anda menggunakan Unity, Anda tidak perlu mengubahnya dalam Xcode, Anda dapat menerapkan flag kompilasi dalam metadata untuk file tertentu, tepat di dalam Unity. Cukup pilih mereka di panel Proyek, dan terapkan dari panel Inspektur. Ini penting jika Anda berencana menggunakan Cloud Build.masukkan deskripsi gambar di sini


5

Tambahkan flag “-fno-objc-arc”.

Ikuti langkah-langkah sederhana: Aplikasi> Target> Bangun Fase> Sumber Kompilasi> tambahkan flag setelah kelas “-fno-objc-arc”


5

Saya pikir semua jawaban lain menjelaskan cara menonaktifkan MRC (Jumlah Referensi Manual) dan mengaktifkan ARC (Jumlah Referensi Otomatis). Untuk menggunakan MRC (Penghitungan Referensi Manual) yaitu Menonaktifkan ARC (Penghitungan Referensi Otomatis) pada file MULTIPLE:

  1. Pilih file yang diinginkan di Target / Build Phases / Compile Sources di Xcode
  2. TEKAN ENTER
  3. Ketik -fobjc-arc
  4. Tekan Enter atau Done

2

Cukup gunakan flag -fno-objc-arc di Build Phases> Compile Sources di depan file yang Anda tidak ingin ARC diterapkan.


-1
  1. pilih proyek -> target -> bangun fase -> sumber kompiler
  2. pilih file -> flag compiler
  3. tambahkan -fno-objc-arc

-2

PERGI ke Aplikasi -> lalu Target -> Bangun Fase -> Kompilasi Sumber

Sekarang, Pilih file di mana Anda ingin menonaktifkan ARC

rekatkan cuplikan ini "-fno-objc-arc" Setelah menempelkan tekan ENTER

di setiap file tempat Anda ingin menonaktifkan ARC.


5
jawaban Anda tidak memberikan tambahan apa pun untuk pertanyaan lama ini.
vikingosegundo

-2

Ikuti langkah-langkah untuk mengaktifkan menonaktifkan ARC

Pilih proyek Xcode Pergi ke target Pilih bagian Fase pembuatan Di dalam bagian fase pembuatan pilih sumber kompilasi. Pilih file yang Anda tidak ingin menonaktifkan ARC dan tambahkan -fno-objc-arc


1
jawaban Anda tidak memberikan tambahan apa pun untuk pertanyaan lama ini.
jomafer

Apa kebutuhan tambahan. jika Anda tahu lebih baik daripada memberi kami.
annu

Saya tidak menurunkan suara Anda. Hanya saja pertanyaan ini ditanyakan pada 11 Juli '11 pada jam 5:21. Ada terlalu banyak jawaban dengan jawaban yang sama yang tidak menambahkan informasi yang berguna ... Saya curiga ada seseorang yang menurunkan Anda karena alasan itu ...
jomafer

dapatkah Anda memberi saya penjelasan singkat tentangnya?
annu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.