भरी हुई निब लेकिन 'दृश्य' आउटलेट सेट नहीं था


742

मैंने अपनी परियोजना में एक नई nib फ़ाइल जोड़ी, और इसे लोड करने का प्रयास किया।

हालाँकि, जब मैं उस टूलबार आइकन पर क्लिक करता हूँ, जो मुझे उस दृश्य पर ले जाने वाला है जिसे मैंने बनाया है, तो मुझे NSInternalInconsistencyExceptionसंदेश के साथ मिला :

अनकैप्ड अपवाद 'NSInternalInconsistencyException' अपवाद के कारण ऐप समाप्त करना, कारण: '- [UIViewController _loadViewFromNibNamed: बंडल:] ने "..." nib को लोड किया लेकिन व्यू आउटलेट सेट नहीं किया गया था।'

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


1
बिल्ड को पहले साफ करने का प्रयास करें।
LetynSOFT

Im मेरा मामला, असली त्रुटि यह थी कि मैंने viewController (- (void) setValue: (NSNumber *) मान forKey: (NSString *) कुंजी को परिभाषित करने की एक विधि को परिभाषित किया जो ViewController के त्रुटि का कारण बना। मैंने इस पद्धति का नाम बदलकर हल किया
क्रिश्चियन मिनी

जवाबों:


1806

आप लोग सही हैं, लेकिन जैसा कि मैं एक नवागंतुक हूं, मुझे यह करने के लिए सभी चरणों का पता लगाने में थोड़ा समय लगा। यहाँ मेरे लिए क्या काम किया गया है:

  • समस्याओं के कारण XIB फ़ाइल खोलें
  • बाईं पट्टी पर फ़ाइल के स्वामी आइकन पर क्लिक करें (शीर्ष एक, पीले उल्लिखित बॉक्स की तरह दिखता है)
  • यदि आपको राइट-हैंड साइडबार दिखाई नहीं देता है, तो अपने टूलबार में "व्यू" के ऊपर तीसरे आइकन पर क्लिक करें। यह राइट-हैंड साइडबार दिखाएगा
  • दाहिने हाथ के साइडबार में, तीसरे टैब पर क्लिक करें - वह जो अखबार की तरह दिखता है
  • शीर्ष पर "कस्टम क्लास" के तहत, सुनिश्चित करें कि क्लास ViewController का नाम है जो इस दृश्य के अनुरूप होना चाहिए। यदि नहीं, तो दर्ज करें
  • दाहिने हाथ के साइडबार में, अंतिम टैब पर क्लिक करें - वह जो इसमें तीर के साथ एक सर्कल की तरह दिखता है
  • आपको इसके नीचे "दृश्य" के साथ "आउटलेट" देखना चाहिए। बाईं ओर पट्टी पर "दृश्य" आइकन पर उसके बगल में सर्कल को खींचें (नीचे एक, एक मोटी ग्रे आउटलाइन के साथ एक सफेद वर्ग जैसा दिखता है
  • Xib को सहेजें और फिर से चलाएँ

मुझे कोको पर भी इस मुद्दे का सामना करना पड़ा और जब तक दृश्य लोड नहीं किया गया / दृश्य पदानुक्रम में जोड़ा गया, सभी दृश्य आउटलेट NIL थे। कॉल करने के बाद AddSubview या कुछ इसी तरह के सभी आउटलेट जुड़े थे। मेरी कहानी का मजेदार हिस्सा यह था कि पो व्यूकंट्रोलर.व्यू.सुब्यू ने गायब वस्तुओं को दिखाया।
एपोक

11
यह समाधान अब चरण 4 और 5 के रूप में Xcode 7.3 में काम नहीं कर रहा है। इसके बजाय, इंटरफ़ेस बिल्डर में, फ़ाइल के स्वामी से आपके दृश्य पर नियंत्रण-खींचें।
पीवेईव्हेन

2
मेरे लिए काम नहीं किया (कनेक्शन निरीक्षक में कोई आउटलेट अनुभाग नहीं है, इस प्रकार दुकानों से कनेक्ट करने के लिए आउटलेट के तहत कोई "दृश्य" नहीं है), लेकिन आपके जवाब में आपके द्वारा डाले गए प्रयास के लिए +1। :)
विलियम टी। मलार्ड

2
यदि आपको आउटलेट में "दृश्य" दिखाई नहीं देता है तो आप स्टोरीबोर्ड पर फ़ाइलों के स्वामी से दृश्य में ctlr-drag भी कर सकते हैं। एक प्रासंगिक मेनू को "दृश्य" विकल्प के साथ दिखाई देना चाहिए
josef

1
@ विलियमट.मैल्ड मैं एक ही व्यवहार है। MyViewControllerके उपवर्गों का एक उपवर्ग है UIViewControllerऔर view"आउटलेट्स" के तहत नहीं है । अगर मैं दृश्य MyViewControllerसे सीधे उप-लिंक करता हूं तो UIViewControllerयह "आउटलेट्स" के समान प्रतीत होता है। जादू या बग का Xcode।
user2319066

201

यह जोश न्याय का प्रस्ताव है, लेकिन चित्रमय तरीके से (चित्र मेरे हैं):

  1. फ़ाइल स्वामी का चयन करें
  2. दाहिने हाथ के पैनल पर कस्टम क्लास का चयन करें।
  3. कस्टम वर्ग नाम दर्ज करें

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

  1. दाएं हाथ की ओर पैनल का चयन करें
  2. घटक को देखने के लिए दृश्य आउटलेट खींचें

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

अंत में देखें नियंत्रक को रोलिंग कोड के साथ त्वरित किया जाता है:

        PTFilterUserVC *aFilterUserVC = [[PTFilterUserVC alloc] initWithNibName:@"FilterVC" bundle:nil];

        //OPTIONAL.This is how 'I' am interested in present the view controller.
        [self.navigationController pushViewController:aFilterUserVC animated:YES];

1
धन्यवाद जेवियर कैलतरावा ललवरिया ... एक घंटे तक मेरा सिर काटने के बाद मेरी बहुत मदद की !!!
भारथराव


मुझे 5 वां चरण याद
आया

73

मैं आम तौर पर फ़ाइल के मालिक और दृश्य के बीच के संबंध को रीमेक करके इसे ठीक कर सकता हूं। फ़ाइल के स्वामी से अपने दृश्य (आईबी में) पर नियंत्रण-खींचें और पॉप-अप मेनू से दृश्य चुनें।


62

दृश्य पहचान - वर्ग पहचान सेट नहीं किया गया था। इसे उपयुक्त वर्ग में स्थापित करने के बाद, समस्या हल हो गई।


हाय @ जॉन, मैंने ऐसा किया है लेकिन फिर भी यह अपवाद हो रहा है।
मानसु ....

29

क्या आप सुनिश्चित हैं कि आपके पास UViewiew (या उपवर्ग) को आपके ViewController की "दृश्य" संपत्ति को सौंपा गया है?

अपने ViewController के लिए xib के बाएं फलक में "फाइल ओनर" पर राइट क्लिक करें और सत्यापित करें कि "व्यू" आउटलेट सेट है। यदि नहीं, तो इसे एक दृश्य पर सेट करें!

यह निश्चित रूप से समस्या को ठीक करेगा


2
स्पष्ट, संक्षिप्त उत्तर।
sark9012

15

मेरे लिए यहाँ बताई गई सभी चीजें https://stackoverflow.com/a/6395750/939501 सत्य थीं, लेकिन फिर भी यह त्रुटि फेंक रही थी, इसका कारण था कि मुझे ABCView नाम के साथ एक व्यू क्लास बनाया गया था और बाद में इसे हटा दिया गया था क्योंकि मैंने व्यू कंट्रोलर जोड़ा ABCViewController तो किसी तरह यह नए दृश्य नियंत्रक में पुराने ABCView का जिक्र था, मुझे ABCViewController को हटाना पड़ा और अलग-अलग नाम के साथ एक नया जोड़ना पड़ा जिसने मेरे मुद्दे को हल किया।

धन्यवाद


अभी भी एक बग 2020 में।
तमेंग सेंगेल

15

मैं XCode 4.6.3 के साथ एक ही मुद्दा था। मैंने एक युगल फाइलों के साथ शुरुआत की थी जिनका नाम रखा गया था MySettingsView.hऔर .mउनके पक्ष में उन्हें हटा दिया गया था MySettingsViewController.h, लेकिन यहां बताए गए अधिकांश संकेतों की कोशिश करने के बावजूद, यह अभी भी साथ ही गलत कर रहा है,

2013-07-05 11: 48: 17.205 MyApp [39024: c07] *** अनकहा अपवाद 'NSInternalInconsistencyException' अपवाद के कारण समाप्ति ऐप, कारण: '- [UIViewController _loadFromNibNNN बंडल: बंडल:] "MySettingsView" निब सेट नहीं किया गया था। '

यह जाहिर है अभी भी "उलझन" किया गया था, MySettingsView के बजाय MySettingsView.xib लोड करने का प्रयास नियंत्रक .xib। हो सकता है कि इसका "मेरे कहने का मतलब है" तर्क बहुत फैंसी हो।

इसलिए मैंने MySettingsViewController.m में NIB / XIB नाम को हार्डकोड करके समस्या के आसपास काम किया:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil];
}

