Xcode 6 बग: इंटरफ़ेस बिल्डर फ़ाइल में अज्ञात वर्ग


600

मैंने Xcode 6 बीटा 4 में अपग्रेड किया और अब मेरा ऐप मैसेज के साथ लगातार क्रैश हो रहा है

इंटरफ़ेस बिल्डर फ़ाइल में अज्ञात वर्ग X।

यह दुर्घटनाग्रस्त हो जाता है क्योंकि माना जाता है कि Xcode मेरे कस्टम क्लासेस को नहीं मिला है जिसे मैंने अपने स्टोरीबोर्ड में लिंक किया है लेकिन यह दिखाता है कि वे Xcode इंटरफ़ेस में सही तरीके से जुड़े हुए हैं।

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

संपादित करें: मैं यह भी जोड़ना चाहूंगा कि मैंने सफाई की कोशिश की, सिम्युलेटर को रीसेट करने, बिल्ड चरणों के साथ खिलवाड़ करने आदि में से कोई भी काम नहीं किया।


के संभावित डुप्लिकेट stackoverflow.com/questions/3416269/...
Bouke

1
@ ImreKelényi आप सही हैं। आपने हाल ही में जो वर्णन किया है उसे करने के बाद हाल ही में मेरे साथ ऐसा हुआ।
एपिक बाइट

यह मेरे लिए काम करता है, stackoverflow.com/questions/1725881/…
vrunoa

यह मेरे लिए टाइपो था, इसे कंट्रोल तत्व में डिबग करें, जब तक यह नहीं आता, तब तक इसे चुनें; नियंत्रक> पहचान निरीक्षक> कस्टम वर्ग> कक्षा देखें। हटाएं कि यदि वह वर्ग परिभाषित नहीं है।
मावेरिक्स

9
कृपया ध्यान दें! यह "त्रुटि" विभिन्न उत्पत्ति से उपजी हो सकती है। यदि स्वीकृत उत्तर आपके लिए काम नहीं करता है, तो नीचे जाएं और अगले उत्तर का प्रयास करें। मेरी स्थिति के लिए सही उत्तर 5 वां उत्तर था।
जैक्सनकॉ

जवाबों:


1454

मैंने इस मुद्दे को हल किया क्योंकि मैं प्रश्न लिख रहा था। मुझे लगा कि मैं अपने प्रश्न का उत्तर दूंगा और इसे किसी और के लिए छोड़ दूंगा जो Xcode 6 बीटा 4 का उपयोग करते समय इस समस्या का सामना कर सकता है।

इस समस्या को हल करने के लिए, आपको स्टोरीबोर्ड में अपनी प्रत्येक कस्टम क्लास ऑब्जेक्ट का चयन करने की आवश्यकता है (इसमें कोई कस्टम दृश्य शामिल हैं, यहां तक ​​कि कस्टम व्यू कंट्रोलर स्वयं भी शामिल हैं)।

फिर उन वस्तुओं के साथ, जो पहचान निरीक्षक खोलें और "कस्टम क्लास" के तहत आपको मॉड्यूल विकल्प देखना चाहिए। मॉड्यूल टेक्स्ट बॉक्स के अंदर क्लिक करें, और एंटर दबाएं।

बस! मेरे सभी कस्टम ऑब्जेक्ट के लिए मौजूदा मॉड्यूल आंतरिक रूप से Xcode 6 बीटा 4 में किसी भी तरह से गलत तरीके से सेट होना चाहिए था। लेकिन निरीक्षक में इसका कोई दृश्य संकेत नहीं था।

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

यहां चीजों को और अधिक स्पष्ट करने के लिए एक छवि दी गई है: यहाँ छवि विवरण दर्ज करें


70
मेरे लिए, "मॉड्यूल" पर क्लिक करने और एंटर दबाने पर लगातार काम नहीं किया गया, लेकिन "क्लास" फील्ड (और एंटर प्रेस) का चयन हमेशा काम किया।
इमरे केल्नी

