2011-10-31 12 views
31

मैं एक्सकोड 4.2 के लिए नया हूं, और मैं अभी तक पूरी तरह से एआरसी पर गति तक नहीं हूं। हालांकि, मैंने पढ़ा है कि @autoreleasepool ऑटोरेलीज पूल के मैन्युअल उपयोग को प्रतिस्थापित करता है और एआरसी के साथ अच्छा खेलने के लिए हुड के नीचे कुछ विशेष जादू करता है।@autoreleasepool?

फिर भी, जब मैं एआरसी विकल्प के साथ विशेष रूप से Xcode 4.2 में एक नई परियोजना शुरू बंद बदल गया मैं अभी भी टेम्पलेट कोड में @autoreleasepool बयान मिलता है।

यहां क्या सौदा है?

उत्तर

50
http://clang.llvm.org/docs/AutomaticReferenceCounting.html#autoreleasepool से

:

@autoreleasepool बराबर अर्थ विज्ञान के साथ, गैर एआरसी अनुवाद इकाइयों में इस्तेमाल किया जा सकता है।

और ग्रेग पार्कर का कहना है [1][2]:

LLVM 3.0 के @autoreleasepool { ... } NSAutoreleasePool तुलना में बहुत तेज करता है, तो अपने तैनाती लक्ष्य काफी नया है। कोई एआरसी आवश्यक नहीं है। (...) हमेशा काम करता है, लेकिन यह ओएस एक्स 10.7 या आईओएस 5.0 के तैनाती लक्ष्य के साथ तेज है।

तो तुम @autoreleasepool एआरसी की परवाह किए बिना उपयोग कर सकते हैं, और उस पर ओएस एक्स v10.7 + और iOS 5.0+ तेजी से NSAutoreleasePool हो जाएगा।

संबंधित मुद्दे