2012-09-15 2 views
8

मैं आईओएस लक्ष्य 5.1 के लिए xcode 4.4.1 का उपयोग कर रहा हूं मैंने एआरसी का उपयोग करके अपनी परियोजना शुरू की है, और बीच में प्रोजेक्ट मैंने अपनी परियोजना में कुछ गैर-आर्क तृतीय पक्ष स्रोत जोड़ा है। इस बिंदु पर , मैंने एक्सकोड में रीफैक्टरिंग करने का प्रयास करने का निर्णय लिया है और एक त्रुटि होती है। यह मेरे मूल स्रोत कोड में से एक से आता है।"कमजोर 'संपत्ति के संश्लेषण में आर्क परिणामों को दोबारा करने के लिए केवल आर्क या जीसी मोड में अनुमति दी जाती है"

मेरे पास (गैर-विषम, कमजोर) की संपत्ति है और मैंने इसे संश्लेषित किया है ==> 'कमजोर' संपत्ति का संश्लेषण केवल एआरसी या जीसी मोड में ही अनुमति है।

मुझे परेशान है - मैं चाप का उपयोग कर रहा हूं और यह शिकायत करता है कि यह केवल आर्क में ही अनुमति है ??

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

+0

एआरसी – poGUIst

उत्तर

-1

बजाय का उपयोग करें:

@property(nonatomic,assign) 

* टिप्पणी - यह कमजोर के रूप में ही है, लेकिन बहुत समान नहीं है । कमजोर वस्तु को शून्य पर भी सेट करता है, असाइन नहीं करता है।

+0

पर माइग्रेट करने से पहले 'असाइन करें' संपत्ति प्रकार सेट करते समय मुझे यह समस्या है जब यह नहीं है सही जवाब, असाइन के रूप में एक ही बात नहीं है। कमजोर होने पर कमजोर स्वचालित रूप से चर को सेट करता है। असाइन नहीं करता है। – AppHandwerker

+0

वे समान नहीं हैं, क्योंकि कमजोर आईओएस के पुराने संस्करणों में एक अवधारणा नहीं है। आईओएस के पुराने संस्करणों में जो कमजोर आपको कम से कम अनुमति नहीं देते हैं, उन्हें वैरिएबल को मैन्युअल रूप से असाइन करने और सेट करने के लिए सेट किया जाता है। – dacopenhagen

+2

हां लेकिन उनका लक्ष्य 5.1 है इसलिए यह सही जवाब नहीं है। ऐसा लगता है कि इस मुद्दे की तरह वह पहले से ही इसे एआरसी परियोजना के रूप में स्थापित कर चुका है और कुछ कारणों से इसे बदलने की कोशिश कर रहा है। यह अजीब त्रुटि संदेशों को फेंक देगा जैसा वर्णन किया गया है। उदाहरण के लिए यदि वह आपके जैसा कहता है और फिर एआरसी में परिवर्तित होता है तो यह उन्हें वीक में बदलने का सुझाव देगा :) अजीब विचार यह है कि अगर आप पहले से ही एआरसी लागू करने के बाद इसे कोशिश करते हैं और इसे परिवर्तित करते हैं तो यह हाथ से पहले एक त्रुटि फेंक देगा – AppHandwerker

2

ऐसा लगता है कि आप इसे पहले ही एआरसी प्रोजेक्ट के रूप में सेट कर चुके हैं और आप इसे फिर से बदलने की कोशिश कर रहे हैं। मैं केवल यह मान सकता हूं कि प्रक्रिया इस चरण में कमजोर संदर्भों की अपेक्षा नहीं करती है। यदि आप उन्हें असाइन करने के लिए सेट करते हैं तो एआरसी में कनवर्ट करें, आप देखेंगे कि यह सुझाव देता है कि आप उन्हें कमजोर में बदल दें।

1

मुझे आईओएस 6.1 को लक्षित करने वाले एक्सकोड 4.6.3 का उपयोग करके एक ही लक्षण था। मैंने एक अन्य प्रोजेक्ट से एक गैर-एआरसी कक्षा में लाया और इसे रिफैक्टर मेनू के माध्यम से परिवर्तित कर दिया, इसके बाद आपके द्वारा देखी गई त्रुटि के साथ पूर्व-मौजूदा वर्ग पर असफल निर्माण विफल हो गया है ("कमजोर 'संपत्ति का संश्लेषण केवल आर्क या जीसी में ही अनुमति है मोड ")।

प्रोजेक्ट गुणों ने स्पष्ट रूप से कहा कि यह अभी भी एक एआरसी प्रोजेक्ट था लेकिन संकलक यह भूल गया था कि इस सवाल के वर्ग में यह मामला था।

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

संपादित करें: मुझे अंततः एआरसी को अन्य एआरसी-अनुपालन वर्गों को 'रिफैक्टर' करना पड़ा, हालांकि उन्होंने संकलित किए गए चेतावनियों को संकलित किया और मेरे ऐप में दुर्घटनाएं उत्पन्न कीं । मुझे लगता है कि कहानी का नैतिक यह है कि रिफैक्टरिंग में आपकी पूरी परियोजना सहित सुरक्षित हो सकता है ...

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