10
是否有一個#pragma
(或其他一些構造)在Objective-C(或Objective-C++)源文件中顯式啓用自動引用計數(ARC)?如果ARC未啓用,源文件可能導致編譯失敗更好。Pragma明確啓用ARC?
我開始擁有許多可以與其他項目共享的僅ARC源文件。其中大多數都包含用於擴展內置類的類別方法。我只是不想將這些意外地包含在非ARC項目中,並開始泄漏內存。
在此先感謝!
是否有一個#pragma
(或其他一些構造)在Objective-C(或Objective-C++)源文件中顯式啓用自動引用計數(ARC)?如果ARC未啓用,源文件可能導致編譯失敗更好。Pragma明確啓用ARC?
我開始擁有許多可以與其他項目共享的僅ARC源文件。其中大多數都包含用於擴展內置類的類別方法。我只是不想將這些意外地包含在非ARC項目中,並開始泄漏內存。
在此先感謝!
據我所知,沒有辦法顯式啓用或禁用ARC。
但是可以檢測它是否啓用。只需將以下代碼片段添加到需要ARC的任何文件中。
#ifndef __has_feature
#define __has_feature(x) 0 /* for non-clang compilers */
#endif
#if !__has_feature(objc_arc)
#error ARC must be enabled!
#endif
更多信息:
http://clang.llvm.org/docs/AutomaticReferenceCounting.html
http://clang.llvm.org/docs/LanguageExtensions.html#__has_feature_extension
有趣的問題。嘗試用Apple打開雷達。如果源代碼沒有在ARC模式下編譯,可能會出現錯誤,對開發人員有利。據我所知,在使用-fno-obj-arc編譯時沒有出現僅含弧的語句會引起錯誤。 – viggio24