10

किसी के लिए जो एक UIView बनाने के लिए एक xib विधि का उपयोग कर रहा है और इस समस्या को होने पर, आप देखेंगे कि आपके पास कनेक्शन निरीक्षक मेनू के तहत "दृश्य" आउटलेट नहीं होगा। लेकिन अगर आप फाइल के ओनर्स कस्टम क्लास को एक UIViewController पर सेट करते हैं और फिर आपको "व्यू" आउटलेट दिखाई देगा, जिसे आप सिर्फ CMND एक आउटलेट को CustomView से कनेक्ट कर सकते हैं।


बहुत बढ़िया। बहुत बहुत धन्यवाद। यह एक स्वीकृत उत्तर होना चाहिए!
रोमन

7

इसके साथ मेरा मुद्दा क्लास फ़ोल्डर में एक डुप्लिकेट निब होने के कारण था, जिसमें दृश्य सेट नहीं था। Xcode एक बिल्ड के लिए एक निब चुनने और फिर दूसरी बार जब मैंने प्रोजेक्ट बनाया था, तब लग रहा था। बस दूसरे को हटा दिया। अछा लगता है। रवींद्र!


6

बस यह जानने की कोशिश में घंटों से अधिक का समय लगा कि नीब से इसे शुरू करने पर मेरे दृश्य नियंत्रक में मेरी संपत्ति क्यों सेट नहीं है। अपने दृश्य नियंत्रक initWithNibName के अंदर "[[initWithNibName ...]" कॉल करना याद रखें।


