2011-08-12 20 views
8

के साथ विफल हुआ मैं नया एक्सकोड 4.2 बीटा आज़मा रहा हूं और मुझे आश्चर्य है कि मेरा कोड गलत है या मैं एक बग में कूद रहा हूं।एक्सकोड 4.2 संकलन प्रोटोटाइप सेल

नई स्टोरीबोर्ड सुविधा वादा कर रही है लेकिन इस समय बेहद खराब है। अभी मैंने टेबलव्यू के साथ एक साधारण परियोजना बनाई है। यह तालिकादृश्य "समूहबद्ध शैली" होगा जिसमें UITextFields होंगे। स्टोरीबोर्ड की नई "प्रोटोटाइप सेल" सुविधा आपको जीयूआई में एक प्रोटोटाइप सेल बनाने देती है जिसे आप विधि सेलफोरएट इंडेक्सपैथ में "रीयूज आइडेंटिफायर" के साथ आकर्षित कर सकते हैं। जब मैं इस "प्रोटोटाइप सेल" में UITextField में खींचता हूं और इसे खींचता हूं, तो यह बहुत अच्छा काम करता है!

हालांकि! जब मैं इस कोडफील्ड को अपने कोड में आउटलेट में संदर्भित करता हूं तो मुझे त्रुटि मिलती है: Uncategorized संकलन विफल हुआ। पथ पर लिखने में असमर्थ: ... (DerivedData के लिए पथ)

यह क्यों है? क्या यह एक बग है? किसी और को यह मिलता है?

+0

मैं प्रोटोटाइप सेल में यूआईटीएक्स्टफिल्ड को संदर्भित करने की पुष्टि कर सकता हूं, काम नहीं कर रहा है ... एक्सकोड 4.2.1 ... humph – lol

+0

नीचे टोनी का जवाब मेरे लिए काम करता है। शायद @OjectjectCoder इसे स्वीकार कर सकता है? – Thompsonian

+0

टोनी का जवाब मुझे यह समझने में मदद करता है कि क्या गलत था: मेरे सेल (स्टोरीबोर्ड में) टेक्स्ट फ़ील्ड और मेरी टेबल व्यू क्लास (कोड) के बीच एक आउटलेट था। आउटलेट स्टोरीबोर्ड और सेल क्लास कोर्स में सेल के बीच होना चाहिए था! – dvkch

उत्तर

1

मेरे पास आपकी समस्या का सही समाधान नहीं है लेकिन मेरे पास वही था और मुझे इसे काम करने के लिए एक तरीका मिला (TableViewController को आउटलेट को जोड़ने के बिना)।

बस अपने दृश्य को स्क्रैच से फिर से बनाने का प्रयास करें और & बनाएं जब भी आप कोई घटक जोड़ते हैं।

क्रम में एक तालिका दृश्य नियंत्रक => परीक्षण जोड़ें यदि यह एक खाली तालिका दिखाता है।

अपने कस्टम सेल को डिज़ाइन करें और अपने सेल के आउटलेट को लिंक करें। (अपने TableViewCell की कक्षा को बदलने के बिना भूल गए) => फिर से परीक्षण करें

फिर अपनी कक्षा में TableViewController की कक्षा बदलें और अब आप अपने सेल के आउटलेट तक पहुंच पाएंगे।

यह मेरे लिए काम किया। मुझे आशा है कि यह आपके लिए होगा।

+0

समस्या थी धन्यवाद! – dvkch

+0

मैं इस समाधान को स्वयं पोस्ट करने जा रहा था, लेकिन आपने इसे काफी सटीक रूप से दबाया है। समस्या किसी संपत्ति के लिए बाध्यकारी हो रही है जिसमें सबसे अधिक संभावना है जिसमें व्यू कंट्रोलर है जिसमें UITableView है। इसके बजाए, आपको UITableViewCell क्लास बनाना चाहिए और उन गुणों से जुड़ना चाहिए क्योंकि ट्रॉक्स ने संकेत दिया है। –

31

मैंने एक्सकोड 4.2 (अंतिम रिलीज के साथ-साथ) में कुछ मौकों पर इस समस्या को चलाया है।