2
मेरे लिए, लक्ष्य सही ढंग से निर्धारित किया गया था, लेकिन कक्षा अभी भी आईबी में नहीं दिखा। मैंने देखा, हालांकि, फ़ाइल के "स्थान" ने "रिलेडेट टू ग्रुप" के बजाय एक पथ "प्रोजेक्ट के सापेक्ष" दिखाया। फ़ाइल संदर्भ और समूह को हटाकर परियोजना रूट में इसे फिर से जोड़ना मेरे लिए काम किया।
knl

8
वाह। इसके लिए धन्यवाद, मुझे नहीं लगता कि मैं वहां पहुंचता। यह एक समस्या है जो @objc(...)मेरे स्विफ्ट वर्गों में से एक में जुड़ने के बाद शुरू हुई ।
21

12
यह मुद्दा अभी भी XCode 7.2 में मौजूद है। यह समाधान काम कर गया।
टॉम फास्ट

3
यह अभी भी Xcode 8.3.1 में एक मुद्दा है ... इस तरह की शर्म
Sephr Behroozi

99

कभी-कभी Xcode छूट जाती थी customModule="AppName" customModuleProvider="target"

इसे ठीक करने के लिए, स्रोत कोड के रूप में स्टोरीबोर्ड खोलें और इस लाइन को बदलें:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
sceneMemberID="viewController">

इसके लिए:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass"
 customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

7
वास्तव में मेरे मामले में मुझे हटाना पड़ा customModuleProvider, फिर त्रुटि दूर हो गई।
Maciej Swic

3
गिलर्मो, मार्च के अंत के रूप में अभी भी Xcode में हो रहा है!
एड मैनर्स

3
@MaciejSwic customModuleProviderमेरे लिए भी इसे हटा दिया , धन्यवाद!
सकीबॉय

1
xib फ़ाइलों के बारे में क्या?
स्लीप्सऑनवैपर्स