5

मैंने अभी यह तय किया है। बड़ी परियोजना, दो फाइलें। एक था "रियलीगर्ल नेमव्यू" और दूसरा था "रियलीगर्लनामे व्यूक्रॉलर"

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

इसलिए मैं समान नाम वाली कक्षा (जो एक दृश्य है) को हटा देता हूं। जल्द ही, नई त्रुटि "आउटलेट अंदर नहीं झुका" सचमुच "webView not key value" blah ... मूल रूप से कह रहा है "विज़ुअल स्टूडियो का बेहतर"। वैसे भी ... मैं छोटे नाम वाली फ़ाइल मिटाता हूं, और bam, यह काम करता है।

XCode समान-नाम वाली फ़ाइलों द्वारा भ्रमित है। और इस परियोजना के लिए थोड़ा सा रिबूट करने की आवश्यकता है, जो इसका हिस्सा हो सकता है।

काश मेरे पास "XCode भ्रमित होता है" की तुलना में अधिक तकनीकी उत्तर था, लेकिन अच्छी तरह से, XCode इस बिंदु पर बहुत अधिक भ्रमित हो जाता है। इसे बिना पढ़े उसी तरह से मैं एक छोटे बच्चे की मदद करूंगा। अब यह काम करता है, :) अगर दूसरों को कुछ भी ठीक नहीं करना चाहिए तो उन्हें फायदा होना चाहिए।

हमेशा अपने बिल्डरों को साफ करना याद रखें (सिम्युलेटर को हटाकर भी)


4

मुझे भी यही समस्या थी और मेरा मुद्दा यह था कि मैंने ViewControllers nib में एक अन्य स्थानीयकरण (अंग्रेजी) जोड़ा, इसलिए स्थानीयकरण जर्मन के साथ मेरा ऐप स्थानीयकरण अंग्रेजी के साथ nib नहीं खोज सका !! आशा है कि यह किसी को भी मदद करता है!


4

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


3

