2011-09-19 4 views
50

में एआरसी प्रोजेक्ट-वाईड को कैसे सक्षम करते हैं मेरे पास एक आईओएस ऐप है जिसे मैं एआरसी का उपयोग करके कनवर्ट करना चाहता हूं। मैं बस माइग्रेशन टूल का उपयोग करता हूं, लेकिन पूर्वावलोकन चरण के दौरान यह लगातार मेरे लिए त्रुटिपूर्ण होता है।आप एक्सकोड 4.2

मैं जानता हूँ कि मैं एक फ़ाइल-दर-फ़ाइल के आधार पर -fobjc-arc संकलक निर्देश का उपयोग कर सकते हैं, लेकिन मैं, पूरी परियोजना पर एआरसी सक्षम करने के लिए तो -fno-objc-arc का उपयोग कर अलग अलग वर्गों बंद कर देते हैं चाहता हूँ।

4.2 में नई परियोजनाएं डिफ़ॉल्ट रूप से एआरसी का उपयोग कर सकती हैं, इसलिए वहां कहीं भी स्विच होना चाहिए।

किसी को भी मेरी मदद कर सकते ARC

उत्तर

65

करने के लिए परियोजना कन्वर्ट करने के लिए "एआरसी उपलब्ध Xcode 4.2 में, वर्तमान में बीटा में है, और केवल जब बजना (उर्फ साथ संकलन" एप्पल LLVM संकलक ")। सेटिंग , कहा जाता है स्पष्ट रूप से पर्याप्त, "ऑब्जेक्टिव-सी स्वत: संदर्भ गिनती" है। इसे चालू करें, और बंद तुम जाओ।

आप मौजूदा कोड पर काम कर रहे हैं, तो इस सेटिंग को बदलने त्रुटियों का एक विशाल मात्रा का उत्पादन करेगा एआरसी न केवल आपके लिए स्मृति का प्रबंधन करता है, लेकिन यह आपको स्वयं करने की कोशिश करने से रोकता है। एआरसी का उपयोग करते समय मैन्युअल रूप से बरकरार/रिलीज/ऑटोरेलीज भेजना अवैध है। चूंकि सामान्य गैर-एआरसी कोको कोड इस सामग्री से भरा हुआ है, तो आपको त्रुटियां मिलेंगी।

सौभाग्य से, एक्सकोड मौजूदा कोड को परिवर्तित करने के लिए एक टूल प्रदान करता है। संपादित करें -> रिएक्टर ... -> उद्देश्य-सी एआरसी में कनवर्ट करें ... और एक्सकोड आपके कोड को परिवर्तित करने के माध्यम से आपको मार्गदर्शन करेगा। । हालांकि कुछ स्थितियों में, जहां यह पता लगाना कि क्या करना है मदद की जरूरत है हो सकता है, इस प्रक्रिया को काफी हद तक स्वत: होना चाहिए "

मैं ले लिया है कि इस लिंक से, मुझे एक बहुत मदद की: http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html

+0

मेरे अंत में "काफी हद तक स्वचालित" नहीं, मैंने बस एक घंटे या उससे अधिक समय तक बरकरार रखने और ऑटोरेलीज़ से छुटकारा पाने के लिए खर्च किया, इसका उद्देश्य 'उद्देश्य-सी एआरसी में कनवर्ट करें' का क्या मतलब है? यह क्या करता है? – PaulG

+0

क्या आप सही हैं, आपको अभी भी बरकरार रखने और रिलीज़ को मैन्युअल रूप से हटाने की आवश्यकता है .. मुझे यकीन नहीं है कि क्या यह आपको यह देखने के लिए मजबूर करने के लिए एप्पल लक्ष्य था कि आपको अब और क्या चाहिए या यदि यह सभी को हटाने के लिए एक्सकोड के लिए बहुत त्रुटि हो अपने आप। – RyanG

48

अपनी परियोजना या लक्ष्य का चयन करें और फिर बिल्ड सेटिंग करने और एप्पल LLVM संकलक 3.0 धारा के तहत जाना -। भाषा आप विकल्प ऑब्जेक्टिव-सी स्वत: संदर्भ गिनती देखेंगे

0,123,
+0

'कचरा संग्रह' के लिए एआरसी के ठीक नीचे सेटिंग, क्या एआरसी से जुड़ा हुआ है? – raffian

+1

@SAFX, नहीं। एआरसी और जीसी दो पूरी तरह से अलग चीजें हैं। –

+1

यह xcode 4.6 में भी सच है? – topwik

5

टॉवसे के लिए, एक्सकोड 4.6 में आपको "CLANG_ENABLE_OBJC_ARC" की आवश्यकता होगी और फिर इसे सक्षम करने के लिए "हां" में बदलना होगा।

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

  • कोई संबंधित समस्या नहीं^_^