7
अभी भी हो रहा है ... यह इस तरह की चीजें हैं जो मुझे रोना चाहती हैं :(
ल्यूक

72

स्विफ्ट क्लास का नाम बदलने के बाद मुझे यह समस्या हुई। @Objc निर्देश का उपयोग करके इसे हल किया:

@objc(ForumTopicListViewController) class ForumTopicListViewController

4
यह मेरे लिए तय है, मेरे पास था @objc class Xऔर @objc(X) class Xकाम करने के लिए बदल रहा है ।
जो

1
आप अपने व्युत्पन्न डेटा को देखने के लिए stackoverflow.com/questions/24039932/…
user1760527

एकल दृश्य प्रोजेक्ट टेम्पलेट से डिफ़ॉल्ट ViewController वर्ग का नाम बदलने के बाद यह समस्या थी। मुझे आश्चर्य है कि क्या जादू का इस्तेमाल किया गया था ताकि @objc()'मूल' ViewController वर्ग के लिए निर्देश की आवश्यकता न हो ...
बेरेंड क्लेन हेनवेल

मैं इसके विपरीत जाता हूं। मैंने स्टोरीबोर्ड फ़ाइल में मॉड्यूल का नाम निर्दिष्ट किया था, लेकिन @objc निर्देश भी जोड़ा।
WeZZard

1
मेरे लिए काम नहीं किया। :( न तो मॉड्यूल नाम काम करने का समाधान है।
पौराणिक 20

64

एकाधिक लक्ष्य के साथ परियोजना

मेरे मामले में मैं कई लक्ष्य के साथ प्रोजेक्ट पर काम कर रहा हूं और मुद्दा "लक्ष्य से विरासत में" अनियंत्रित था। "लक्ष्य से विरासत" का चयन करने से मेरी समस्या हल हो गई

यहाँ छवि विवरण दर्ज करें


इसे पोस्ट करने के लिए धन्यवाद। समस्या का हल मैं बहुत जल्दी देख रहा था।
JaredH

मेरी भी ऐसी ही स्थिति थी। (XCode 9.4.1) मैंने FilesTestA नाम से एक iOS ऐप बनाया, जिसमें एक कस्टम UIView नाम का MxFileView (जिसमें MxFileView.swift और MxFileView.xib शामिल थे)। फिर मैंने एक और लक्ष्य जोड़ा: एक आज का विजेट ("FilesTestAWidget")। विजेट में MxFileView का उपयोग करने के लिए समाधान: (1) वर्ग = "MxFileView"; (2) "टारगेट से इनहेरिट मॉड्यूल" की जांच करें (या इसे अनचेक करें और मैन्युअल रूप से "FilesTestAWidget" दर्ज करें); (3) ऐप लक्ष्य में, सुनिश्चित करें कि MxFileView.swift और MxFileView.xib दोनों अपने लक्ष्य सदस्यता में FilesTestAWidget शामिल हैं।
केनस्टर 999

यह Xcode 10.1 (एक एकल iOS ऐप लक्ष्य, और 2 परीक्षण लक्ष्य) में डिफ़ॉल्ट टेम्पलेट से एक नई परियोजना पर मेरे साथ हुआ। मेरे सभी कस्टम दृश्य नियंत्रकों (और इसलिए प्लेसहोल्डर पाठ "कोई नहीं") के लिए चेकबॉक्स अनियंत्रित था। मेरे स्टोरीबोर्ड में प्रत्येक कस्टम दृश्य नियंत्रक के लिए चेकबॉक्स के माध्यम से जाने और जांचने के बाद, समस्या हल हो गई थी।
मेसन

58

यह मेरे लिए काम किया ..

अपने संकलित स्रोत की जाँच करें, चाहे वह फ़ाइल (जैसे; ViewController.m) जोड़ी गई हो या नहीं, मेरे मामले में ViewController फ़ाइल नहीं जोड़ी गई थी, इसलिए यह मुझे त्रुटि दे रही थी ।।

यहाँ छवि विवरण दर्ज करें


@CarmenA आप केवल '.m' फ़ाइलों को कभी भी जोड़ते हैं Compile Sources। यह वास्तव में कुछ के लिए सही (और केवल) समाधान है।
जैक्सनकॉ

मैंने बिना किसी भाग्य के कई अन्य समाधानों की कोशिश की। यह चाल चली। कुछ अजीब कारणों से एक लक्ष्य एक स्रोत फ़ाइल को याद कर रहा था जो मुझे फिट दे रही थी।
गैलेक्टिकुह

मेरे लिए भी .. कुछ संघर्ष के संकल्प की वजह से हुआ
Eldhose

46

यह 6.0 से ऊपर के किसी भी Xcode में हो सकता है। स्विफ्ट प्रोजेक्ट में कुछ ViewController कक्षाओं का नाम बदलने के बाद मेरे साथ ऐसा हुआ (लेकिन मुझे लगता है कि यह ओब्ज-सी के साथ भी होगा)। आपको बस इंटरफ़ेस बिल्डर को खोलना है, ViewController के आइडेंटिटी इंस्पेक्टर पर जाएं जिसका नाम बदलकर क्लास रखा गया था, क्लास चुनें और एंटर दबाएं। यह पुनर्नामित वर्ग को चयनित ViewController के लिए पुन: असाइन करेगा और मॉड्यूल मान को भी रीसेट करेगा जो वर्ग का नाम बदलने के बाद खो जाता है।

8.1 Xcode के लिए अपडेट (शायद 8.0 भी):

Xcode 8.1 बस दुर्घटनाग्रस्त हो गया। बस और गुस्सा बस दुर्घटनाओं और कुछ भी नहीं छापता है। मैं एक घंटे के लिए उस प्रेत दुर्घटना का पीछा कर रहा था ताकि यह पता लगाया जा सके कि यह एक ही बात थी - आईबी में अनसाइनड क्लास। यदि आपको कुछ प्रेत दुर्घटनाएँ हो रही हैं, तो पहले अनिर्दिष्ट कक्षाओं के लिए IB की दोबारा जाँच करें।


इसके लिए धन्यवाद। ऐसा प्रतीत होता है कि आपके सुझाव का अनुसरण करने से Xcode मॉड्यूल (IB में कक्षा के तहत) से कोई भी वर्तमान में अद्यतन नहीं होता है। मुझे लगता है कि मुद्दा यह है कि बस नाम w / आउट हिटिंग दर्ज करना Xcode द्वारा एक मॉड्यूल अपडेट को ट्रिगर करने में विफल रहता है।
RockiesGrizzly

इसने मेरे लिए काम किया। मैंने अनजाने में एक नियंत्रक वर्ग का नाम बदल दिया, इसलिए यह स्पष्ट रूप से अब मौजूद नहीं था जब दृश्य नियंत्रक लोड किया गया था।
लाइटहाउस

32

कभी-कभी नियंत्रक जो आप प्रदान कर रहे हैं वह वर्तमान एप्लिकेशन से अपनी लक्ष्य सदस्यता खो देता है। उस स्थिति में, "मॉड्यूल" फ़ील्ड पर एंटर दबाने से कुछ नहीं होगा। कंट्रोलर के पास जाएं और सुनिश्चित करें कि उसके पास वर्तमान ऐप पर निर्धारित सदस्यता है।


यह मेरे लिए भी समस्या थी - कई लक्ष्य कक्षा की गलती से उस लक्ष्य को शामिल कर रहे थे जो मैं निर्माण कर रहा था।
रयान क्रैगर

मैंने फाइलों को मर्ज कर दिया और अपने एक लक्ष्य में यह मिस कर दिया, शानदार जवाब
बेंजामिन जिमेनेज़

एक अच्छा, मर्ज pbx ने लक्ष्य सदस्यता मूल्यों को तोड़ दिया।
सिस्टम

32

सक्षम करने Inherit Module From Targetसे सही लक्ष्य मॉड्यूल प्राप्त हुआ। इससे मसला हल हो गया।

यहाँ छवि विवरण दर्ज करें


पुष्टि करें। इससे मुझे मसले को सुलझाने में मदद मिली।
क्रिस 8447

जब मैं ऑब्जेक्टिव-सी से स्विफ्ट में कोई व्यू कंट्रोलर कन्वर्ट करता हूं तो मेरे पास आमतौर पर यह समस्या होती है। मैं अंतिम पत्र को फिर से टाइप करता हूं और एंटर दबाता हूं। साथ ही टोटका भी करना चाहिए।
DevNebulae

30

मेरा जवाब: कस्टम पॉड नाम के बराबर कस्टम मॉड्यूल सेट करें (मेरे उदाहरण में - कस्टम क्लास नाम) जैसे संलग्न स्क्रीनशॉट पर

यह समाधान एक विशिष्ट मामले के लिए है : पोड (या कार्थेज ) ढांचे से कस्टम व्यू कक्षाओं के लिए ।

इन्फ्रास्ट्रक्चर: XCode8, Swift3

यहाँ छवि विवरण दर्ज करें


18

मैंने इसे ठीक उसी तरह से ठीक किया जैसा कि चिकब्यूज ने सुझाव दिया था (हालांकि इसे इंगित करने के लिए धन्यवाद, हालांकि)। स्टोरीबोर्ड फ़ाइल में, इसे खोजें:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" customModule="AppName" customModuleProvider="target" sceneMemberID="viewController">

और इसे इसके साथ बदलें:

<viewController storyboardIdentifier="StoryboardId" id="SomeID" customClass="CustomClass" sceneMemberID="viewController">

मैं विश्वास नहीं कर सकता कि स्विफ्ट कंपाइलर और Xcode 6 में बग्स को कितने घंटे लग रहे हैं


17

Moduleमेरे लिए उचित का चयन करके Custom Classमैंने इस समस्या को हल किया।

यह रहा :

यहाँ छवि विवरण दर्ज करें


13

मुझे Xcode 8 में इस समस्या का सामना करना पड़ा , इसे हल करने के लिए मुझे टेक्स्ट एडिटर में स्टोरीबोर्ड को संशोधित करना पड़ा।

सामान्य तौर पर, अपने नियंत्रण के लिए customModuleऔर customModuleProviderनियंत्रण इकाई से निकालें और देखें ।

मेरे लिए एक चाल चली।


हा! नाइस हैक :)
Vexy

10

मुझे भी यही समस्या थी।

मेरे मामले में, Xcode मेरे कस्टम वर्ग को इसमें शामिल नहीं कर रहा था: लक्ष्य> चरण बनाएँ> संकलित स्रोत।

इसलिए मैं आपको यह सत्यापित करने की सलाह देता हूं कि आपका CustomClass.m है या नहीं।

यहाँ छवि विवरण दर्ज करें

मैं आशान्वित हूं कि इससे आपको सहायता मिलेगी।


यह वही है जो मेरे साथ हुआ है, और सौभाग्य से मुझे अपना रास्ता मिल गया है! मैं यहाँ जवाब देने के लिए आ रहा था लेकिन आप पहले थे। धन्यवाद!!!
गेब्रियल पिफ़रेट्टी

9

मैंने Xcode 6.1 में इस समस्या का सामना किया Main.storyboard, जब मैंने अपने प्रोजेक्ट से LaunchScreen.xibफ़ाइल और डिफ़ॉल्ट ViewControllerकक्षाएं हटा दीं।

मैंने इसे Launch Screen Fileऔर Main Interfaceप्रविष्टियों को हटाकर इसे ठीक कियाInfo.plist



8

मैंने इसके लिए हर जगह गुहार लगाई। मेरे लिए कोई भी जवाब तब तक काम नहीं करता जब तक मैं 1 दोस्त से नहीं मिला, जिसने मुझे अपने प्रोजेक्ट फ़ोल्डर को डेस्कटॉप पर ले जाने के लिए कहा। यह बस स्वचालित रूप से काम करता है। जाहिरा तौर पर अगर आपके पास कई फ़ोल्डर में गहरी परियोजना फ़ोल्डर है, तो XCODE वास्तव में टूट जाता है।


मुझे यह समस्या फिर से Xcode 7 बीटा 5 में मिली क्योंकि मैंने इसे Xcode 6 में पहले प्राप्त किया था। इस बार, यह विधि मेरे लिए काम करती है।
जेक लिन

1
दृश्य स्टूडियो में भी इसी तरह की समस्या है। लेकिन वहाँ पर, हमें एक स्पष्ट चेतावनी संदेश मिलता है जिसमें कहा गया है कि रास्ता बहुत लंबा है और चीजों को जोड़ा या संपादित नहीं किया जा सकता है। यकीन नहीं है कि अगर XCODE के साथ भी यही बात है, लेकिन उस एपिसोड के बाद मैं अपने सभी प्रोजेक्ट्स को या तो दस्तावेजों या डेस्कटॉप पर रखता हूं और फिर कभी भी यह समस्या नहीं हुई। मैंने भी किसी को Xamarin Studio का इस्तेमाल करने की सलाह दी और यह उनके लिए भी काम आया ...
VBARathi

7

ये चरण मेरे लिए काम करते हैं।

1) स्पष्ट व्युत्पन्न डेटा।
2) .h। और .m फाइल्स को निकालें
3) .h और .m फाइल्स को फिर से बनाएँ