मेरे लिए, कॉल करने के कारण समस्या थी initWithNibName:bundle:। मैं प्रवेश प्रपत्रों को परिभाषित करने के लिए एक निब फ़ाइल से तालिका दृश्य कोशिकाओं का उपयोग कर रहा हूं tableViews। जैसा कि मेरे पास एक दृश्य नहीं है, एक को हुक करने का कोई मतलब नहीं है। इसके बजाय, अगर मैं इसके बजाय initWithStyle:विधि को बुलाता हूं , और वहां से, मैं निब फ़ाइल लोड करता हूं, तो चीजें अपेक्षा के अनुरूप काम करती हैं।


3

पिछले उत्तरों ने मेरे लिए लगभग समस्या हल कर दी थी, लेकिन अंतिम चरण गायब था।

  1. एक ही नाम के साथ एक xib और स्विफ्ट फ़ाइल बनाएँ।

दृश्य और स्विफ्ट फ़ाइल जोड़ें

  1. फ़ाइल स्वामी को UIView उपवर्ग सेट करें।

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

  1. दृश्य से UIView उपवर्ग तक एक आउटलेट खींचें, इसे "contentView" नाम दें

सामग्री जोड़ें

  1. इस कस्टम इनिशियलाइज़र को जोड़ें ताकि जब xib लोड हो जाए तो वह contentView संलग्न करता है

सामग्री को सबव्यू के रूप में जोड़ें

required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        Bundle(for: self.classForCoder).loadNibNamed("SampleView", owner: self, options: nil)
        addSubview(contentView)
        contentView.frame = self.bounds
        contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
    }

अब आपके द्वारा जोड़ा गया कोई भी @IBOutlets संलग्न किया जाएगा।

चीयर्स, रिचर्ड


2

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


2

मुझे एक ही समस्या थी, लेकिन एक अलग समाधान के लिए बुलाया गया था। इस मामले में समस्या यह थी कि फ़ाइल स्वामी का वर्ग xib फ़ाइल से जुड़ा नहीं था।


2

मैं आज रात कुछ इसी तरह भाग गया, एक स्विफ्ट UIViewController उपवर्ग के साथ। इस मामले में, उपरोक्त में से किसी भी सुधार ने काम नहीं किया, लेकिन मेरे कोड को फिर से व्यवस्थित करना थोड़ा सा किया। नेट-नेट, उप-वर्ग का विस्तार होने से पहले उपक्लास की परिभाषा में ही एक ही फाइल में XCode को भ्रमित करने के लिए लगता है, ठीक संकलन के बावजूद; उपवर्ग की परिभाषा के बाद एक्सटेंशन को ठीक करना था।

मैंने इसी तरह के प्रश्न के उत्तर में विवरण पोस्ट किया है ।


2

मेरे मामले में, - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil*** ViewController वर्ग में नामित इनिशियलाइज़र को लागू किया गया था, भले ही जब मैं ऑब्जेक्ट को इनिशियलाइज़ करने के लिए दूसरे इनिशियलाइज़र को बुलाऊँ, तो नामित इनिशियलाइज़र को बुलाया जाएगा।

तो इस समस्या को हल करने के लिए विकर की जाँच - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNilभी एक उचित तरीका है।


2

मैं यहाँ अन्य उत्तरों से थोड़े अलग तरीके से इस समस्या में भाग गया।

अगर मैंने बस एक नई xib फ़ाइल बनाई है, तो इसे इंटरफ़ेस बिल्डर में एक UIViewController जोड़ा, और उस UIViewController की कस्टम क्लास को मेरे व्यू कंट्रोलर में सेट किया, जिसके परिणामस्वरूप "व्यू आउटलेट सेट नहीं हुआ" क्रैश। यहाँ अन्य समाधान व्यू आउटलेट को कंट्रोल-ड्रैग करने के लिए कहते हैं, लेकिन मेरे लिए व्यू आउटलेट को हटा दिया गया था और मैं इसे नियंत्रित नहीं कर सका।

ग्रे-आउट व्यू आउटलेट

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


1

बस मेरी परियोजना में एक ही त्रुटि थी, लेकिन अलग कारण। मेरे मामले में मेरे पास मेरे कस्टम UITableViewController वर्ग में "देखें" नाम के साथ एक IBOutlet सेटअप था। मुझे पता था कि "दृश्य" विशेष था क्योंकि वह आधार वर्ग का सदस्य है, लेकिन मुझे नहीं लगता कि दृश्य (अलग मामला) भी एक समस्या होगी। मुझे लगता है कि कोको के कुछ क्षेत्र केस-संवेदी नहीं हैं, और शायद xib को लोड करना उन क्षेत्रों में से एक है। इसलिए मैंने अभी इसका नाम DefaultView कर दिया है और अब सब अच्छा है।


