2012-11-13 14 views
11

के लिए लापता प्रॉक्सी हाय स्टोरीबोर्ड ऐप विकसित करते समय मुझे अजीब चीज पर ठोकर लग रहा है।पहचानकर्ता UIStoryboardPlaceholder

मेरा ऐप सही स्प्लैश स्क्रीन के बाद और कंसोल में रुका है मैं त्रुटि संदेश मिलता है:

Missing proxy for identifier UIStoryboardPlaceholder 

अब, अगर मैं एप्लिकेशन जारी रखने के लिए चल रहा है यह बताने के लिए प्रयास करते हैं, मैं कंसोल में नए संदेश है, जो मेरा मानना ​​है कि कर रहे हैं मिलता है तथ्य से संबंधित है, कुछ पहले त्रुटि संदेश

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 
'[<IntroViewController 0x6e35f40> setValue:forUndefinedKey:]: 
this class is not key value coding-compliant for the key sceneViewController. 

साथ कुछ गड़बड़ है जब iOS 5.1 सिम्युलेटर के साथ काम क्या अजीब बात मैं यह त्रुटि केवल मिलता है। यह आईओएस 6 सिम्युलेटर और आईओएस 6 और आईओएस 5.1

के साथ उपकरणों पर भी ठीक काम करता है, मैंने जवाब खोजने की कोशिश की, लेकिन Google का कहना है कि इसे UIStoryboardPlaceholder शब्द के लिए कोई परिणाम नहीं मिल सका, केवल पूरे त्रुटि संदेश को छोड़ दें। मुझे यकीन है कि, मैं शब्द नहीं है बना 'UIStoryboardPlaceholder' मेरे xcode परियोजना (भी नहीं अंदर निब फ़ाइलें) है और यह भी वहाँ कहीं नहीं उल्लेख किया गया है 'sceneViewController' के भीतर कहीं भी। कोई विचार क्या गलत हो सकता है?

संपादित करें: मैं सिम्युलेटर और सफाई परियोजना पुनर्स्थापित करने के लिए कोशिश की, लेकिन कोई लाभ नहीं हुआ

+0

मैं iOS 7 उपकरण पर वही दुर्घटना हो रही है। इसे शुरू जब मैं एक स्टोरीबोर्ड दृश्य नियंत्रक (एक रूट टैब बार नियंत्रक के एक टैब) एक अलग xib में उसके दृश्य है कि करने के लिए एक बहाली पहचान प्रदान करेगा। अगर मैं ले जाने के स्टोरीबोर्ड सब कुछ करने के लिए दृश्य ठीक है। –

उत्तर

6

को मैं एक ही समस्या थी। परियोजना की सफाई करने और सिम्युलेटर बहाल करने का प्रयास करें।

+1

आपके उत्तर के लिए धन्यवाद। दुर्भाग्य से मैंने कोशिश की और यह मदद नहीं की। – Lukas1

1

मुझे सूची में जोड़ें। मुझे कक्षा में "रिफैक्टरिंग - नाम बदलें" के बाद यह त्रुटि मिलती है। जिस श्रेणी का मैं नामकरण कर रहा हूं वह एक कस्टम व्यू कंट्रोलर है जो अपने स्वयं के .xib के साथ है। मैं स्टोरीबोर्ड का उपयोग करता हूं जो एक व्यू कंट्रोलर लॉन्च करता है जिसमें "कंटेनर व्यू" होता है, जिसमें लॉन्च होने पर मेरा कस्टम व्यू कंट्रोलर एम्बेडेड होता है।

इस से बाहर एक ही रास्ता अब तक मेरी पुनर्संशोधित .xib (कंटेनर देखने से यह डिस्कनेक्ट) का उपयोग नहीं करने के लिए है।

