Làm cách nào tôi có thể tắt ARC cho một tệp trong một dự án?


1342

Tôi đang sử dụng ARC thành công trong dự án của tôi. Tuy nhiên, tôi đã gặp một vài tệp (ví dụ: trong các bài kiểm tra đơn vị và các đối tượng giả) trong đó các quy tắc của ARC dễ vỡ hơn một chút ngay bây giờ. Tôi nhớ lại rằng có một cách để vô hiệu hóa ARC trên cơ sở mỗi tệp, mặc dù tôi không thể tìm thấy tùy chọn này.

Điều này có thể không? Làm cách nào để tắt ARC trên cơ sở mỗi tệp?


Câu trả lời:


2168

Có thể tắt ARC cho các tệp riêng lẻ bằng cách thêm -fno-objc-arccờ trình biên dịch cho các tệp đó.

Bạn thêm cờ trình biên dịch trong Mục tiêu -> Xây dựng giai đoạn -> Biên dịch nguồn. Bạn phải nhấp đúp chuột vào cột bên phải của hàng bên dưới Trình biên dịch cờ . Bạn cũng có thể thêm nó vào nhiều tệp bằng cách giữ nút cmd để chọn các tệp và sau đó nhấn enter để hiển thị hộp chỉnh sửa cờ. (Lưu ý rằng chỉnh sửa nhiều tệp sẽ ghi đè lên bất kỳ cờ nào mà nó có thể có.)

Tôi đã tạo một dự án mẫu có một ví dụ: https://github.com/jaminguy/NoArc

xcode

Xem câu trả lời này để biết thêm thông tin: Vô hiệu hóa đếm tham chiếu tự động cho một số tệp


58
Vì vậy, nơi để thêm cờ này không quá trực quan. Nhưng, trong Xcode 4, trong các giai đoạn xây dựng và biên dịch nguồn, thực tế có hai cột. Một cho tên tệp và một cho các cờ biên dịch cho một tệp đó. Đây là nơi bạn nhập cờ trình biên dịch cụ thể này.
casademora

3
Bạn có thể chỉ định cho một thư mục, tức là, cho tất cả các tệp trong một thư mục? Còn đối với một nhóm thì sao?
ma11hew28