यह आमतौर पर एक आउटलेट या अन्य कनेक्शन से संबंधित होता है जिसे आपने स्थापित किया है कि संकलक परेशान है (बेहतर अवधि की कमी के लिए)। चाल यह निर्धारित कर रही है कि कौन सा कनेक्शन है।

  1. स्विच वाम-पंथी फलक
  2. चयन में लॉग नाविक के लिए "बनाएँ"
  3. आप देखना चाहिए:

    आप निम्न कार्य करके Xcode 4.2 में निर्माण प्रक्रिया का विस्तृत उत्पादन देख सकते हैं आपके संकलन सहित त्रुटि, त्रुटि विफल रही।

  4. आप सही आइकन पर क्लिक करके उस त्रुटि के लिए बिल्ड लॉग का विस्तार कर सकते हैं (एक सूची की तरह दिखता है)। इससे समस्याओं का कारण बनने में त्रुटि का विस्तार और प्रदर्शन होना चाहिए।
+1

मैंने व्यू कंट्रोलर में गलत संबंध बनाया है। लॉग का उपयोग करके, मैं उस गलती को देख सकता था। धन्यवाद। – Nasenbaer

+0

बहुत बहुत धन्यवाद। आपने मुझे कई घंटे डिबगिंग बचाई। – iRuth

1

मुझे अपनी परियोजना के लिए ~/लाइब्रेरी/डेवलपर/एक्सकोड/व्युत्पन्न डेटा/और पुनर्निर्माण में फ़ोल्डर को हटाना पड़ा। आप उपरोक्त टोनी की प्रक्रिया का उपयोग कर लॉग में उस फ़ोल्डर का नाम पा सकते हैं।

संपादित करें: अब मुझे लगता है कि यह एक्सकोड (संस्करण 4.2.1) में एक बग है। यह मेरे लिए intermittent है। इसे ठीक करने के लिए मुझे कभी-कभी दो या तीन बार पुनर्निर्माण करना होता है। बिल्ड/क्लीन मदद करने के लिए प्रतीत नहीं होता है।

संपादित करें 2: ठीक है, उम्मीद है कि असली समस्या है। प्रोजेक्ट नेविगेटर (शायद प्रोजेक्ट की प्रतिलिपि बनाने/पुनर्निर्माण करने के अवशेष) में मेरे स्टोरीबोर्ड के दो संदर्भ थे। मैंने अभी उनमें से एक को हटा दिया है (केवल संदर्भ को हटाना सुनिश्चित करें!)। लगता है कि समस्या होने की संभावना है (एक ही फाइल को एक साथ दो बार संकलित करना)।

4

अगर किसी को अभी भी इसमें कोई समस्या है तो मुझे पता चला है कि समाधान आउटलेट के बजाय टैग का उपयोग करना है।

CellForRowAtIndexPath UILabel *titleLabel = (UILabel *)[cell viewWithTag:1001]; titleLabel.text = @"Name";

+0

+1। धन्यवाद! ऐसा करने का सही तरीका लगता है। यहां भी उल्लेख किया गया है http://stackoverflow.com/questions/9236621/what-does-the-couldnt-compile-connection-error-mean – Dexter

0

आप एक आउटलेट के लिए शीर्षक या छवि या विस्तार लेबल नहीं जोड़ना चाहिए।

आपको किसी आउटलेट की आवश्यकता क्यों है?

जब आप प्रोटोकॉल को लागू करते हैं तो वे कोड के अंदर अंतर्निहित रूप से संशोधित होते हैं।

4

ठीक है मेरे एक कॉलेग्यू ने मुझे कनेक्शन इंस्पेक्टर और वॉयला दिखाया, निर्माण विफलता के कारण एक पुराना कनेक्शन था। तो .storyboard फ़ाइल का चयन करें, कनेक्शन इंस्पेक्टर खोलें (तीर के साथ अंतिम) और यह आपको सभी connetions का एक सिंहावलोकन देगा।

1

मुझे यह त्रुटि मिली जब मैंने स्टोरीबोर्ड आईडी के नाम पर/एक डालने की कोशिश की। जांचें कि आप सुरक्षित पात्रों का उपयोग कर रहे हैं! (दोह!)

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