मेरे अर्द्ध समाधान:
मैं एक पूर्व काम कर रहे स्नैपशॉट से मेरे ऐप बहाल और बजाय खरोंच रिफैक्टरिंग से एक नए कस्टम ViewController और .xib बनाया है। इसे स्टोरीबोर्ड से कनेक्ट किया गया और मुझे फिर से त्रुटि संदेश मिला। सिम्युलेटर से ऐप को हटाकर हटा दिया गया और फिर से चलाया गया, और फिर यह जादू के बिना त्रुटि के बिना चला गया। इस कारण मेरा मानना ​​है कि वहाँ Refactor-नाम बदलें, जो परदे के पीछे कुछ स्टोरीबोर्ड फ़ाइल भ्रष्ट साथ Xcode में एक बग है के लिए। एक बार मैं पुष्टि की है कि नई .xib त्रुटि के बिना स्टोरीबोर्ड के लिए संलग्न किया गया था, मैं कॉपी किया/नई कस्टम ViewController वर्ग में कक्षा कोड चिपकाया है, और, .xib के वर्ग ऑब्जेक्ट पुन: कनेक्ट आपकी अपेक्षा की प्रक्रिया के माध्यम से चला गया । इसे चलाओ और सबकुछ अभी भी काम करता है।

FYI करें - यहाँ विफल चरणों मैं त्रुटि को ठीक करने के लिए अपने प्रयास में लग गए हैं (दे और स्नैपशॉट बहाल करने से पहले)।
1. सफाई की सफाई।
2. आईओएस सिम्युलेटर में ऐप हटाना।
3. कस्टम ViewController .xib में सभी दृश्यों को हटाया जा रहा।
4. कस्टम व्यू कंट्रोलर नामकरण कुछ और।
5. स्टोरीबोर्ड में, अपने कस्टम ViewController वर्ग का प्रतिनिधित्व करने के लिए एक ViewController खाली दृश्य जोड़ने। यह काम किया है और मेरे ऐप चलाने की अनुमति दी है, तथापि अपने कस्टम वर्ग था न तो इस डिफ़ॉल्ट रिक्त दृश्य के स्थान पर अपने स्वयं के विचारों लोड करते हैं, और न ही यह डिफ़ॉल्ट रिक्त दृश्य पारदर्शी बनाने पर दिखाई अपने विचारों है थे करने में सक्षम। डिबगिंग ने मेरी कस्टम क्लास को दिखाया .xib विचार स्वयं को सौंपा गया जब शून्य।

मैं वर्तमान में एक .xib होने फ़ाइलों के लिए Xcode के Refactor-नाम बदलें परहेज कर रहा हूँ।

+0

आपकी अंतर्दृष्टि के लिए धन्यवाद। मैं अब भी रिफैक्टरिंग का सावधान रहूंगा। दुर्भाग्य से मैं इससे पहले जो भी राज्य वापस नहीं लौटा सकता, क्योंकि मुझे याद नहीं है कि मैंने इस सुविधा का उपयोग किया है और इसने समस्या पैदा की है और औसत समय में बहुत सारे बदलाव किए हैं। मैं सिर्फ वास्तविक उपकरण है, जहां मैं किसी भी समस्याओं – Lukas1

3

मैं एक ऐप्लिकेशन है जो मैं .xib फाइलों से स्टोरीबोर्ड में कनवर्ट करने गया था के साथ एक ही त्रुटि हो रही थी। मेरे ऐप में एक UITabBarController था, और कुछ टैब पर टैप करने से त्रुटि ट्रिगर होगी।

मेरे मामले में, समस्या यह थी कि मैंने दृश्य नियंत्रकों को स्टोरीबोर्ड में कॉपी किया था जो "एनआईबी नाम" प्रॉपर्टी का इस्तेमाल बाह्य नियंत्रक के दृश्य को बाहरी .xib फ़ाइल से लोड करने के लिए करता था। स्टोरीबोर्ड व्यू कंट्रोलर .xib फ़ाइलों से लोडिंग दृश्यों का समर्थन नहीं करते हैं, इसलिए मेरी स्टोरीबोर्ड में एक व्यू कंट्रोलर था जिसमें कोई दृश्य नहीं था।