यह मेरे लिए भी काम किया। मैंने भी व्युत्पन्न डेटा को साफ़ किए बिना इसे काम किया।
jaytrixz

यह मेरे लिए काम किया गया था, बहुत बहुत धन्यवाद अरविन, लेकिन फिर भी मुझे यह नहीं मिल रहा है कि यह ऐसी त्रुटि क्यों है क्योंकि मैंने कक्षा में या आईबी में कुछ भी संशोधित नहीं किया है
कीर्तिकुमार ए।

7

मैंने स्रोत कोड के रूप में अपनी स्टोरीबोर्ड फ़ाइल खोलकर और अपने अज्ञात वर्ग की खोज के लिए कमांड-एफ का उपयोग करके और इससे जुड़े कस्टम वर्ग को हटाकर इसे हल किया।


6

@Gfrs ने जो कहा वह सही है, आपको मॉड्यूल सेट करने की आवश्यकता है। हालाँकि मैं एक बार एक मुद्दे पर भाग गया था कि मेरी कक्षा Classड्रॉपडाउन में सूचीबद्ध नहीं थी । आखिरकार मैंने स्विफ्ट फ़ाइल को हटा दिया, फिर से Xcode शुरू किया और फ़ाइल को फिर से बनाया। अंत में कक्षा को सूचीबद्ध किया गया और स्टोरीबोर्ड में इस्तेमाल किया जा सकता है।

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