1

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


1

मेरे मामले में, दृश्य xib में नहीं देखा गया था। xib में व्यू साइज = कोई नहीं (4th tab right hand) था। मैंने आकार को फ़्रीफ़ॉर्म पर सेट किया और xCode को फिर से लोड किया। देखने की अपील की गई थी और मैंने व्यू का उचित लिंक सेट किया।


1

यदि आपने सब कुछ करने की कोशिश की है और आपको अभी भी यह त्रुटि मिलती है, तो स्क्रैच से वर्ग फ़ाइल को फिर से बनाने का प्रयास करें, लेकिन "इसके अलावा XIB फ़ाइल बनाएँ" चेक बॉक्स का चयन करना याद रखें। यह कुछ आइटम्स को ऑटो लिंक करेगा जो इन फ़ाइलों को अलग से बनाते समय लिंक नहीं होते हैं। इसके बनने के बाद, आप नए XIB पर सब कुछ काट और पेस्ट कर सकते हैं और इसे ठीक काम करना चाहिए।

मैं इस मुद्दे को विशेष रूप से स्विफ्ट में अलग से फाइलें बनाने के साथ पा रहा हूं।


1

मेरे लिए यह तब हुआ, जब

  • मेरे पास Nib फाइल से जुड़ा एक ViewController क्लास (.mm / h) है,
  • इस ViewController से UIView को एक अन्य दृश्य पर एक सबव्यू के रूप में लोड किया जाना है,

  • हम ऐसा कुछ कहेंगे

    -(void)initCheckView{
    
       CheckView *pCheckViewCtrl = [CheckView instance];
    
       pCheckView = [pCheckViewCtrl view];
    
       [[self view]addSubview:pCheckView];
    
       [pCheckViewCtrl performCheck];        
    
    }

कहाँ पे

+(CheckView *)instance{
    static CheckView *pCheckView = nil;
    static dispatch_once_t checkToken;

    dispatch_once(&checkToken, ^{
        pCheckView = [[CheckView alloc]initWithNibName:@"CheckView" bundle:nil];
        if ( pCheckView){
            [pCheckView initLocal];
            **[pCheckView loadView];**
        }
    });

    return pCheckView;

}

यहाँ loadView गायब था,, इस लाइन को जोड़ने से मेरी समस्या हल हो गई।


1

मैं एक ही समस्या थी, मैं पता लगा है और यह है की वजह से मैं टिक था " स्टेटिक कोशिकाओं " के गुणों में तालिका दृश्य के तहत सामग्री विकल्प । जब यह " Dynamic Prototypes" में बदल गया तो काम किया । स्क्रीनशॉट नीचे है। यहां छवि विवरण दर्ज करें


1

मुझे Xcode 9.3 के साथ एक समान समस्या थी, और "मॉड्यूल" को "फ़ाइल स्वामी के" प्रोजेक्ट इंस्पेक्टर के लिए प्रोजेक्ट मॉड्यूल के तहत सेट करना मेरे लिए यह तय किया।


1

अपनी स्टोरीबोर्ड फ़ाइल खोलें जहाँ आपका viewController मौजूद है, या textEdit.app के साथ XIB संबंधित फ़ाइल और जाँच करें कि स्टोरीबोर्ड या XIB नाम आपके व्यू कॉन्ट्रोलर का एक ही है, तो इसे बदलें, सहेजें और Xcode को पुनः लोड / पुनः लोड करें।


1

यदि आप एक कस्टम init विधि का उपयोग कर रहे हैं, तो जांचें कि आप कुछ वैध लौटा रहे हैं। मैं कोड के एक भाग में भाग गया जो कुछ इस तरह दुर्घटनाग्रस्त हुआ:

- (id)init {
   self = [super init];
   if (self) {
      CustomController *controller = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(className) owner:self options:nil];
   } return self;
}

एक अन्य वर्ग में, नियंत्रक इस तरह बनाया गया था:

CustomController *controller = [[CustomController alloc] init];

समस्या यह है कि init पद्धति में, स्वयं नहीं बदला गया है और इसके बजाय इस तरह दिखना चाहिए:

- (id)init {
   self = [super init];
   if (self) {
      CustomController *controller = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(className) owner:self options:nil];
      [controller viewDidLoad];
      self = controller;
   } return self;
}

0

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

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