objective c - मैं किसी प्रोजेक्ट में एक फ़ाइल के लिए एआरसी कैसे अक्षम कर सकता हूं?




objective-c xcode (12)

मैं अपनी परियोजना में सफलतापूर्वक एआरसी का उपयोग कर रहा हूं। हालांकि, मुझे कुछ फाइलों का सामना करना पड़ा है (उदाहरण के लिए, यूनिट परीक्षणों और नकली वस्तुओं में) जहां एआरसी के नियम अभी थोड़ा और नाजुक हैं। मुझे याद है कि प्रति फ़ाइल आधार पर एआरसी को अक्षम करने का एक तरीका था, हालांकि मैं यह विकल्प नहीं ढूंढ पाया।

क्या यह संभव है? मैं प्रति फ़ाइल आधार पर एआरसी कैसे अक्षम करूं?


  1. एक्सकोड परियोजना का चयन करें
  2. लक्ष्यों पर जाएं
  3. बिल्ड चरण अनुभाग का चयन करें
  4. बिल्ड चरण अनुभाग के अंदर संकलन स्रोत का चयन करें।
  5. वह फ़ाइल चुनें जिसे आप एआरसी को अक्षम नहीं करना चाहते हैं और add -fno-objc-arc जोड़ें


अक्षम एआरसी सक्षम करने के लिए चरण के बाद

एक्सकोड प्रोजेक्ट का चयन करें लक्ष्यों पर जाएं बिल्ड चरण अनुभाग का चयन करें बिल्ड चरण अनुभाग के अंदर संकलन स्रोत का चयन करें। वह फ़ाइल चुनें जिसे आप एआरसी को अक्षम नहीं करना चाहते हैं और add -fno-objc-arc जोड़ें


एक्सकोड 4.3 के लिए आसान तरीका हो सकता है: संपादित / रिफैक्टर / उद्देश्य-सी एआरसी में कनवर्ट करें, फिर उन फ़ाइलों को चेक करें जिन्हें आप परिवर्तित नहीं करना चाहते हैं। मुझे इस तरह से कंपाइलर ध्वज का उपयोग करने के समान ही मिलता है।


एक्सकोड में विशेष फ़ाइल के लिए एआरसी (स्वचालित संदर्भ गणना) को अक्षम करना संभव है।

लक्ष्य का चयन करें -> चरण बनाएं -> संकलन स्रोत -> फ़ाइल का चयन करें (डबल क्लिक करें) -> पॉप-अप विंडो में "-फनो-ओबीजेसी-आर्क" जोड़ें।

मुझे "पहुंच योग्यता" फ़ाइलों का उपयोग करने में इस स्थिति का सामना करना पड़ा था।

यह नीचे चित्र में दिखाया गया है:


कृपया स्क्रीनशॉट का पालन करें और -nono-objc-arc दर्ज करें


ध्वज जोड़ें "-फनो-ओबीजेसी-आर्क"।

सरल चरणों का पालन करें: ऐप> लक्ष्य> चरण बनाएं> संकलन स्रोत> कक्षा के बाद ध्वज जोड़ें "-फनो-ओबीजेसी-आर्क"


प्रत्येक चरण के लिए चरण चरणों में -fno-objc-arc का उपयोग करें


बिल्ड चरणों में -फनो-ओबीजेसी-आर्क ध्वज का उपयोग करें> उन फ़ाइलों के सामने संकलित स्रोत जिन्हें आप एआरसी लागू नहीं करना चाहते हैं।


यदि आप एकता का उपयोग कर रहे हैं, तो आपको इसे एक्सकोड में बदलने की आवश्यकता नहीं है, आप एकता के अंदर, विशिष्ट फ़ाइल (ओं) के लिए मेटाडेटा में एक संकलित ध्वज लागू कर सकते हैं। बस उन्हें प्रोजेक्ट पैनल में चुनें, और इंस्पेक्टर पैनल से आवेदन करें। यदि आप क्लाउड बिल्ड का उपयोग करने की योजना बनाते हैं तो यह आवश्यक है।


व्यक्तिगत फ़ाइल गैर-आर्क बनाने के लिए यह बहुत आसान तरीका है।

नीचे दिए गए चरणों का पालन करें:

व्यक्तिगत फ़ाइल पर एआरसी अक्षम करें:

  1. एक्सकोड में लक्ष्य / बिल्ड चरणों / संकलन स्रोतों पर वांछित फ़ाइलों का चयन करें

  2. .m फ़ाइल का चयन करें जिसे आप इसे गैर-एआरसी प्रेस एंटर टाइप -फनो-ओबीजेसी-आर्क बनाते हैं

एआरसी परियोजना ध्वज में गैर एआरसी फ़ाइल: -fno-objc-arc

गैर एआरसी परियोजना ध्वज के लिए एआरसी फ़ाइल: -fobjc-arc


Build Phases > Compile Sources में बस -fno-objc-arc ध्वज का उपयोग Compile Sources


बहु फ़ाइलों पर एआरसी अक्षम करें :

  1. एक्सकोड में लक्ष्य / बिल्ड चरणों / संकलन स्रोतों पर वांछित फ़ाइलों का चयन करें
  2. एंटर दबाए
  3. टाइप -फनो-ओबीजेसी-आर्क
  4. एंटर दबाएं या हो गया

;)





manual-retain-release