मेरे लिए क्लास फ़ाइल को निकालना और फिर से जोड़ना काम कर गया। धन्यवाद!
निकोलस मिआरी

6

मैंने सभी नाम नियंत्रक और विचारों के लिए पहचान निरीक्षक के कस्टम वर्ग में मॉड्यूल नाम (दुर्भाग्य से ड्रॉप सूची कुछ भी नहीं दिखाएगा ...) टाइप करके इस समस्या को हल किया।

आपको लक्ष्य प्रदाता को इंगित करने की भी आवश्यकता हो सकती है। इस उद्देश्य को प्राप्त करने के लिए आप स्टोरीबोर्ड को सोर्सकोड मोड में खोल सकते हैं और ViewController और View कोण कोष्ठक दोनों में "customModuleProvider" विशेषता जोड़ सकते हैं।


6

मेरा समाधान (Xcode 8.1 स्विफ्ट 3.0):

इंटरफ़ेस बिल्डर फ़ाइल में अज्ञात वर्ग xxx

सोर्स कोड के रूप में स्टोरीबोर्ड खोलें और xxx की खोज करें । वह विशेषता निकालें जिसमें वैल्यू xxx हो । बनाएँ और चलाएँ।


WTF? यह मेरे लिए परम आवश्यक था, धन्यवाद। मुझे customModule="" customModuleProvider=""
बजे