4
Không có thư mục. Mỗi lần chỉ có một tệp duy nhất trong cài đặt bản dựng :(
casademora

13
@casademora bạn không thể có đủ upvote cho phần thông tin này. Cảm ơn bạn.
theTRON

26
@casademora bạn có thể chọn nhiều tệp cùng một lúc - nhưng sau đó không được nhân đôi mà nhấn RETURN. sau đó chỉ cần thêm -fno-objc-arcvà nó sẽ được thêm vào tất cả các tệp đã chọn. chỉnh sửa chỉ thấy câu trả lời dưới đây :(
pkyeck

460

Vô hiệu hóa ARC trên các tệp MULTIPLE:

  1. Chọn các tệp mong muốn tại Target / Build Phase / Compile Source trong Xcode
  2. NHẤN ENTER
  3. Loại -fno-objc-arc
  4. Nhấn Enter hoặc Xong

;)

nhập mô tả hình ảnh ở đây


2
Cám ơn! Đã tìm kiếm tính năng này một thời gian dài. Bấm đúp không hoạt động khi được chọn nhiều hàng, nhưng nhấn enter thì không. Thật ki cục.
bobmoff

4
Tuyệt vời. Tôi sẽ dành tất cả nghiệp lực của mình để nâng cao điều này một lần nữa. Cám ơn vì đã chia sẻ!
jemmons

điều này dường như không hoạt động trên Xcode 4.3.3 nữa. nhấp đúp chuột hoặc nhấn enter trên các tệp đã chọn không hiển thị hộp thoại để đặt cờ -fno-ojbc-arc, có ai có cách giải quyết cho việc này không?
tom

Tôi đã có 4.3.3 và bây giờ 4.4 DP7 và nó vẫn hoạt động tốt. Hãy thử khởi động lại Xcode, khởi động lại máy và sửa chữa quyền.
Tibidabo

44

Đối với Xcode 4.3, cách dễ dàng hơn có thể là: Chỉnh sửa / Tái cấu trúc / Chuyển đổi sang ARC khách quan-C, sau đó kiểm tra các tệp bạn không muốn chuyển đổi. Tôi thấy cách này giống như sử dụng cờ trình biên dịch ở trên.


36

Đó là cách rất đơn giản để làm cho tập tin cá nhân không phải là hồ quang.

Thực hiện theo các bước dưới đây:

Vô hiệu hóa ARC trên tệp riêng lẻ:

  1. Chọn các tệp mong muốn tại Target / Build Phase / Compile Source trong Xcode

  2. Chọn tập tin .m mà bạn muốn làm cho nó NON-ARC PRESS ENTER Type -fno-objc-arc

Không phải tệp ARC vào cờ dự án ARC: -fno-objc-arc

Tệp ARC vào cờ dự án không ARC: -fobjc-arc


35

Lưu ý: nếu bạn muốn tắt ARC cho nhiều tệp , bạn phải:

  1. mở "Xây dựng giai đoạn" -> "Biên dịch nguồn"
  2. chọn các tệp có "left_mouse" + "cmd" (đối với các tệp được phân tách) hoặc + "shift" (đối với các tệp được nhóm - chọn trước và cuối)
  3. nhấn Enter"
  4. dán -fno-objc-arc
  5. nhấn "enter" lần nữa
  6. lợi nhuận!

22

Chỉ cần sử dụng -fno-objc-arccờ trong Build Phases>Compile Sources


13
  1. Chọn dự án Xcode
  2. Đi đến mục tiêu
  3. Chọn phần Xây dựng giai đoạn
  4. Trong phần giai đoạn xây dựng, chọn các nguồn biên dịch.
  5. Chọn tệp mà bạn không muốn tắt ARC và thêm -fno-objc-arc

Vô hiệu hóa ARC cho một tệp cụ thể


13

Có thể tắt ARC (Đếm tham chiếu tự động) cho tệp cụ thể trong Xcode.

Chọn Target -> Build Phase -> Compile Source -> Chọn File (nhấp đúp chuột) -> Thêm "-fno-objc-arc" vào cửa sổ bật lên.

Tôi đã gặp tình huống này khi sử dụng tệp "Khả năng hiển thị".

Điều này được thể hiện trong hình dưới đây:

nhập mô tả hình ảnh ở đây


11

sử dụng -fno-objc-arc cho mỗi tệp trong các giai đoạn xây dựng


11

Bốn bước bắt buộc như được giải thích trong video này

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


6

Nếu bạn đang sử dụng Unity, bạn không cần thay đổi điều này trong Xcode, bạn có thể áp dụng cờ biên dịch trong siêu dữ liệu cho (các) tệp cụ thể, ngay trong Unity. Chỉ cần chọn chúng trong bảng Project và áp dụng từ bảng Inspector. Điều này rất cần thiết nếu bạn có kế hoạch sử dụng Cloud Build.nhập mô tả hình ảnh ở đây


5

Thêm cờ -fno-objc-arc.

Các bước thực hiện đơn giản: Ứng dụng> Mục tiêu> Xây dựng giai đoạn> Biên dịch nguồn> thêm cờ sau lớp giấy -fno-objc-arc Hồi


5

Tôi nghĩ rằng tất cả các câu trả lời khác đang giải thích cách tắt MRC (Đếm tham chiếu thủ công) và bật ARC (Đếm tham chiếu tự động). Để sử dụng MRC (Đếm tham chiếu thủ công) tức là Tắt ARC (Đếm tham chiếu tự động) trên các tệp MULTIPLE:

  1. Chọn các tệp mong muốn tại Target / Build Phase / Compile Source trong Xcode
  2. NHẤN ENTER
  3. Loại -fobjc-arc
  4. Nhấn Enter hoặc Xong

2

Chỉ cần sử dụng cờ -fno-objc-arc trong Build Ph Phase> Compile Source trước các tệp mà bạn không muốn ARC được áp dụng.


-1
  1. chọn dự án -> mục tiêu -> xây dựng giai đoạn -> nguồn trình biên dịch
  2. chọn tệp -> cờ trình biên dịch
  3. thêm -fno-objc-arc

-2

GO đến Ứng dụng -> sau đó Mục tiêu -> Xây dựng giai đoạn -> Biên dịch nguồn

Bây giờ, Chọn tệp mà bạn muốn tắt ARC

dán đoạn trích này "-fno-objc-arc" Sau khi dán nhấn ENTER

trong mỗi tệp mà bạn muốn tắt ARC.


5
câu trả lời của bạn không cung cấp bất kỳ bổ sung cho câu hỏi cũ này.
vikingosegundo 24/2/2015

-2

Theo dõi Bước để bật vô hiệu hóa ARC

Chọn dự án Xcode Chuyển đến mục tiêu Chọn phần Xây dựng giai đoạn Bên trong phần xây dựng giai đoạn chọn nguồn biên dịch. Chọn tệp mà bạn không muốn tắt ARC và thêm -fno-objc-arc


1
câu trả lời của bạn không cung cấp bất kỳ bổ sung cho câu hỏi cũ này.
jomafer

Cần gì thêm. nếu bạn biết tốt hơn cung cấp cho chúng tôi.
annu

Tôi đã không đánh giá thấp bạn. Đó chỉ là câu hỏi này đã được hỏi vào ngày 11 tháng 7 năm 11 lúc 5:21. Có quá nhiều câu trả lời với cùng một câu trả lời không thêm bất kỳ thông tin hữu ích nào ... Tôi nghi ngờ rằng ai đó đánh giá thấp bạn vì lý do đó ...
jomafer

bạn có thể cho tôi một số tóm tắt về nó.
annu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.