मैंने बाहरी .xib फ़ाइल खोला, दृश्य की प्रतिलिपि बनाई, इसे मेरे स्टोरीबोर्ड में संबंधित दृश्य नियंत्रक में चिपकाया, और यह सुनिश्चित किया कि चिपका हुआ दृश्य स्टोरीबोर्ड दृश्य में दृश्य नियंत्रक अधीनस्थ (इंडेंटेड) था। फिर मैंने दृश्य नियंत्रक में आउटलेट को दृश्य को दोबारा जोड़ा।

जब मैं आवेदन फिर से भाग गया, त्रुटि चला गया था।

+0

वास्तव में आप अपने दृश्य के लिए अलग xib के साथ एक स्टोरीबोर्ड दृश्य नियंत्रक हो सकता है का सामना नहीं करना पर परीक्षण कर रहा हूँ। बस अपनी xib फ़ाइल को व्यू कंट्रोलर क्लास के नाम से नाम दें, उदा। MyViewController.xib। –

+1

@vladim - जैसा कि आप सुझाव देते हैं, मैं करने की कोशिश कर रहा हूं, दस्तावेज़ कहते हैं कि आप कर सकते हैं, लेकिन यही कारण है कि यह त्रुटि उत्पन्न हो रही है। – hooleyhoop

0

मैं एक ही त्रुटि थी, अंत में इसे हल। मेरे समस्या यह है कि मैं था: इसके इंटरफेस एक अलग XIB फ़ाइल में परिभाषित वाला स्टोरीबोर्ड फ़ाइल में एक दृश्य नियंत्रक:

[[storyboard instantiateViewControllerWithIdentifier:@"TripDetail"] methodThatDoesNotExist:@"param"] 
20

हम एक ही समस्या थी। (Xcode 6.3.1, आईओएस 8.3 और स्विफ्ट 1.2 का उपयोग करना।)

हम स्विफ्ट का उपयोग कर रहे हैं तो हम वर्ग घोषणा करने के लिए @objc() घोषणा जोड़ा था:

@objc(TestViewController) class TestViewController: UIViewController 

हम दृश्य नियंत्रक का दृष्टांत सकता है self.storyboard?.instantiateViewControllerWithIdentifier("TestViewController") का उपयोग कर किसी अन्य दृश्य नियंत्रक से ठीक, लेकिन जब दृश्य नियंत्रक पेश (self.presentViewController(viewController, animated: true, completion: nil) का प्रयोग करके) अनुप्रयोग एक ही "लापता प्रॉक्सी" और "कुंजी नहीं मूल्य कोडिंग अनुरूप कुंजी sceneViewController के लिए" त्रुटि के साथ दुर्घटनाग्रस्त हो गया।

हमारा समाधान जो हम बहुत निराश करने के बाद परीक्षण और त्रुटि की तरह डिबगिंग पाया बस स्टोरीबोर्ड फ़ाइल में यकीन है कि दृश्य नियंत्रक के स्टोरीबोर्ड आईडी बनाने था नहीं वर्ग के नाम के समान है।

जब हम, "testViewController" (फर्क सिर्फ इतना है लोअर केस पहले अक्षर जा रहा है) करने के लिए "TestViewController" से स्टोरीबोर्ड आईडी नाम दिया सब कुछ काम किया ...

अजीब? आप betcha, लेकिन सब कुछ अब काम कर रहा प्रतीत होता है।

+0

मुझे लगता है कि स्टोरीबोर्ड फ़ाइल में "दृश्य नियंत्रक 'स्टोरीबोर्ड आईडी सुनिश्चित करें कि क्लास नाम" greate :) जैसा ही नहीं है। –

+0

यह मेरे लिए भी काम करता है! मेरे नसों को बचाया, बहुत धन्यवाद! –

+0

महान समाधान, धन्यवाद! जाहिर है, यह एक ऐप्पल की बकवास है – iago849

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