2011-12-26 34 views
6

Dự án của tôi sử dụng ARC (Bộ đếm tham chiếu tự động), vì vậy khi tôi cố gắng nhập thư viện ASIHTTPRequest có 4 lớp được sử dụng để triển khai câu lệnh autorelease, tại đây là một ví dụ:Tệp không hỗ trợ tính năng ARC, cách xử lý

[self setAccessLock:[[[NSRecursiveLock alloc] init] autorelease]]; 

Các lỗi mà tôi đã nhận:

ARC forbids explicit message send of autorelease 

tôi nên làm gì để giải quyết vấn đề này.

Trả lời

14

Tôi đã có giải pháp, tôi cần phải thêm cờ phù hợp vào cờ trình biên dịch cho từng tệp không hỗ trợ ARC. Đối với tôi, tôi sử dụng Xcode 4.2, vì vậy dưới target -> Build Phases -> Compile Sources, nhấp đúp vào tệp bạn muốn tắt tính năng ARC và đặt -fno-objc-arc nhấp chuột vào Done. Và đó là Xong;)

Xin lưu ý rằng nếu tệp không tồn tại trong danh sách, bạn chỉ có thể thêm tệp bằng cách nhấp vào nút + và sau đó thực hiện công việc tương tự ở trên.

9

Disable ARC cho rằng một lớp

Khi bạn di chuyển một dự án sử dụng ARC, các -fobjc-arc biên dịch cờ được thiết lập như là mặc định cho tất cả các file nguồn Objective-C. Bạn có thể vô hiệu hóa ARC cho một lớp cụ thể bằng cách sử dụng cờ trình biên dịch -fno-objc-arc cho lớp đó.

Trong Xcode, trong tab Mục tiêu xây dựng, hãy mở nhóm Biên dịch nguồn để hiển thị danh sách tệp nguồn. Bấm đúp vào tệp mà bạn muốn đặt cờ, nhập -fno-objc-arc trong bảng điều khiển bật lên, sau đó nhấp vào Xong.

Các vấn đề liên quan