1
यदि हम एप्लिकेशन स्टोर में एक एप्लिकेशन प्रकाशित करने का प्रयास करते हैं जिसमें इस तरह की त्रुटि होती है, तो एप्लिकेशन को बिना सोचे-समझे अस्वीकार कर दिया जाता है।
ibrahimyilmaz

मैं असहमत हूं। मैंने सिर्फ एक निर्माण प्रस्तुत किया था जिसे मुझे TestFlight में संशोधित करना था और यह बीटा परीक्षण के लिए तैयार है ... हम देखेंगे कि वास्तविक ऐप स्टोर पर क्या होता है, लेकिन यह एक आईबी बग आईएमओ है। धन्यवाद!
डैन रोसेनस्टार्क

4

मेरे मामले में, मैं एक झंडा जोड़ा -ObjCकरने के लिए Other Linker Flagsपरियोजना सेटिंग्स में यह काम करने के लिए। इसके अलावा, मैंने -all_loadझंडे के साथ कोशिश की और यह अच्छी तरह से काम किया।

यहाँ छवि विवरण दर्ज करें


3

मेरे मामले में, स्टोरीबोर्ड / xib में संदर्भित वर्ग में लक्ष्य सदस्यता नहीं थी सेट ।

ठीक करने के लिए, उस कक्षा को दें .hऔर .mअपने अन्य वर्गों के समान लक्ष्य सदस्यता फाइल करें।

कोई लक्ष्य सदस्यता सेट नहीं।


यह मेरी समस्या थी, लेकिन विभिन्न समाधानों की कोशिश करते समय मैंने इस समस्या का कारण बना कि एपिक बाइट का उत्तर ठीक हो गया। आपके द्वारा बनाए जा रहे लक्ष्य में आपका स्रोत कोड होना चाहिए, लेकिन आईबी में भी आपको वर्तमान लक्ष्य का हिस्सा बनने के लिए व्यू कंट्रोलर सेट करना होगा।
SafeFastExpressive

लक्ष्य सदस्यता मेरी समस्या थी, हर जगह देखी गई, लेकिन इस जवाब के लिए धन्यवाद मैं इसे हल कर सकता था।
बोरज फेज


2

