2011-11-15 9 views
10

क्या एक उद्देश्य-सी (या उद्देश्य-सी ++) स्रोत फ़ाइल में स्वचालित संदर्भ गणना (एआरसी) को स्पष्ट रूप से सक्षम करने के लिए #pragma (या अन्यथा कुछ निर्माण) है? यदि एआरसी सक्षम नहीं है तो स्रोत फ़ाइल संकलन विफल होने का कारण बन सकती है।प्रगति स्पष्ट रूप से एआरसी सक्षम करने के लिए?

मुझे कई एआरसी-केवल स्रोत फाइलें शुरू हो रही हैं जिन्हें संभावित रूप से अन्य परियोजनाओं के साथ साझा किया जा सकता है। इनमें से अधिकतर अंतर्निहित कक्षाओं का विस्तार करने के लिए श्रेणी विधियों में शामिल हैं। मैं गलती से इन्हें गैर-एआरसी परियोजना में शामिल नहीं करना चाहता हूं और स्मृति को बाहर निकालना शुरू कर देता हूं।

अग्रिम धन्यवाद!

+0

अच्छा सवाल है। ऐप्पल के साथ एक रडार खोलने की कोशिश करो। यदि एआरसी मोड में स्रोत कोड संकलित नहीं किया गया है तो शायद किसी त्रुटि को बढ़ाने का कोई तरीका होगा डेवलपर्स के लिए लाभ होगा। जहां तक ​​मुझे पता है कि कोई चाप-केवल बयान नहीं है जो -fno-obj-arc सेट के साथ संकलित होने पर त्रुटि उत्पन्न होती है। – viggio24

उत्तर

11

जहां तक ​​मैं कह सकता हूं कि एआरसी को स्पष्ट रूप से सक्षम या अक्षम करने का कोई तरीका नहीं है।

हालांकि यह पता लगाना संभव है कि यह सक्षम है या नहीं। बस निम्न स्निपेट को किसी भी फ़ाइल में जोड़ें जिसमें एआरसी की आवश्यकता है।

#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