2011-11-15 40 views
10

Có một số #pragma (hoặc một số cấu trúc khác) để bật tính năng đếm tham chiếu tự động (ARC) một cách rõ ràng trong tệp nguồn Mục tiêu-C (hoặc Mục tiêu-C++) không? Thậm chí tốt hơn nếu tệp nguồn có thể khiến cho quá trình biên dịch thất bại nếu ARC không được bật.Pragma để bật ARC một cách rõ ràng?

Tôi bắt đầu có một số tệp nguồn chỉ ARC có thể được chia sẻ với các dự án khác. Hầu hết các phương pháp này đều chứa các thể loại để mở rộng các lớp dựng sẵn. Tôi chỉ không muốn vô tình đưa chúng vào một dự án không phải ARC và bắt đầu rò rỉ bộ nhớ.

Cảm ơn trước!

+0

đẹp câu hỏi. Hãy thử mở một radar với Apple. Có thể có cách để tăng lỗi nếu mã nguồn không được biên dịch trong chế độ ARC sẽ có lợi cho nhà phát triển. Theo như tôi biết không có phát biểu chỉ cung cấp lỗi phát sinh khi được biên dịch với tập -fno-obj-arc. – viggio24

Trả lời

11

Theo như tôi có thể nói không có cách nào để bật hoặc tắt một cách rõ ràng ARC.

Tuy nhiên, có thể phát hiện xem nó có được bật hay không. Chỉ cần thêm đoạn mã sau vào bất kỳ tệp nào yêu cầu ARC. Thông tin

#ifndef __has_feature 
    #define __has_feature(x) 0 /* for non-clang compilers */ 
#endif 

#if !__has_feature(objc_arc) 
    #error ARC must be enabled! 
#endif 

thêm:
http://clang.llvm.org/docs/AutomaticReferenceCounting.html
http://clang.llvm.org/docs/LanguageExtensions.html#__has_feature_extension

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