मुझे समस्या का सामना करना पड़ा जब मैंने स्विफ्ट प्रोजेक्ट से ऑब्जेक्टिव-सी प्रोजेक्ट में स्टोरीबोर्ड को पोर्ट किया, vvkuznetsov के उत्तर को देखते हुए , इसने दो प्रोजेक्ट को समान पहचानकर्ता का उपयोग करके बदल दिया। मैं "उत्पाद -> साफ" और मॉड्यूल और कक्षा पाठ क्षेत्र पर Enter कुंजी टैप करें। मुद्दा चला गया।


2

मैंने यह तय किया कि लौरा ने क्या सुझाव दिया था लेकिन मुझे फाइलों को फिर से बनाने की जरूरत नहीं थी।

प्रोजेक्ट नेविगेटर में XCode 4 का उपयोग करते हुए, .m फ़ाइल का चयन करें जिसमें वह वर्ग है जिसके बारे में वह शिकायत कर रहा है

व्यू-> यूटिलिटीज-> शो फाइल इंस्पेक्टर पर जाएं (यह फाइल इंस्पेक्टर को दाईं ओर दिखाएगा, वह .m- फाइल मैसेज के साथ)।

लक्ष्य सदस्यता अनुभाग खोलें और सुनिश्चित करें कि आपका लक्ष्य इस .m- फ़ाइल के लिए चुना गया है

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


2

मेरी समस्या उपयोगकर्ता त्रुटि थी। मेरे स्टोरीबोर्ड में एक सामान्य UIView था और आइडेंटिटी इंस्पेक्टर के कस्टम क्लास सेक्शन में मैंने गलती से नाम बदलकर UIView से बदल दिया था।

इसे ठीक करने के लिए यूआईईवाईयू को वापस बदलना पड़ा।


मैंने भी ऐसा ही किया, लेकिन मैंने गलती से कस्टम व्यू कंट्रोलर्स का नाम ViewControllers रूट व्यू के कस्टम क्लास सेक्शन में जोड़ दिया था। इसलिए मैं यह देखना चाह रहा था कि जब पूरे समय मूल दृश्य था तो व्यू कंट्रोलर क्यों नहीं मिल पाया।
TMin

1

केवल मेरे लिए जो काम किया है वह वास्तव में xib फ़ाइल में मॉड्यूल का नाम जोड़ रहा है ...

Sooo, xib फाइलें इस तरह दिखती हैं:

mymodule.MyViewController.xib (Module being the name of the proyect, usually)

मेरी राय में HORRIBLE समाधान, लेकिन माना जाता है कि Apple हमें अब कैसे करना चाहता है।

यह प्रश्न बीटा 4 में 3 संभावित कार्यों को दिखाता है ... जाहिरा तौर पर Apple इस स्थिति में कुछ के अनुसार बहुत मददगार नहीं रहा है क्योंकि वे इसे "उद्देश्य के अनुसार कार्य करना" कहते हैं।


1

मुझे Xcode संस्करण 6.1 (6A1052d) के साथ भी यही समस्या थी। मुझे लगता है कि यदि आप अपने ऐप / एक्सकोड प्रोजेक्ट का नाम बदल देते हैं तो समस्या प्रकट होती है।

मेरा समाधान इंटरफ़ेस बिल्डर में मॉड्यूल नाम को मैन्युअल रूप से जोड़ना था।


1

एक नया लक्ष्य जोड़ने के बाद मुझे यह समस्या हुई, फिर 'नई फ़ाइल' संवाद का उपयोग करके एक नया वर्ग बनाया, लेकिन गलती से नए लक्ष्य के साथ-साथ सृजन संवाद में मूल लक्ष्य की जांच करने में विफल रहा, इसलिए ऑब्जेक्ट केवल मेरे लिए जोड़ा गया था मूल लक्ष्य। स्रोत फ़ाइलों को हटाने के लिए समाधान था (केवल संदर्भ हटाएं) फिर 'फाइलें जोड़ें' का उपयोग करके उन्हें वापस जोड़ें, इस बार दोनों लक्ष्यों की जांच करना।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.